Objectif de la mission: Recherche d'un développeur logiciel expérimenté pour construire des systèmes distribués chez AWS.
Missions principales:
- Gestion de systèmes distribués chez AWS
- Application de compétences en programmation et langages de programmation divers
Profil recherché:
- Connaissances avancées en programmation procédurale, orientée objet et fonctionnelle
- Compétences en bases de données, systèmes d'exploitation et architecture informatique
Fonds de connaissances nécessaires:
Programmation & langages
- Procedural programming
- Object-oriented programming
- Functional programming
- Type systems
- Static vs dynamic typing
- Memory safety
- Compilation vs interpretation
- VMs & runtimes
- Garbage collection
- Imperative vs declarative languages
Data Structures & Algorithms
- Arrays
- Linked lists
- Stacks queues
- Hashmaps
- Sets
- Heaps
- Trees & graphs
- Sorting and searching
- BFS & DFS
- Complexity analysis (time and space: Big O notation)
- Recursion
- Greedy algorithms
- Divide and conquer
Databases & Storage
- Relational models
- ACID
- Isolation levels
- Indexing
- Query planning
- Normalisation vs denormalisation
- Replication
- Sharding
- Consistency models
- Transactions at scale
Operating Systems
- Processes & threads
- Scheduling
- Interrupts & syscalls
- Locks & race conditions
- Memory management
- Virtual memory
- IO systems
- Concurrency
Computer Architecture
- CPUs
- Caches
- Pipelining
- Instruction sets
- Hardware vs software optimisation
- Memory hierarchy
Networking
- OSI model
- TCP/IP
- DNS
- NAT
- TLS / HTTPS
- Routing
- Load balancing
- Firewalls
- Congestion control
Mathematics for Computing
- Logic
- Discrete maths
- Probability
- Statistics
- Graph theory
- Linear algebra
- Boolean algebra
- Combinatorics
- Proofs
- Number theory
Distributed & Cloud Systems
- Replication
- Partitioning
- CAP theorem
- Event-driven architecture
- Idempotency
- Eventual consistency
- Queues & streams
- Serverless fundamentals
Expérience minimale requise: Plus de 7 ans d'expérience en tant que développeur logiciel.