Les types de tests techniques
1. Take-home assignment :
- Projet de 2-8 heures à réaliser chez vous
- Délai : 3-7 jours
- Sujet : application web, API, transformation de données
- Critères : structure du code, choix d'architecture, tests, README
2. Algorithmique en live :
- 45-60 min via CoderPad, HackerRank, CodeSignal
- Problèmes type LeetCode (Easy à Hard)
- Critères : raisonnement à voix haute, complexité Big-O, edge cases
3. System design :
- 45-60 min de discussion
- Sujet : « Comment construirais-tu Twitter / Uber / Netflix ? »
- Critères : capacité à scaler, choix techniques justifiés, trade-offs
4. Pair programming :
- 60-90 min côte à côte (virtuel) avec un dev senior
- Sujet : feature à ajouter à un code existant, bug à corriger
- Critères : compréhension code, communication, collaboration
5. Code review :
- 30-45 min, analyse de PR avec problèmes intentionnels
- Critères : détection bugs, qualité de feedback, sens du detail
Préparation par type de test
Pour l'algorithmique :
- LeetCode : visez 200-300 problèmes résolus (Easy/Medium dominants)
- NeetCode 150 : liste curée des problèmes classiques
- Cracking the Coding Interview (Gayle McDowell) : livre de référence
- Pratique quotidienne : 30-45 min, 5-6 jours/semaine pendant 8-12 semaines
Pour le system design :
- System Design Interview (Alex Xu) : 2 tomes incontournables
- High Scalability (highscalability.com) : études de cas réelles
- Designing Data-Intensive Applications (Kleppmann) : référence approfondie
- YouTube : chaînes Gaurav Sen, ByteByteGo
Pour le take-home :
- GitHub : 3-5 projets propres et publics avant entretien
- Tests unitaires : montrent votre rigueur
- README détaillé : décisions d'architecture, comment lancer, limites connues
- Soignez le commit history : commits atomiques, messages explicites
Le jour du test
Algorithmique en live :
- Clarifier le problème (5 min) : exemples, contraintes, edge cases
- Penser à voix haute : votre raisonnement compte autant que la solution
- Brute force d'abord : montrer que vous comprenez
- Optimiser : Big-O, espace mémoire, justification
- Coder proprement : noms de variables clairs, fonctions modulaires
- Tester mentalement : trace l'exécution sur les exemples + edge cases
System design :
- Clarifier requirements : fonctionnels et non-fonctionnels
- Estimer la charge : RPS, stockage, bande passante
- Schéma haut niveau : composants, flux de données
- Deep-dive sur 1-2 composants critiques
- Bottlenecks et scaling : où ça casse, comment scaler
- Trade-offs : justifier vos choix
Outils recommandés
- LeetCode Premium (35 USD/mois) : questions ciblées par entreprise
- AlgoExpert : explications vidéo détaillées
- GitHub Copilot : familiarisez-vous (utilisé en entretien chez certains)
- Excalidraw, Whimsical : schémas system design clean
- CoderPad : pratiquez l'environnement réel d'entretien
Spécificités Suisse
- Banques (UBS, Raiffeisen) : tests rigoureux, focus algo + system design
- Multinationales (Google, Microsoft Zurich) : process anglo-saxon classique, 5-6 rounds
- Start-ups (Logitech, Sonova) : take-home + pair programming dominants
- Pharma (Roche, Novartis) : focus data engineering, ETL, SQL
- Crypto (Zoug) : Web3 knowledge requis, blockchain basics
Les pièges fréquents
- Coder sans réfléchir : 2 min de planning économisent 20 min de debug
- Ne pas demander d'aide : préciser « Je peux avoir un indice ? » est mieux que rester bloqué 15 min
- Sur-ingénierie : ne créez pas 5 abstractions pour un fizz-buzz
- Negliger les tests : montrez que vous y pensez même si vous n'en écrivez pas tous
- Manque de communication : un évaluateur qui ne comprend pas votre raisonnement vous notera mal



