Em fevereiro de 2022, finalmente me mudei para os EUA com o visto de trabalho O1. Isso foi precedido por 2,5 anos de trabalho no fortalecimento do caso, aguardando aprovação.
1,5 anos antes dessa data, comecei a me preparar para uma entrevista para o cargo de Front End. Atualmente trabalhando como Senior Front-End Engineer na Roku.
Este post e a criação do canal telegram foram motivados pela falta de informações detalhadas sobre entrevistas para engenheiros de Front-End nos EUA.
Antes da mudança, trabalhei por 7 anos em empresas de terceirização na Bielo-Rússia. Isso me permitiu usar diferentes tecnologias, abordagens e trabalhar em vários projetos. Antes de me mudar, já ocupei o cargo de Gerente de Engenharia com 26 engenheiros de JavaScript (isso fortaleceu meu currículo, especialmente para um cargo de Staff). No ano passado, realizei cerca de 50 entrevistas técnicas no departamento.
Mas nos EUA, percebi que minha experiência não é totalmente relevante e preciso começar de um cargo sênior para entender como os processos são construídos aqui, a cultura e como conduzir entrevistas, que são completamente diferentes aqui .
Comecei a me preparar para a entrevista técnica com 1,5 anos de antecedência enquanto esperava meu visto. Todas as manhãs da minha semana de trabalho eram dedicadas à preparação. Tornou-se um hábito ao longo do tempo e não causou nenhum desconforto. Depois de um tempo, fui promovido ao cargo de Gerente de Engenharia, pois estava crescendo rapidamente.
1. Leetcode
Resolvi 245 problemas no leetcode. Concentrei-me principalmente em arrays, matrizes, árvores, listas encadeadas, strings, tabelas hash, classificações e dois ponteiros. No meu perfil , você pode ver os tópicos que resolvi.
2. Big Front End ( https://bigfrontend.dev/ )
Resolvi 50% dos problemas BFE (fácil e médio). Publiquei todas essas soluções no meu canal do t elegram . Este recurso é mais útil para entrevistas na Meta, mas outras empresas são mais ou menos propensas a fazer perguntas semelhantes.
3. Projeto do sistema
4. Entrevista comportamental
No Glassdoor, você encontra alguns exemplos de perguntas e tarefas que as empresas fazem.
Ao chegar, tive um jet lag de 2 semanas, não tinha como passar na entrevista, não conseguia dormir normalmente.
Mas depois que me adaptei, comecei a fazer ligações ativamente com recrutadores, escrevendo no LinkedIn. Foram de 20 a 30 mensagens com oportunidades por dia, mas a maioria delas são empresas sem nome ou startups.
Antes de responder a mensagem, analisei a empresa, os investimentos, se é uma empresa pública ou privada, o que fazem e com quais tecnologias trabalham (foquei basicamente em React.js, pilha JS/TS, também, o Front End posição).
Este era o filtro original.
Durante o dia, recebi de 3 a 4 telefonemas com os recrutadores e, em seguida, 2 entrevistas técnicas.
No total, participei de cerca de 20 simulados para entender como me comportar em uma entrevista e quais são meus pontos fracos, mas isso não se compara a entrevistas reais. Em entrevistas reais, já tive um crescimento perceptível, já depois de 1 a 1,5 meses, comecei a resolver problemas com mais eficiência, descobrir requisitos, me vender e responder a perguntas comportamentais, porque a cada entrevista eu trabalhava com erros e corrigia histórias .
Comecei com pequenas startups e empresas e estava pronto para a rejeição (isso é importante!).
Todos os dias, durante 2 meses, recebi telefonemas de recrutadores, triagens técnicas e entrevistas no local. É muito conveniente que agora tudo esteja online. Depois de quase um mês de exibições técnicas, até disse que gostei do processo de entrevista, são tantos problemas e pessoas interessantes, mas chegou a hora do local … depois das primeiras 5 horas de entrevista, minha opinião mudou para uma direção completamente diferente , é tão difícil!
No começo, tive rejeições e foi frustrante, claro. Mas assim que recebi a primeira oferta, minha motivação cresceu imediatamente .. até a próxima rejeição.
Eu estava pronto para a rejeição, mas ainda é desagradável ouvir, especialmente quando você passou de 5 a 6 horas e eles enviaram uma resposta padrão informando que decidimos mudar para outro candidato sem nenhum feedback. Isso me motivou a refletir e analisar o que deu errado. Tomei notas e tentei encontrar respostas sobre como resolver o problema ou o que precisava ser esclarecido e como projetar algo. Isso ajudou em entrevistas futuras a combinar diferentes soluções em uma e produzir uma solução de alta qualidade.
Além disso, a comunicação com os recrutadores me ajudou a melhorar meu inglês, no começo eu podia não entender nem metade do que eles falavam para mim, mas depois me acostumei e foi muito mais fácil.
No final, tive entrevistas muito boas, mas continuei sendo rejeitado em algumas delas. E o pior é que você não entende o que deu errado.
Minhas estatísticas da entrevista:
Tech Screens (26) : Meta, Amazon, Apple, Google, Microsoft, Lyft, Uber, LinkedIn, Roku, Salesforce, PayPal, DoorDash, Robinhood, Roblox, Intuit, Zoom, Grammarly, Imply, Disco, Square, SigmaComputing, LiveRamp, Zoox, Palo Alto Networks, Floco de Neve, Aurora
Entrevistas no local (15) : Meta, Amazon, Google, Microsoft, LinkedIn, Roku, Salesforce, PayPal, DoorDash, Zoom, Grammarly, SigmaComputing, LiveRamp, Zoox, Aurora
Ofertas : Google, Roku, Microsoft, PayPal, SigmaComputing, LiveRamp
Ao se candidatar a uma posição de Front End, provavelmente serão feitas apenas perguntas sobre o frontend, mas pelo menos 1 problema de algoritmo do nível easy-mid será solicitado, principalmente sobre a estrutura de dados e seu processamento (não há muitos em JS :)). Mas alguns gostam de perguntar aos algoritmos à moda antiga.
Todos os materiais de preparação que mencionei acima cobriram as perguntas da entrevista.
O processo é bastante padrão:
4. Negociação
1. Ligue para o recrutador
Em uma ligação com um recrutador, você discute questões gerais, aprende mais sobre a empresa e a equipe que está entrevistando. Eles perguntam sobre sua permissão de trabalho. Na conversa, eles perguntam sobre sua experiência e verificam seu inglês. Eles descobrem em que estágio de sua busca por emprego você está e podem aproveitar isso, por exemplo, para acelerar seu processo de entrevista (em Aurora, eu disse que concluí todas as minhas entrevistas e, se pudermos passar rapidamente por todas as etapas, Concordo. Como resultado, todas as etapas foram feitas para mim em 4 dias e no local em apenas 3 rodadas).
Muitas vezes, as chamadas acontecem antes de você enviar seu currículo. Só se tudo correr bem e houver correspondência, ser-lhe-á pedido o envio do seu CV. Eles podem perguntar sobre suas expectativas salariais, mas respondi com sinceridade que não tenho ideia de quanto valho no mercado desde que cheguei. Isso foi o suficiente para eles ignorarem a pergunta. Você pode solicitar todas as informações necessárias na mesma chamada, incluindo o stack técnico da equipe. Se você tiver perguntas importantes para você, este é o momento de fazê-las. Para mim, foram os termos do green card e do tech stack.
Os recrutadores respeitam o seu tempo, então você coordena cada chamada de acordo com o calendário, escolhendo o do recrutador, ou o recrutador pode escolher no seu calendário.
Não especifique suas expectativas salariais em nenhum caso, se elas forem muito exigentes (isso aconteceu apenas uma vez), especifique um intervalo amplo. O recrutador de Turo repetidamente me perguntou o que eu esperava e, quando dei a ele o intervalo, ele disse que nossa remuneração era 2 vezes menor e que não poderíamos igualar.
2. Triagem técnica
Então você passou no primeiro estágio e foi designado para uma triagem técnica. Normalmente, são 45 minutos. Nele, novamente, você contará um pouco sobre você, fará perguntas sobre sua experiência e será dado para resolver algum pequeno problema (em 90% fará um pequeno widget em JS e um framework, ou um fácil problema para algoritmos, ou melhor, estruturas de dados que estão em JS). Ocasionalmente, havia problemas no Hackerrank com HTML, CSS e JS, 2–3. Estes são bastante simples de resolver. Às vezes você pode usar qualquer editor de sua escolha. Mas na maioria das vezes envio um link para meu editor online (mesmo com destaque de código).
O mais importante é não ficar calado, pensar em voz alta para que o entrevistador acompanhe seus pensamentos.
Em relação à execução do código é 50/50, às vezes você precisa executar o código quando quiser e quanto quiser, às vezes nem preciso executar o código (nem existe essa possibilidade).
Houve uma vez em que me pediram para projetar um sistema de elevador em uma triagem técnica (sem código), não acabou bem :)
3. Entrevista no local (virtual)
A etapa mais difícil da entrevista, pois dura de 3 a 6 horas. Muitas empresas permitem que você divida em 2 dias, isso é com você.
Consiste em codificação, design do sistema e entrevista comportamental.
Você pode perguntar ao recrutador sobre cada rodada no local para entender o que esperar dele.
As rodadas de codificação são semelhantes à triagem técnica: descubra os requisitos, discuta a solução, codifique e teste.
Projeto de sistema
Sempre focado em questões de front-end, não é preciso falar sobre sistemas altamente carregados, bancos de dados, etc. Você só precisa descrever algumas funcionalidades do navegador, formas de otimizar, customizar e expandir, descrever como transferir dados para o servidor, como armazená-lo, onde armazená-lo e por quê. Às vezes, você precisa projetar vários terminais com estruturas de solicitação e resposta. Não se esqueça da acessibilidade, é muito importante!
entrevista comportamental
Aqui você pode esperar perguntas sobre sua experiência, projetos e trabalho em equipe. Basicamente, essas perguntas são "Conte-me uma situação em que você .."
Em geral, as perguntas feitas sobre o projeto mais desafiador, o conflito na equipe, o que fizemos quando os prazos estavam se aproximando e não tínhamos tempo e qual foi nossa maior falha.
Todas as histórias devem ser contadas de acordo com a metodologia STAR (situação — tarefa — ação — resultado). A história não deve ser muito longa. Você será questionado se não explicou algo ou se o entrevistador o entendeu mal.
Na maioria dos casos, os gerentes de contratação conduzem as entrevistas. No final, esta é uma ótima oportunidade para você tirar todas as suas dúvidas sobre a equipe e o produto.
Negociação
Não há etapa menos estressante ou importante. Levei quase um mês. Com algumas empresas, houve até várias rodadas, em média, levantei ofertas de 70 a 100 mil. Peça feedback sobre você para entender melhor o quão bom você foi e use-o como uma ferramenta de negociação. Mas nada funciona melhor do que uma contra-oferta. Mas é importante não ir muito longe, veja antes as compensações no site levels.fyi para entender o alcance.
Em todas as empresas, os recrutadores fazem um trabalho muito bom e o apoiam em todas as etapas, informam o que esperar em cada rodada, como se preparar e informam como é o processo de entrevista em geral.
Amazon : Tive a pior entrevista de todas. Em todas as rodadas tive problemas em entender o que o entrevistador queria de mim, esclareci os requisitos na maioria das vezes e expliquei minha solução porque por algum motivo eles não conseguiam entender. E quando começaram a fazer perguntas sobre JavaScript durante o processo de codificação, descobriram que não sabiam e tiveram que gastar mais tempo explicando por que eu o uso e como funciona. Como resultado, restavam 5 a 7 minutos para a codificação, mas isso foi o suficiente para terminar. Na última rodada, peguei o difícil problema das árvores, que não resolvi totalmente.
Microsoft : Novamente, alguns dos entrevistadores não conheciam JavaScript, apenas perguntaram sobre problemas algorítmicos e sobre como o JavaScript funciona. Era mais como uma entrevista para uma posição full-stack.
Zoox : Apenas problemas de matemática e algoritmos foram solicitados.
Aurora : Mais uma vez, apenas algoritmos foram solicitados, embora a posição seja puramente Front-End. No entanto, a entrevista do meu amigo concentrou-se apenas em perguntas iniciais.
Meta : Não esperava tanta atenção desta empresa. Tive muitas ligações com um recrutador, algumas duraram uma hora, onde ele contou tudo detalhadamente sobre o processo de entrevista, deu materiais de preparação, perguntou como estava indo a preparação e deu conselhos, inclusive como se comportar em uma entrevista , o que perguntar, o que é melhor não perguntar. As perguntas estavam no foco do frontend. Após o local, o congelamento de contratações começou imediatamente…
LinkedIn : Eles têm uma estrutura Ember.js, então as perguntas são apenas sobre JavaScript puro e o frontend.
Apple : Perdi meu feedback após a triagem técnica. Ainda procurando.
Google : O processo de entrevista foi focado no front-end. Depois de obter a aprovação do Google Hairing Committee, sua próxima etapa é a combinação de equipes. Tive feedback misto entre os níveis L5 e L4. Como resultado, o comitê me deu L4 sem etapas adicionais de entrevista. Somente após uma partida de equipe bem-sucedida, eles enviarão uma oferta com números, mas quanto tempo esse processo pode demorar depende de muitos fatores.
Eu tinha 2 chamadas de equipe por semana, embora pudesse fazer todos os dias. O processo demorou 2 semanas.
Os critérios pelos quais comparei as equipes:
Tamanho da equipe. Front-end, back-end, engenheiros de infraestrutura.
Pilha de tecnologia (todos Angular).
Promoção para L5 (tempo e oportunidade).
Produtos.
Responsabilidades.
Posição frontal ou pilha completa. Havia até mesmo um back-end apenas.
Processo de desenvolvimento.
Quem são os usuários do produto, quantos. Talvez este seja um projeto interno ou grande para um grande número de usuários.
Avaliado o quão confortável se comunica com o gerente ou líder da equipe para mim.
Como resultado, combinei com a equipe do Google Analytics, responsável pelo desempenho deste produto. Nessa equipe, vi muitas oportunidades de crescimento e métricas de promoção.
Comparei as ofertas e decidi qual aceitar de acordo com os seguintes critérios.
Produtos. É muito importante que o produto seja do seu interesse. Tenho muitos anos de experiência no desenvolvimento de plataformas de streaming e conheço as necessidades dos usuários e desenvolvedores. Posso aprender muito e ver muitos desafios para mim em tais produtos. Roku me dá essa oportunidade.
Pilha de tecnologia e ferramentas. Não gosto de Angular, prefiro React.js. Esta foi uma das razões mais importantes pelas quais escolhi Roku.
Equilíbrio trabalho-vida. Isso é uma coisa muito importante. Eu não quero queimar. Durante o processo de entrevista, você pode fazer perguntas sobre o assunto e ouvir atentamente as respostas.
Oportunidades de crescimento. Crescimento em termos técnicos e dentro da empresa para a posição de liderança (Staff)
Nível de Posição. Depois do cargo de gerente de engenharia, não estava preparado para cargos intermediários (sim, havia também).
Compensação total. Base e estoque. Roku paga 85% em dinheiro para cargos seniores, o que é mais lucrativo para mim, como iniciante neste país, pois nesta fase o dinheiro é necessário aqui e agora.
Processo de Cartão Verde. Algumas empresas iniciam o processo de green card a partir do 1º dia útil, outras após 3, 6, 12 meses. Eu filtrei as empresas com base em 1 dia e 3 meses. Mas descobri que esses termos também podem ser negociados, consegui negociar de 3 meses a 1 dia útil. Uma nuance importante, a Meta não emite green cards, perguntei a eles sobre isso em todas as ligações, em todas as etapas da entrevista, mas nunca recebi uma resposta, ninguém mesmo. Mas de acordo com informações na Internet, tudo está ruim com eles.
Tamanho da equipe e responsabilidades. Não gosto de trabalhar em uma equipe onde você é um engenheiro de Front End, ou mesmo 2. Quero crescer e aprender. O nível dos engenheiros da equipe também foi importante para mim.
Trabalho remoto ou trabalho de escritório. Prefiro trabalho de escritório. Trabalhar em casa não é confortável para mim. Algumas empresas agora oferecem trabalhar 3 dias no escritório, 2 dias remotamente e algumas oferecem trabalho remoto completo.
Localização do escritório. Moro em San Jose e algumas empresas têm escritórios em San Francisco. Levará pelo menos 1,5 horas para chegar até aqui. Você quer gastar 3 horas por dia nisso?
Não agende mais de 3 (mas de preferência 2) visitas por semana. Na semana passada eu tive 4 onsites em uma semana e foi um inferno! Mas recebi 2 ofertas :)
Em uma entrevista, suas habilidades crescem exponencialmente, então não passe imediatamente na entrevista com a empresa dos seus sonhos.
Após a entrevista você pode conversar com alguém, isso ajuda a relaxar.
Trabalhe nos erros após cada entrevista para entender o que pode ter dado errado, procure respostas para perguntas e tarefas que estavam na entrevista e tente descobrir.
Prepare o texto para sua autoapresentação por 1 a 1,5 minutos, você o contará em cada etapa da entrevista.
Para uma entrevista comportamental, prepare e pratique quantas histórias STAR puder, eu tinha cerca de 20 que cobriam quase todas as perguntas. Demorou cerca de um mês para prepará-los.
Compre uma assinatura paga do Calendly (ou um serviço similar) para facilitar o gerenciamento de suas entrevistas. Enviar as datas por e-mail significa que eles podem responder dentro de uma semana e exigir 5 datas (respectivamente), portanto, esses 5 dias ficam bloqueados para você e você não pode agendar outras entrevistas neles.
Se você tiver alguma dúvida ou tópico que não abordei, pergunte nos comentários aqui ou no meu canal do telegram !