ok, j'ai donc reçu 47 SMS de Marcus en une semaine à propos de ma préparation à mon entretien d'ingénieur logiciel Uber. quarante sept. j'en ai lu peut-être trois. a bombardé l’interview. deux tours sur quatre, total faceplant. Marcus si vous lisez ceci : oui. je sais. tu me l'as dit. vous pouvez arrêter.
Contexte rapide sur Marcus -- il a effectué un stage chez Uber à l'été 2024 sur l'infrastructure Eats, l'été où ils ont restructuré l'équipe de répartition. Ainsi, quand il m'envoie un texto à 23 heures pour « étudier le produit Ibrahim », « regarder comment fonctionne l'expédition » et « lire sur les prix de pointe », il sait réellement de quoi il parle. comme je le sais vraiment. et il a formaté ses iMessages avec des puces ? qui fait ça mdr. Marcus le fait.
Quoi qu'il en soit, qu'est-ce que je faisais en ignorant ces textes ? assis au lit à 2 heures du matin avec des dominos au pepperoni froid sur mes genoux. 7,99 $, offre moyenne. j'en ai commandé tellement cette semaine-là, Dominos m'envoyait des notifications push à 1h du matin comme hé Ibrahim tu as faim ? (oui. toujours.) broyage des médiums LeetCode. les yeux croisés. cent vingt problèmes en trois semaines et ZÉRO articles de blog Uber lus. le broyage LeetCode sans plan est une façon de perdre du temps. zéro temps dans l'application à penser à la correspondance. je n'ai jamais cherché sur Google "comment Uber est-il expédié", ce qui prend quatre secondes. J'ai préparé des tableaux, des arbres, des listes chaînées, DP. c'était ça. c'était tout le plan et c'était un plan terrible.
i me présente au bureau de SF et je tremble déjà. Priya m'en a aussi prévenu d'ailleurs. Priya est mon amie d'université (enfin, la petite amie de mon colocataire à l'origine, maintenant l'une de mes amies les plus proches, la vie est bizarre). elle dit toujours qu'elle se présente aux entretiens pour essayer d'apprendre des choses et non pour se faire embaucher. et je me souviens d'être allé ok Priya, c'est une philosophie mignonne mais j'ai besoin d'un TRAVAIL. il s'avère qu'elle avait raison ? Ouais. elle avait raison. lorsque vous avez vraiment besoin d’une offre, votre cerveau se bloque. vous oubliez les mots que vous utilisez tous les jours. l’écriture de votre tableau blanc donne l’impression que vous assistez à un événement médical. désolé Priya. tu avais raison. je te dois le dîner.
m'a détruit. J'ai eu cette très bonne histoire sur l'optimisation des temps de réponse des API dans ma dernière entreprise. J'ai échangé toute la file d'attente des messages, une véritable accélération mesurable. mon intervieweur dit "quelle métrique a bougé" et je dis "de manière significative". et elle juste. me regarde. silence de mort pendant environ trois secondes. "de combien." et je suis assis là à faire du calcul mental en essayant de me souvenir des chiffres de latence P99 que je n'ai jamais notés parce qu'apparemment, mon passé détestait mon futur. Marcus m'a dit que c'est exactement ce qui arriverait. il a dit que les intervieweurs de Uber voulaient que vous disiez des trucs comme "j'ai réduit P99 de 340 ms à 90 ms après avoir remplacé RabbitMQ par Kafka" et je me suis présenté avec "j'ai rendu les choses plus rapides". super travail Ibrahim. ils relient également chaque question comportementale aux valeurs de leur entreprise, sont obsédés par les voyages et vont le chercher et construisent avec cœur, et j'ai découvert cela PENDANT l'entretien parce que je n'ai pas lu la page des carrières mdr.
la plus grande chose que j'ai apprise de ce tour. ÉCRIVEZ VOS CHIFFRES. je ne saurais trop insister sur ce point. avant d’entrer, parcourez simplement d’anciens projets. reste assis là pendant vingt minutes. ce qui a bougé. de combien. pourquoi vous avez choisi Kafka plutôt que RabbitMQ ou autre. mettez-le sur papier. un post-it, une serviette, je m'en fiche. car voici ce qui se passe si vous ne le faites pas : vous êtes vide. votre interlocuteur demande « quelle mesure a bougé » et vous dites « de manière significative », puis il reste trois secondes seulement. rien. et vous le savez tous les deux. n'inventez rien non plus. ils pousseront sur chaque numéro et vous serez pris dans deux suivis. j'ai essayé la méthode STAR. honnêtement, il n'a rien fait pour moi. peut-être que ça marche pour d'autres personnes. j'avais de vraies histoires, même des bonnes, je n'arrivais tout simplement pas à sortir les détails de ma tête pendant que quelqu'un me regardait. alors oui. notes autocollantes. sur votre ordinateur portable. sur votre téléphone. partout.
était mon seul point positif. Uber commence par un CodeSignal OA, quatre problèmes en soixante-dix minutes. les deux premiers étaient des éléments de base, je les ai éliminés en peut-être douze minutes au total. le troisième était une fenêtre coulissante et j'avais résolu exactement ce type de problème six jours plus tôt, donc pure chance. le quatrième était un parcours graphique qui a duré vingt-cinq minutes et que j'ai soumis avec environ quarante secondes restantes, les paumes moites. Marcus a obtenu DP à son quatrième donc la piscine tourne. les problèmes de programmation dynamique posent honnêtement de terribles questions d'entretien. Soit vous connaissez déjà le truc, soit vous restez assis là à le regarder. personne ne va inventer une solution DP optimale à partir de zéro pendant que son intervieweur regarde.
était avec un véritable ingénieur Uber. grille pondérée avec obstacles, niveau moyen, puis un suivi ajouté un ordre de priorité et du coup c'était dur. Ce qui m'a pris au dépourvu, c'est à quel point mon contrôleur a PARLÉ. Je venais de faire un écran de téléphone Google où l'ingénieur prononçait peut-être quinze mots pendant quarante-cinq minutes, un silence total pendant que je codais, j'avais l'impression de passer un examen dans une pièce vide. la personne Uber était à l'opposé, disant « et si cette entrée était vide » et « me faire parcourir à nouveau cette ligne » comme si nous étions deux collègues déboguant quelque chose à 15 heures un mercredi. En fait, j'ai vraiment aimé ça. parler de votre code pendant que vous l'écrivez est en quelque sorte le but de ces écrans et quand personne ne répond, cela semble bizarre et isolant.
ma routine de préparation, et je n'ai commencé cela qu'APRÈS le premier bombardement, alors faites ce que je dis et non ce que j'ai fait, je résolvais deux ou trois problèmes de base avant de toucher à quelque chose de difficile. recherche binaire, 2Sum, DFS et BFS sur arbres et graphiques, inverser une liste chaînée, changement de pièces pour DP. ce sont vos éléments de base. vous voulez qu'ils soient de la mémoire musculaire afin que vous puissiez écrire le code aussi vite que vous pouvez taper. le véritable truc avec les problèmes de graphiques consiste simplement à identifier que vous examinez un problème de graphique. Marcus a dit cela un million de fois et je l'ai finalement compris lors de mon CodeSignal lorsque le problème quatre me regardait et j'ai failli passer à la force brute avant de penser à attendre, c'est littéralement juste BFS.
conception du système est l'endroit où je suis mort. "concevoir le moteur de correspondance de répartition." c'est ce que mon interlocuteur a dit. cinq mots. mon cerveau ? vide. complètement vide. J'ai attrapé le marqueur et j'ai commencé à dessiner des boîtes de microservices sur le tableau blanc comme s'il s'agissait d'un devoir CS101. et je pouvais le voir se produire. son visage change. les coudes sur les genoux penchés vers l'intérieur, intéressés, puis trente secondes plus tard les bras croisés, penchés en arrière. fini avec moi. ce type a CONSTRUIT le système de répartition de Uber. CONSTRUIT-LE. et ici je dessine un rectangle intitulé "API Gateway" comme si ça signifiait n'importe quoi pour lui. il a essayé de m'aider. il l'a vraiment fait. "Que se passe-t-il lorsqu'un chauffeur se déconnecte en cours de livraison." ok euh. "Et si trois restaurants finissent de cuisiner et qu'un seul chauffeur se trouve à proximité." euhhh. Je suis assis là à réfléchir à cela du point de vue d'un gars qui commande du pad thai sur Uber. Mange deux fois par semaine. c'est tout mon modèle mental de répartition. indexation géospatiale ? aucune idée. heuristique correspondante ? je n’aurais littéralement pas pu définir ce mot à ce moment-là. rectangles sur un tableau blanc. c'est ce que j'avais. rectangles et vibrations.
(James m'a dit tout cela APRÈS, d'ailleurs. mon collègue. fait du DevOps pour gagner sa vie, gère de vrais systèmes de production et non des projets de classe. il a réussi ses cycles de conception dans deux entreprises différentes. sa chose numéro un : vous nommez Kafka, vous feriez mieux de toucher Kafka. parce que les questions de suivi vous détruiront dans trente secondes et vous serez assis là en train de dire "eh bien, j'ai lu à ce sujet". dites simplement "file d'attente distribuée" si vous ne l'avez pas fait. Je l'ai utilisé. Ne faites pas semblant d'expertise. James m'a également dit de répéter d'abord le problème à l'intervieweur, de lui demander sur quoi il voulait se concentrer, puis de commencer à partir de trente mille pieds et de zoom. Je n'ai fait aucune de ces choses, zéro mdr.)
i faisait fonctionner InterviewMan tout le temps et cela m'a honnêtement sauvé d'un effacement total. lors de la conception du système, il a choisi la « correspondance de répartition » comme sujet avant même que mon intervieweur ait fini de parler et m'a donné une structure de départ, donc j'ai eu autre chose qu'un regard vide. sur CodeSignal, il a adopté l'approche graphique du problème quatre avant même d'analyser les contraintes moi-même. autour du comportement, il a ressorti une histoire plus tôt dans laquelle j'avais en fait dit un nombre de latence concret, exactement ce que mon intervieweur recherchait. J'ai vérifié le dock, Activity Monitor, la liste des processus, les enregistrements d'écran sur CodeSignal et Zoom par la suite et je ne l'ai pas trouvé. douze dollars par mois sur une base annuelle, pas de plafond sur les sessions. comparé à Interview Coder à deux cent quatre-vingt-dix-neuf dollars qui ne fait que du codage (deux tours sur quatre), ce n'était même pas une question. 57 000 utilisateurs maintenant, plus de vingt fonctionnalités conçues pour être invisible.
livres très rapidement. Déchiffrer l'entretien de codage ? c'était ok. ça adoucit trop les choses, comme si vous le lisiez et pensiez oh ok, c'est faisable, puis vous vous asseyez pour une vraie interview et non. livre dangereux honnêtement. Cependant, concevoir des applications à forte intensité de données. oh mec. change la donne pour la conception de systèmes. sérieusement l'un des meilleurs livres techniques que je possède. lisez-le même si vous n’avez aucune interview à venir, c’est tout simplement bien. pour les algorithmes, j'ai utilisé le manuel de Jeff Erickson qui est gratuit en ligne et vraiment amusant ? il l'a écrit pour les étudiants de premier cycle et non pour les chercheurs, donc il ne se lit pas comme une thèse. Marcus ne jure que par le manuel de conception d'algorithmes de Skienna, mais même lui admet qu'il faut sauter les étapes. aller d'avant en arrière est une tâche difficile.
alors oui. Marcus avait raison. sur littéralement tout. étudiez le produit avant de vous présenter. les enquêteurs en conception de systèmes de Uber ont construit les éléments qu'ils vous demandent de concevoir. ce n'est pas une métaphore. ils l'ont littéralement construit. écrivez vos chiffres comportementaux sur une note autocollante. faites des échauffements tous les matins, comme si vous vous étiriez avant une course. et pour l'amour de Dieu, n'entrez pas dans un cercle de conception et ne dessinez pas de rectangles sur un tableau blanc et appelez cela un système. j'ai fait ça. ça s'est passé exactement comme vous le pensiez.
Ready to Ace Your Next Interview?
Join 57,000+ professionals using InterviewMan to get real-time AI assistance during their interviews.
