Développeur·euse Back-end

FranceConfirmé·e

Questions d'entretien structurées pour Développeur·euse Back-end, avec ce qu'une bonne réponse révèle pour chacune.

  1. ComportementaleDebug et observabilité

    Décrivez l'incident de production le plus sérieux que vous avez piloté. Quel était le symptôme, le diagnostic, la résolution, et le suivi systémique ?

    Ce qu'une bonne réponse révèle

    Méthode structurée : reproduction ou observation directe, formulation d'hypothèses, validation par logs, métriques, ou expérimentation ciblée. Honnêteté sur la durée et les fausses pistes. Bonus : la·le candidat·e cite la cause profonde (pas seulement le hotfix) et la mesure préventive mise en place après (post-mortem, alerte ajoutée, test de régression). Les réponses « j'ai redémarré le service et tout est rentré dans l'ordre » sans diagnostic révèlent une faiblesse d'investigation.

  2. ComportementaleDesign système

    Décrivez une décision d'architecture importante que vous avez prise sur votre dernier poste. Pourquoi était-elle difficile et comment l'avez-vous tranchée ?

    Ce qu'une bonne réponse révèle

    Capacité à structurer une décision sous incertitude : clarification des contraintes, alternatives évaluées, arbitrages explicites entre simplicité et flexibilité future, consultation des parties concernées, validation a posteriori. Bonus : la·le candidat·e mentionne une décision dont il·elle reviendrait aujourd'hui, ou un ADR écrit pour la postérité. Les candidat·e·s qui décrivent une décision « évidente » avec recul n'ont pas vraiment arbitré.

  3. ComportementalePerformance et mesure

    Parlez-moi d'une fois où votre solution initiale ne tenait plus sous la charge réelle. Comment avez-vous diagnostiqué et corrigé ?

    Ce qu'une bonne réponse révèle

    Humilité face aux hypothèses initiales : la·le candidat·e reconnaît la limite, mesure avant d'agir (profiling, métriques, charge réelle vs synthétique), arbitre entre optimisation locale et refonte. Bonus : la·le candidat·e identifie en rétrospective le signal qu'il·elle aurait pu lire plus tôt. Les profils qui « n'ont jamais eu de problème de charge » mentent ou n'ont pas servi de trafic réel.

Playbook d'évaluation

Le rôle de Développeur·euse Back-end se signale à travers cinq stades d'évaluation. Le system design (stade 4) est le plus prédictif pour ce poste : c'est là que se révèle la capacité à raisonner sur les contraintes distribuées, la persistance, et l'observabilité dont une PME a besoin pour ne pas accumuler de dette opérationnelle.

  1. Stade 1: Lecture du CV

    Cherchez la cohérence stack et la profondeur back-end réelle : un·e profil annoncé « back-end » qui a passé 80 % de son temps sur l'UI n'est pas le·la candidat·e visé·e. Indices forts : ownership d'un service en production (déploiement, monitoring, incidents), exposition à au moins une base de données relationnelle bien comprise, présence de mots-clés concrets (Postgres, Redis, message queue, OpenTelemetry, profiling). Stabilité minimale 18-24 mois par poste. Un·e autodidacte avec 4 ans d'ownership en production vaut largement un·e diplômé·e top école avec 2 ans de tickets fermés sans vrai contexte.

  2. Stade 2: Phone screen (30 min)

    Trois questions ciblées : (1) « Décrivez le service back-end le plus complexe que vous avez possédé ; QPS, taille des données, contraintes ? », (2) « Décrivez un incident de production que vous avez piloté ; symptôme, diagnostic, résolution, suivi ? », (3) « Pourquoi un changement maintenant ? ». Sortie : go ou no-go en 5 min, pas plus. À ce stade évitez les pièges techniques ; cherchez la solidité du vécu produit.

  3. Stade 3: Entretien technique (60-90 min)

    Pair-programming sur un exercice borné (45-60 min) qui ressemble au quotidien : ajout d'un endpoint avec contrainte de concurrence, refactor d'une requête N plus 1, debug d'une race condition simulée. Puis 15-30 min de Q&R sur les choix techniques. Évaluez le raisonnement à voix haute, la capacité à demander des clarifications, et l'instinct sur les pièges de production (idempotence, timeouts, retries, isolation transactionnelle).

  4. Stade 4: System design (60 min)

    Discussion d'architecture sur un cas concret proche de votre produit : conception d'un système de webhooks fiables, d'une file de traitement asynchrone, d'un endpoint de recherche, ou d'un pipeline d'agrégation. Évaluez la clarification des contraintes (QPS, latence cible, volumétrie, criticité), les arbitrages explicites (synchrone vs asynchrone, push vs pull, fort vs cohérence éventuelle), la pensée observabilité dès le design (métriques, logs structurés, traces, alertes), et la reconnaissance honnête des zones d'incertitude. C'est le stade le plus prédictif pour ce poste.

  5. Stade 5: Références (vérification structurée)

    Appelez deux références : un·e ancien·ne tech lead ou manager direct et un·e ancien·ne collègue back-end. Posez les mêmes 4 questions à chaque référence : « Sur quoi est-il·elle le plus fort·e ? », « Sur quoi recruteriez-vous quelqu'un de complémentaire ? », « Le·la reprendriez-vous demain ? », « Un exemple précis de décision technique difficile prise en autonomie ? ». La 4e question révèle le vrai signal d'autonomie sur un poste back-end.

Comment reconnaître une excellente recrue

CompétenceSous la barreAu niveauAu-dessus
Solidité technique back-endBute sur les fondamentaux (HTTP, transactions, asynchrone, concurrence). Choisit par habitude ou par mode plutôt que par adéquation. Difficile à charger sur un nouveau langage back-end.Maîtrise la stack actuelle en autonomie. Comprend les fondamentaux suffisamment pour déboguer en profondeur. Sait apprendre un nouveau langage ou framework back-end en 4-8 semaines productivement.Référent·e technique sur sa stack, capable de basculer sur une autre stack back-end en quelques semaines. Anticipe les pièges classiques (race conditions, fuites de connexions, dégradation par lock). Construit des abstractions utiles, pas prématurées.
Design systèmePlonge dans le code sans clarifier les contraintes (volume, latence, criticité). Sur-conçoit (microservices pour un MVP) ou sous-conçoit (monolithe spaghetti à 50 k LOC). Difficile à arbitrer entre simplicité et scalabilité.Clarifie le besoin avant de coder. Pragmatique sur les arbitrages synchrone vs asynchrone, push vs pull, cohérence forte vs éventuelle. Reconnaît ses zones d'incertitude et propose un POC ciblé quand pertinent.Conçoit des systèmes qui vieillissent bien : abstractions justes, dépendances minimales, frontières métier claires, observabilité dès le design. Forme l'équipe sur la pensée systèmes et écrit des ADRs lisibles par les nouveaux·elles arrivant·e·s.
Observabilité et debugDiagnostique par essai-erreur sans modèle mental. N'instrumente pas le code en production (logs anémiques, pas de métriques métier, alertes silencieuses). Réagit à l'incident, n'anticipe rien.Méthode de debug structurée : reproduction, hypothèses, validation par logs ou métriques. Ajoute l'observabilité nécessaire au passage. Sait piloter un incident de prod sans paniquer.Pense observabilité dès le design : SLI / SLO définis, dashboards lisibles, alertes signifiantes (pas de bruit), post-mortems honnêtes. Reconstruit l'historique d'un incident à partir des logs ou traces et propose une action systémique.
Sécurité applicativePas conscient·e des risques courants (OWASP Top 10, secrets en clair, IDOR, désérialisation). Code sans validation d'entrée systématique. Considère la sécurité comme « pas son problème ».Connaît les principaux risques applicatifs et les évite par défaut : requêtes paramétrées, validation côté serveur, gestion saine des secrets (vault ou env vars), revue de PR avec œil sécurité. Sait pointer une vulnérabilité chez un·e collègue.Référence sécurité dans l'équipe : revue de modèle de menaces, choix de bibliothèques crypto sûres, gestion des dépendances vulnérables (CVE monitoring), tests de sécurité automatisés en CI. Coordonne avec l'équipe sécurité ou DPO sur les sujets sensibles.
Qualité et hygiène du codePas de stratégie de test claire ; ajoute des tests « pour la couverture ». Code mal structuré (fonctions à 300 lignes, magic numbers, duplication). Reviews superficielles.Pyramide de tests pertinente sur la logique métier. Code lisible avec naming clair et fonctions courtes. Reviews structurées avec feedback actionnable. Refactor au passage quand pertinent.Référence qualité de l'équipe : conventions documentées, automatisation des contrôles (linters, type-checkers, CI). Reviews pédagogiques qui font progresser les junior·e·s. Sait dire non à du code qui passe les tests mais qui vieillira mal.
Communication produitExplique mal son travail à un·e PM ou un·e dirigeant·e. Posture défensive (« c'est trop complexe ») ou d'opposition systématique. Communique mal les délais et les risques.Sait expliquer un arbitrage technique à un·e PM en langage clair. Challenge constructivement les briefs et propose des alternatives. Communique les délais et risques de manière transparente.Pont entre le back-end et les autres fonctions. Anime les discussions techniques produit, vulgarise les arbitrages, négocie les périmètres de manière transparente. Écrit des spécifications techniques lisibles par les non-techniques.

Plan 30/60/90 jours

À J+30

  • Setup complet de l'environnement local et premier déploiement (PR triviale) validé en production
  • Lecture et compréhension du code des 3 services back-end les plus critiques de la stack métier
  • Premier 1:1 documenté avec la·le tech lead sur les conventions, la dette opérationnelle identifiée, et les priorités
  • Première PR substantive (fix de bug ou petit endpoint) reviewée et mergée

À J+60

  • Livraison en autonomie d'un endpoint ou d'un job back-end complet (design, implémentation, tests, observabilité, déploiement)
  • Première review de PR d'un·e collègue avec feedback structuré (pas juste « ok merge »)
  • Premier on-call ou astreinte avec gestion d'au moins un incident (diagnostic, mitigation, post-mortem partagé)
  • Documentation ou ADR rédigé sur une zone récemment touchée

À J+90

  • Livraison régulière (1 à 2 PRs par semaine) avec qualité validée par l'équipe en review
  • Première décision technique d'architecture en autonomie sur un sujet ambigu (refactor, choix de bibliothèque, design d'un nouveau composant)
  • Mentorat informel d'un·e junior ou nouveau·elle arrivant·e (pair-programming, reviews pédagogiques)
  • Bilan formel avec la·le tech lead : ramp validé, plan de progression sur 1-2 axes prioritaires (par exemple observabilité ou design système)
Mis à jour
Recrutez ce poste avec JoinSourcing, présélection et entretiens au même endroit.
Recruter

Contacter Join