ok, então recebi 47 mensagens de Marcus em uma semana sobre minha preparação para entrevista de engenheiro de software Uber. quarenta e sete. eu li talvez três deles. bombardeou a entrevista. duas de quatro rodadas, faceplant total. Marcus, se você está lendo isso: sim. eu sei. você me disse isso. você pode parar.
contexto rápido sobre Marcus - ele estagiou em Uber no verão de 2024 na infraestrutura do Eats, no verão em que reestruturaram a equipe de despacho. então, quando ele me manda uma mensagem às 23h dizendo "estude o produto Ibrahim" e "veja como funciona o despacho" e "leia sobre preços dinâmicos", ele realmente sabe do que está falando. como genuinamente sabe. e ele formatou suas iMessages com marcadores? quem faz isso haha. Marcus faz.
de qualquer forma, o que eu estava fazendo enquanto ignorava esses textos? sentado na cama às 2 da manhã com dominós de calabresa frios no colo. Oferta média de $ 7,99. encomendei tantos naquela semana que Dominos estava me enviando notificações push à 1h da manhã, como ei Ibrahim, você está com fome? (sim. sempre.) moagem de mídias LeetCode. olhos cruzados. cento e vinte problemas em três semanas e ZERO postagens do blog Uber lidas. moer LeetCode sem um plano é como você perde tempo. zero tempo no app pensando em combinar. nunca pesquisei "como o Uber despacha" no Google, o que leva quatro segundos. preparei arrays, árvores, listas vinculadas, DP. foi isso. esse era o plano todo e era um plano terrível.
i apareceu no escritório de SF e já estou tremendo. A propósito, Priya também me avisou sobre isso. Priya é minha amiga da faculdade (bem, originalmente namorada do meu colega de quarto da faculdade, agora uma das minhas amigas mais próximas, a vida é estranha). ela sempre diz que entra em entrevistas tentando aprender coisas, não tentando ser contratada. e eu me lembro de ter ido bem, Priya, essa é uma filosofia fofa, mas eu preciso de um TRABALHO. Acontece que ela estava certa? sim. ela estava certa. quando você precisa tanto de uma oferta, seu cérebro simplesmente trava. você esquece palavras que usa todos os dias. a caligrafia do quadro branco parece que você está tendo um evento médico. desculpe Priya. você estava certo. eu te devo um jantar.
A rodada comportamental me destruiu. tive uma história realmente boa sobre como otimizar os tempos de resposta da API na minha última empresa. troquei toda a fila de mensagens, uma aceleração real mensurável. meu entrevistador diz "qual métrica mudou" e eu digo "significativamente". e ela apenas. olha para mim. silêncio mortal por uns três segundos. "por quanto." e estou sentado lá fazendo contas mentais tentando lembrar os números de latência P99 que nunca anotei porque aparentemente o passado me odiava no futuro. Marcus me disse que exatamente isso aconteceria. ele disse que os entrevistadores Uber querem que você diga coisas como "cortei P99 de 340ms para 90ms depois de trocar RabbitMQ por Kafka" e apareci com "tornei as coisas mais rápidas". ótimo trabalho Ibrahim. eles também vinculam todas as questões comportamentais aos valores de sua empresa, são obcecados por viagens e vão buscá-las e construir com o coração, e descobri isso DURANTE a entrevista porque não li a página de carreiras lol.
a maior coisa que aprendi naquela rodada. Anote seus números. não consigo enfatizar isso o suficiente. antes de entrar, basta revisar projetos antigos. sente-se lá por vinte minutos. o que mudou. por quanto. por que você escolheu Kafka em vez de RabbitMQ ou algo assim. coloque no papel. um post-it, um guardanapo, não me importo. porque aqui está o que acontece se você não fizer isso: você fica em branco. seu entrevistador pergunta "qual métrica mudou" e você diz "significativamente" e então faltam três segundos para isso. nada. e vocês dois sabem disso. não invente coisas também. eles pressionarão cada número e você será pego em duas sequências. tentei o método STAR. não fez nada por mim honestamente. talvez funcione para outras pessoas. eu tinha histórias reais, até boas, simplesmente não conseguia tirar os detalhes da cabeça enquanto alguém olhava para mim. então sim. notas adesivas. no seu laptop. no seu telefone. onde quer que seja.
foi meu único ponto positivo. Uber começa com um OA CodeSignal, quatro problemas em setenta minutos. os dois primeiros eram coisas básicas de array, eu os derrubei em talvez doze minutos no total. a terceira era uma janela deslizante e eu havia resolvido exatamente esse tipo de problema seis dias antes, então pura sorte. o quarto foi um percurso gráfico que levou vinte e cinco minutos e eu enviei faltando uns quarenta segundos para o final, com as palmas das mãos suando. Marcus conseguiu DP em seu quarto, então a piscina gira. problemas de programação dinâmica geram perguntas terríveis nas entrevistas, honestamente. ou você já conhece o truque ou apenas fica sentado olhando para ele. ninguém vai inventar uma solução de DP ideal do zero enquanto o entrevistador assiste.
foi com um engenheiro Uber real. grade ponderada com obstáculos, nível médio, depois um acompanhamento adicionou ordem de prioridade e de repente ficou difícil. o que me pegou desprevenido foi o quanto meu screener FALAVA. eu tinha acabado de fazer uma tela do telefone Google onde o engenheiro disse talvez quinze palavras durante os quarenta e cinco minutos inteiros, silêncio total enquanto eu codificava, parecia que estava fazendo um exame em uma sala vazia. a pessoa Uber era o oposto, dizendo "e se esta entrada estiver vazia" e "me guie por essa linha novamente" como se fôssemos dois colegas de trabalho depurando algo às 15h de uma quarta-feira. na verdade eu gostei muito disso. falar sobre seu código enquanto você o escreve é o objetivo dessas telas e, quando ninguém responde, parece estranho e isolador.
minha rotina de preparação, e eu só comecei DEPOIS de bombardear a primeira rodada, então faça o que eu digo, não o que eu fiz, foi resolver dois ou três problemas básicos antes de tocar em qualquer coisa difícil. pesquisa binária, 2Sum, DFS e BFS em árvores e gráficos, lista vinculada reversa, troca de moeda para DP. estes são os seus blocos de construção. você deseja que eles sejam uma memória muscular para poder escrever o código o mais rápido que puder. o verdadeiro truque com problemas gráficos é apenas identificar que você está olhando para um problema gráfico. Marcus disse isso um milhão de vezes e eu finalmente entendi durante meu CodeSignal, quando o problema quatro estava olhando para mim e quase fui à força bruta antes de pensar, espere, isso é literalmente apenas BFS.
design do sistema foi onde eu morri. "projetar o mecanismo de correspondência de despacho." foi o que meu entrevistador disse. cinco palavras. meu cérebro? vazio. completamente vazio. Peguei o marcador e comecei a desenhar caixas de microsserviços no quadro branco como se fosse o dever de casa do CS101. e eu pude ver isso acontecendo. seu rosto mudando. cotovelos apoiados nos joelhos, inclinados, interessados, e trinta segundos depois, braços cruzados, recostados. feito comigo. esse cara CONSTRUIU o sistema de despacho do Uber. CONSTRUIU. e aqui estou desenhando um retângulo chamado "API Gateway" como se isso significasse alguma coisa para ele. ele tentou me ajudar. ele realmente fez. "o que acontece quando um motorista fica off-line no meio da entrega." ok, hum. "e se três restaurantes terminarem de cozinhar e apenas um motorista estiver por perto." ahh. estou sentado aí pensando sobre isso da perspectiva de um cara que pede pad thai no Uber Come duas vezes por semana. esse é todo o meu modelo mental de despacho. indexação geoespacial? não faço ideia. heurística correspondente? eu literalmente não poderia ter definido essa palavra naquele momento. retângulos em um quadro branco. isso é o que eu tinha. retângulos e vibrações.
(James me contou tudo isso DEPOIS, a propósito. meu colega de trabalho. ganha a vida com DevOps, executa sistemas de produção reais, não projetos de classe. ele se saiu bem em suas rodadas de design em duas empresas diferentes. sua coisa número um: seu nome é drop Kafka, é melhor você ter tocado em Kafka. porque as perguntas de acompanhamento irão destruí-lo em trinta segundos e você estará sentado lá dizendo "bem, hum, eu li sobre isso." apenas diga "fila distribuída" se você não a tiver usado. não finja experiência. James também disse eu devo repetir o problema primeiro para o entrevistador, perguntar no que eles querem se concentrar, depois começar de trinta mil pés e zoom dentro. Eu não fiz nenhuma dessas coisas, zero haha.)
eu tinha InterviewMan funcionando o tempo todo e isso honestamente me salvou de uma destruição total. durante o design do sistema, ele escolheu "correspondência de despacho" como tópico antes mesmo de meu entrevistador terminar de falar e me forneceu uma estrutura inicial para que eu tivesse algo diferente de um olhar vazio. em CodeSignal, ele capturou a abordagem gráfica do problema quatro antes mesmo de eu mesmo analisar as restrições. A rodada comportamental revelou uma história anterior em que eu havia dito um número de latência concreto, exatamente o que meu entrevistador estava procurando. verifiquei o dock, Activity Monitor, lista de processos, gravações de tela em CodeSignal e Zoom posteriormente e não consegui encontrá-lo. doze dólares por mês anualmente, sem limite de sessões. comparado ao Interview Coder de duzentos e noventa e nove dólares que só faz codificação (duas de quatro rodadas), nem era uma pergunta. 57.000 usuários agora, mais de vinte recursos desenvolvidos para serem invisíveis.
livros bem rápido. Quebrando a entrevista de codificação? estava tudo bem. apenas suaviza demais as coisas, como se você lesse e pensasse, ok, isso é possível e então você se senta para uma entrevista de verdade e não. livro perigoso, honestamente. No entanto, projetando aplicativos com uso intensivo de dados. ah cara. divisor de águas para o design do sistema. sério, um dos melhores livros técnicos que possuo. leia mesmo que você não tenha nenhuma entrevista marcada, é simplesmente bom. para algoritmos usei o livro de Jeff Erickson, que é online gratuito e realmente divertido? ele o escreveu para estudantes de graduação, não para pesquisadores, então não parece uma dissertação. Marcus confia no Manual de Design de Algoritmo de Skienna, mas até ele admite que você precisa pular. ir da frente para trás é um trabalho árduo.
então sim. Marcus estava certo. sobre literalmente tudo. estude o produto antes de aparecer. os entrevistadores de design de sistema em Uber construíram as coisas reais que pediram para você projetar. isso não é uma metáfora. eles literalmente o construíram. escreva seus números comportamentais em um post-it. faça aquecimentos todas as manhãs, como se estivesse alongando antes de uma corrida. e pelo amor de Deus, não entre em um desenho redondo e desenhe retângulos em um quadro branco e chame isso de sistema. eu fiz isso. foi exatamente como você pensa.
Ready to Ace Your Next Interview?
Join 57,000+ professionals using InterviewMan to get real-time AI assistance during their interviews.
