DoctolibTech & Data
Préparer un entretien : Senior Software Engineer
Recrutement historique. Cette synthèse ne constitue pas une offre d’emploi actuellement ouverte.
Fondateurs Avanttoi — Synthèse éditoriale
Sommaire
Fondateurs Avanttoi — Synthèse éditoriale
Synthèse originale de faits rapportés dans un témoignage de candidat, non authentifié par Avanttoi. Les conseils et exercices sont créés par Avanttoi. Cette expérience n’a pas été vécue par les fondateurs et ne décrit pas nécessairement le recrutement actuel de l’entreprise.
Senior Software Engineer — Nantes, France
Période des entretiens · mars 2026
- Deux entretiens vécus sont décrits : un échange RH puis une séance technique avec deux Staff Engineers.
- Le travail technique part d’un projet incomplet dans un environnement de développement en ligne.
Publication du témoignage : 8 mai 2026. Le lien de provenance est conservé dans le dossier éditorial privé.
Questions et thèmes réellement rapportés
Les citations conservent la formulation publiée par le candidat. Les thèmes décrivent le sujet documenté lorsque l’énoncé complet n’est pas disponible. Les corrigés d’entraînement figurent dans la partie Avanttoi.
API REST, traitement de données et graphique
Entretien technique
La fonctionnalité demande de récupérer des points, détecter des conditions et afficher les résultats dans un graphique. Le prédicat précis n’est pas publié.
TDD — développement guidé par les tests
Entretien technique
La démarche attendue commence par des tests en échec, suivis de l’implémentation. TypeScript est mentionné ; aucune question verbatim n’est publiée.
Ce que vous pouvez travailler
Isolez d’abord la règle métier dans une fonction pure : elle se vérifie plus facilement que le composant graphique entier. Écrivez les cas limites avant de connecter le réseau, puis distinguez erreur HTTP, réponse invalide et résultat vide. Au niveau de l’interface, empêchez une ancienne requête de remplacer une sélection plus récente. Les types TypeScript documentent un contrat, mais ne valident pas à eux seuls un JSON reçu. Faites confirmer l’usage autorisé des assistants de code pour votre session ; le témoignage ne garantit pas une règle actuelle.
Entraînez-vous sur des cas originaux
Ces scénarios pédagogiques et leurs corrigés ne sont pas des questions posées par Doctolib.
Spécifier une détection avant de l’implémenter
Exercice original Avanttoi. Une fonction reçoit des mesures ordonnées à timestamps uniques : (1,19), (2,21), (3,22), (4,20), (5,23), (6,24). Elle doit renvoyer le timestamp de la deuxième mesure de chaque nouvelle séquence contenant au moins deux valeurs consécutives strictement supérieures à 20. Donnez le résultat, puis les tests à écrire avant le code. Les entrées sont valides dans cet exercice.
Voir le corrigé et les critères
Corrigé pédagogique
Le résultat est [3,6]. La valeur 20 coupe la séquence car le seuil est strict. Un tableau vide ou une seule valeur au-dessus du seuil renvoie []. La séquence 21,22,23 ne produit qu’un signal, au deuxième élément ; il faut éviter de signaler aussi le troisième. Écrivez d’abord ces exemples, constatez un échec, puis parcourez les valeurs en gardant la longueur de la séquence courante : incrémenter au-dessus de 20, remettre à zéro sinon, émettre uniquement quand la longueur atteint 2. Cette règle est en O(n), hors taille du résultat, et ne nécessite aucun appel réseau. Testez séparément le formatage des points destinés au graphique.
Pour évaluer votre réponse
Vous explicitez le seuil, la notion de nouvelle séquence et l’unicité du signal, puis vérifiez les cas limites.
Éviter qu’une réponse ancienne écrase la sélection actuelle
Exercice original Avanttoi. Un écran charge les mesures du capteur A puis du capteur B. La réponse B arrive en premier, celle de A arrive ensuite. Concevez les états et contrôles empêchant l’écran d’afficher A quand B reste sélectionné. Ajoutez le traitement d’un HTTP 500 et d’un JSON vide valide.
Voir le corrigé et les critères
Corrigé pédagogique
Associez chaque demande à un identifiant croissant et n’appliquez résultat, erreur ou fin de chargement que si cet identifiant est encore celui de la demande active. Annuler la précédente requête avec AbortController évite du travail inutile, mais conserver le contrôle de fraîcheur protège aussi les traitements asynchrones ultérieurs. Une réponse HTTP 500 ne fait pas nécessairement rejeter fetch : vérifiez response.ok avant de lire le contenu attendu. Un tableau vide valide affiche un état vide ; il ne devient ni un message d’erreur ni un graphique contenant des zéros inventés. Simulez les deux ordres de réponse et vérifiez aussi qu’une erreur tardive de A ne remplace pas le succès de B.
Pour évaluer votre réponse
La même protection couvre succès, erreur et indicateur de chargement ; aucun résultat périmé n’est appliqué.
Valider une réponse inconnue avant de dessiner le graphique
Exercice original Avanttoi. Une réponse JSON est typée unknown. Le contrat exige un tableau d’objets ayant t et value, deux nombres finis, avec t strictement croissant. Comparez une assertion TypeScript à une validation d’exécution. Indiquez comment traiter null, une chaîne numérique, un timestamp répété et un tableau vide.
Voir le corrigé et les critères
Corrigé pédagogique
Une assertion comme as Point[] ne contrôle pas la valeur reçue. Vérifiez Array.isArray, puis pour chaque élément un objet non nul, des champs numériques, Number.isFinite et un timestamp supérieur au précédent. null, la chaîne '12' et un timestamp répété sont rejetés suivant ce contrat. Le tableau vide est valide et produit un état vide explicite. Ne convertissez pas automatiquement les chaînes sans décider d’une convention d’entrée. Une fonction de validation peut renvoyer un résultat discriminé succès/erreur ; seul le chemin succès fournit les points au calcul. Testez les erreurs sans tronquer silencieusement les données.
Pour évaluer votre réponse
Vous séparez contrôle statique et validation réelle, préservez la convention choisie et traitez l’absence de données explicitement.
Une séance de préparation ciblée
- 15 minutes : relisez les sujets rapportés et listez les notions que vous savez expliquer avec un exemple précis.
- 45 minutes : réalisez les trois exercices Avanttoi associés à cette fiche, puis comparez votre réponse aux critères et aux corrigés.
- 15 minutes : présentez à voix haute une réponse technique et une expérience réelle ; notez les hypothèses et informations à confirmer.
Les informations encore inconnues
- Ce compte rendu décrit un recrutement passé, déclaré par son auteur ; il ne constitue pas une validation indépendante ni le processus actuel officiel.
- La référence de l’offre, la durée du contrat et le mois de prise de poste ne sont pas documentés. Le mois affiché est celui de l’entretien.
- Les sujets rapportés ne donnent pas le barème ni un corrigé officiel. Les scénarios et réponses Avanttoi ci-dessous sont des créations pédagogiques.
À demander à votre recruteur
- Quelle est la référence exacte du poste, son équipe et son périmètre géographique ?
- Quel type de contrat, quelle durée et quelle date de début sont prévus pour cette candidature ?
- Quels formats, outils autorisés et étapes sont prévus pour cette session de recrutement ?