Question d'entretien pour Ingénieur logiciel

Une API tierce dont vous dépendez commence à expirer par intermittence. Que faites-vous ?

Ce que le recruteur cherche à évaluer, comment structurer votre réponse et un exemple parlé à adapter.

Réponse rapide

Contenez d'abord : mettez un délai limite agressif pour que leur latence ne devienne pas la vôtre, reprenez avec attente exponentielle et jitter, sur les appels idempotents uniquement, et placez un disjoncteur devant pour arrêter de marteler quelque chose qui est déjà à terre. Décidez ensuite à quoi ressemble un comportement dégradé : mettre le travail en file pour plus tard, servir une valeur en cache, ou faire échouer cette seule fonctionnalité pendant que le reste du produit continue.

Pourquoi les recruteurs posent cette question

Tout vrai système dépend de quelque chose qu'il ne contrôle pas, et le recruteur veut savoir si vous concevez pour le jour où ce prestataire va mal. Il écoute les délais limites, qui sont le contrôle le plus souvent oublié, une discipline de reprise liée à l'idempotence, un disjoncteur pour ne pas aggraver la panne, et une réflexion au niveau produit sur la dégradation élégante plutôt que la propagation d'un 500 jusqu'à l'utilisateur.

Comment structurer votre réponse

  • Mettez un délai limite pour que leur problème reste le leur.
  • Ne reprenez que ce qui est sûr, avec attente croissante et jitter.
  • Ajoutez un disjoncteur pour ne pas en rajouter.
  • Définissez l'expérience dégradée pour les utilisateurs.

Exemple de réponse

Exemple parlé, à la première personne

La première chose que je vérifie, c'est si on a seulement un délai limite, parce que le défaut dans beaucoup de clients HTTP est en pratique l'infini, et c'est comme ça qu'un prestataire lent remplit votre pool de workers et fait tomber des endpoints qui n'ont rien à voir avec lui. Donc un délai limite agressif, plus serré que mon propre SLA. Ensuite les reprises, mais seulement sur les appels sûrs à répéter, avec attente exponentielle et jitter, parce que des reprises synchronisées depuis toutes les instances transforment leur ralentissement en panne complète. Un disjoncteur va devant, pour qu'après une série d'échecs on arrête d'appeler un moment et qu'on échoue vite plutôt que de faire la file. Puis la question produit, qui est la plus intéressante : que devrait voir l'utilisateur ? Pour un appel de validation d'adresse, je laisserais passer la commande en la marquant pour vérification. Pour une autorisation de paiement, je ne peux pas faire semblant, donc je mets la tentative en file et je le dis honnêtement à l'utilisateur. Et je serais sur leur canal de support avec des identifiants de requête pendant tout ce temps.

Vous passez cet entretien bientôt ? GhostPilot écoute votre appel en direct, repère la question dès qu'elle est posée et affiche une réponse structurée à l'écran en temps réel. Essayez-le lors de votre prochain entretien blanc, ou prenez un Session Pass à $29, sans abonnement, pour le jour J.

Voir comment ça marche

Questions de relance à prévoir

  • Comment décidez-vous la valeur du délai limite ?
  • Comment testeriez-vous que votre disjoncteur fonctionne réellement ?
  • Que surveilleriez-vous pour attraper ça avant les clients ?

Autres questions pour Ingénieur logiciel

Votre recruteur posera sa propre version de celle-ci. Collez votre véritable fiche de poste dans le Question Predictor gratuit et obtenez les 20 questions que ce poste a le plus de chances de poser, avec ce que chacune cherche vraiment à sonder.

Prédire mes questions

Répétez les questions difficiles avant qu'on vous les pose

Entraînez-vous avec un copilote en direct, puis présentez-vous prêt. Un Session Pass à $29 vous accompagne pendant l'entretien, sans abonnement et sans engagement.

Obtenir GhostPilot