[Experiência pessoal] Engenheiro front-end de Londres Facebook: como entrar no FAANG?

Como se preparar para entrevistas para se candidatar a uma empresa de nível FAANG? Juntamente com  Oleg Gromov , engenheiro de front-end do escritório de Londres do Facebook (ex. Yandex, Toptal etc.), elaboramos um plano de treinamento com base no último webinar  - com base em sua experiência pessoal.



Discutindo:



  • prós e contras de trabalhar em grandes empresas,
  • Design de currículo,
  • como estão as seções de triagem, algorítmica e arquitetônica,
  • qual é o papel do inglês e das habilidades sociais - na seção comportamental e na entrevista em geral,
  • onde treinar as habilidades necessárias para cada etapa: links úteis recolhidos.






FAANG é uma abreviatura de Facebook, Amazon, Apple, Netflix, Google, o nome, pelo que eu sei, apareceu 3-5 anos atrás. Essas foram as empresas com maior capitalização em TI. Eles são como um bar que todos estão tentando alcançar: se você cresceu para FAANG, então apenas as estrelas estão mais altas. Muitos engenheiros querem chegar lá: grandes salários, boas condições, oportunidades de desenvolvimento - isso é o que de melhor acontece no mundo entre as corporações.



Alguém inclui Microsoft, Uber, Airbnb, alguém está tentando transferir o termo para grandes empresas de tecnologia russas: Yandex, Mail.ru, Avito, ABBYY. Na minha opinião, eles não fazem parte do FAANG, o próprio conceito é apenas sobre os gigantes da tecnologia listados acima.



Mas há um estilo de entrevista de Fang, e essa é uma história diferente. O estilo foi adotado por muitas empresas que não são semelhantes à FAANG, nem em tamanho nem em lucratividade. A entrevista consiste em 4 ou mais seções , que incluem: entrevista algorítmica, projeto de sistema, entrevista comportamental. Ao se preparar para essa entrevista, você pode conseguir um emprego em uma empresa além da FAANG: o formato se torna familiar. Proponho usar esta abordagem ampla, vamos falar sobre as empresas que entrevistam sobre a estrutura Faang.



Prós e contras de trabalhar em empresas de nível FAANG



Nota lateral: estou falando exclusivamente sobre experiência em desenvolvimento web. Toda a minha vida fiz front-end, ao longo do tempo me tornei mais um desenvolvedor web full stack: lido com código de balanceadores a bancos de dados. Mas não estou falando sobre entrevistar e trabalhar na FAANG como um comerciante ou gerente de projeto.



Prós:



  • desenvolvimento.

    Se você realmente ama seu trabalho, se deseja desafios e projetos complexos, deseja desenvolver e se comunicar com um grande número de pessoas, incluindo os melhores especialistas.

    A primeira coisa que percebi quando cheguei a Yandex: "todos ao redor são inteligentes, mas eu não sou." Essa é uma história típica, o mesmo acontece quando você consegue um emprego no Google, no Facebook: as grandes empresas são um meio muito nutritivo para o crescimento. Principalmente para pessoas que não têm interesse em construir um negócio, mas em desenvolver-se como um especialista.
  • , .

    RSU — restricted stock unit, .        . RSU —  .  ,   RSU-   — ,       .
  • .

    :    !   .


Os contras dependem do tipo de pessoa que você é e do que deseja da vida. Básico: você não deve conseguir um emprego na FAANG se não gosta de ser a engrenagem de um mecanismo, além disso, o mecanismo é altamente regulado.



Naturalmente, quando uma empresa tem de 40 a 60 mil pessoas - quase como uma cidade - os processos devem ser bastante rígidos. E não necessariamente da categoria de "relatar isso e isso". Quer dizer, as empresas têm um sistema de motivação que sintoniza os desenvolvedores de uma certa maneira.



Para alguns, é adequado: por exemplo, jovens que se formaram na universidade. Eles trabalharam em algum lugar por um ano, entraram nesse esplendor e curtiram o processo e o resultado. Mas quem já tem 15 anos de experiência quer mais responsabilidade, quer usar sua experiência não para uma pequena tarefa dentro da empresa. Eles podem não ser muito bons na FAANG. Você precisa ter isso em mente e escolher um lugar para você e seus pontos fortes: não espere que no Facebook você se torne automaticamente a pessoa mais feliz do mundo. Isso não é verdade.



Antes de discutir as etapas da entrevista, gostaria de dar um passo atrás e falar sobre a experiência. Esta é uma etapa preliminar antes de tentar criar seu currículo.



Se você quer conseguir um emprego como senior na FAANG, não basta fazer um projeto em um ano e apresentá-lo lindamente. Provavelmente, isso não será suficiente. Se, por exemplo, você trabalhou em vários projetos por vários anos, pode precisar se preparar para as entrevistas - mas o mais importante, você tem experiência.



Se você está procurando posições com realocação, assine nosso bot @g_jobbot . E um recrutador de TI da g-mate o ajudará a empacotar seu currículo de uma forma que envolva os entrevistadores. O bot é simples e rápido de configurar: esfera, salário, local de realocação. As opções que mais lhe convêm virão ao Telegram.







Resumo



Não estou contratando no Facebook agora, digo do ponto de vista de um ex-gerente de contratações de Yandex e Toptal: é importante entender o que costuma acontecer com um currículo. Quando você o envia para uma empresa, está entre centenas, milhares de outras. Dependendo dos processos internos, ele pode ser visto agora ou pode nunca ser visto. Pode ficar meio ano, um mês ou um dia.



Para ser perceptível no bom sentido, um currículo não deve estar repleto de todas as cores do arco-íris ou gatos - deve ser compilado para uma vaga específica de uma empresa específica. Não inclua toda a experiência que você tem, concentre-se no que é necessário em uma determinada posição. Suponha que você seja um desenvolvedor back-end no Facebook e tenha trabalhado como engenheiro de dados, desenvolvedor front-end, webmaster e administrador de sistemas - então você provavelmente não deveria falar sobre administradores de sistemas e webmasters em seu currículo.



Fiz um currículo para cada empresa a que me inscrevi. Exceto nos casos em que enviei meu currículo "para a pilha" para praticar nas entrevistas.



Tiramos o irrelevante, enfatizamos os pontos fortes, toda a experiência adequada para a vaga.Não no sentido de me acertar no peito com o calcanhar: a equipe não fez nada, tudo era só eu. A tarefa é dizer que você é um jogador de equipe, que entende de negócios. Especialmente se você estiver se candidatando a uma posição de desenvolvedor de alto nível. Ele deve entender os processos de trabalho em equipe, como estabelecê-los, como eliminar gargalos - ou seja, gargalos onde a produtividade é prejudicada. Apresente tudo isso sob uma luz favorável, mas não invente, fale a verdade: mostre realizações adequadas, de preferência, se quantitativamente - todas as grandes empresas irão apreciar. Por exemplo, descreva os avanços técnicos da seguinte forma: o tempo gasto para passar nos testes em um ambiente de integração contínua foi reduzido em 30% e os lucros ou conversões aumentaram em N%. Conte-nos sobre as conquistas da equipe: onde você ajudou a estruturar o processo, quem e como contratou.



Basicamente, diga-nos que foi você quem assumiu a responsabilidade. Talvez você tenha até se enganado: não se deve escrever sobre erros no currículo, mas se perguntarem em entrevista, você pode dizer.



Uma boa dica é escrever seu currículo em uma, no máximo, 1,5 página. Os entrevistadores têm pouco tempo, e é bom que todas as informações sejam lidas por eles de uma vez.



Quando um currículo precisa ir da pilha para a pessoa que decide com quem fazer a ligação, a recomendação é quase um caminho garantido para o sucesso.Ela diferencia o currículo dos outros, caso contrário, entre dezenas de milhares de respostas, você pode simplesmente não ser notado estatisticamente. Portanto, se você tem conhecidos - entre em contato com eles. Via de regra, as pessoas encaminham facilmente seus currículos: por uma recomendação bem-sucedida, recebem bônus dentro da empresa. As recomendações não são algum tipo de tópico tabu ou tabu. Consegui Yandex, Facebook e até Toptal por meio de uma recomendação.



Depois que o currículo é aprovado, geralmente há outra triagem antes da entrevista de 4 etapas.



Triagem



Há uma triagem com um recrutador, às vezes técnica - depende da complexidade do processo. A primeira ligação será quase 100% com um recrutador. Ele avalia a adequação geral, aprende a história de vida, porque uma pessoa está procurando emprego, tenta filtrar o fluxo. Às vezes, alguém envia acidentalmente um currículo - a estranheza está presente nas contratações em massa.



Se a empresa estiver localizada em outra cidade, via de regra, você liga: fala um pouco sobre você, sobre desejos, ambições, pontos fortes e fracos. A conversa geralmente é conduzida por um recrutador. Se você não ficou em silêncio por 30 minutos, mas se apresentou normalmente, uma triagem técnica é prescrita.



Na triagem técnica, quase a mesma coisa acontece como mais na seção algorítmica, mas o tempo é dado menos: 40-60 minutos, 1-2 tarefas: geralmente online.



Este formato leva algum tempo para se acostumar. Há uma entrevista no quadro branco: você fica ao lado do quadro, desenha diagramas, tenta escrever código nele - não é muito conveniente, muitas pessoas reclamam. E online, de certa forma, é ainda pior (alguém pode ser melhor). Você se senta em frente a um computador - você não vê uma pessoa, e você diz - você não apenas escreve um código. Não quero ofender ninguém, mas neste momento muitas vezes surge um problema, especialmente para desenvolvedores que falam russo. Em nossa cultura, não é costume se gabar e conversar, nós “pegamos e fazemos”.



Certifique-se de dizer:ninguém lê pensamentos, mesmo se você for o desenvolvedor mais charmoso e experiente. A conversa também depende do contexto: o que está acontecendo no problema, o que você entende, quais detalhes, qual é o seu algoritmo. Você pode até escrever as etapas em um editor de texto e confirmar com o entrevistador se é isso que ele deseja ouvir. Muitos dirão simplesmente: sim, tudo bem, parece bom. Alguém ficará encantado: sim, era isso que eles esperavam. Ou seja, na maioria dos casos, você receberá feedback. Mas se você não está acostumado a vocalizar o processo, pode ser difícil.



A triagem geralmente consiste em diálogo e escrita de código muito semelhante ao Leetcode ou qualquer tarefa algorítmica. Na maioria das vezes, são do nível Fácil ou Médio: faz sentido, por exemplo, resolver problemas com amigos online, discutir.



Seções algorítmicas



Os próximos passos dependem da empresa. Não entrevistei o Google, Amazon ou Apple. Pelo que eu sei, todos eles têm processos bastante característicos que seguem um padrão, mas os detalhes são diferentes. Por exemplo, a Amazon possui Princípios de Liderança - um conjunto de regras que são recomendadas para serem aprendidas, pois também serão discutidas na entrevista. O Facebook não tem isso.



Existem várias seções algorítmicas: geralmente duas ou três. Na era pré-coronavírus, você é levado ao escritório, onde tudo acontece, se encontra, é colocado em uma sala de reunião e recebe café. Você resolve problemas algorítmicos: os mesmos que você vê no Leetcode. Alguém aconselhou o nível difícil - aliás, isso é opcional. Provavelmente, tarefas difíceis são encontradas no Aprendizado de Máquina ou back-ends carregados - pessoalmente, não encontrei nenhum disco rígido. Normalmente é o nível Médio: bastante complexo, você precisa ser capaz de lidar com eles. Mas se você nunca decidiu, provavelmente há uma chance de fazer isso, você apenas praticou e sabe pensar.



Cada seção tem 40 minutos de duração, geralmente uma tarefa mais um acompanhamento. Por exemplo, você precisa resolver um problema para classificar uma matriz: escreva um algoritmo de classificação. Desculpem os exemplos estúpidos: você pode resolver usando o tipo de bolha, dizer que é ineficiente, que você pode alterá-lo, obter eficiência no tempo ou na memória. Acontece que você precisa resolver dois pequenos problemas um após o outro.



Como regra, as seções são conduzidas por diferentes entrevistadores. Isso é feito de propósito, para objetividade. Você precisa dizer olá a todos, falar um pouco sobre você. Em seguida, começa a seção em si: você precisa decidir, pensar, falar, talvez cometer erros e refazer.



Uma entrevista é um processo estatisticamente ruidoso. 5 entrevistadores, objetividade, tenta quantificar o candidato o máximo possível - mas nem sempre dá certo, alguém pode não gostar de alguma coisa. Às vezes recusam não porque a pessoa não se encaixa, mas porque “o sinal não era forte o suficiente”. Contratar o desenvolvedor errado é pior para a empresa do que não contratar o certo.



Se você resolver 50 ou 100 problemas de níveis diferentes em categorias diferentes, as chances de passar em uma entrevista algorítmica aumentarão muito, há uma grande diferença entre 0 e 100 problemas resolvidos. Mas o dispositivo ainda pode dar azar. Aconselho que olhe para isso filosoficamente, a recusa pode acontecer em qualquer caso, nem sempre depende de nós como candidatos.



A codificação geralmente é combinada com a seção algorítmica. E há uma pequena diferença entre o back-end e o front-end no Facebook. Os mesmos algoritmos em árvores, gráficos ou relacionados a loops, com arrays - mas com especificações de front-end. Como regra, tudo está em JavaScript. A escolha do idioma é bastante livre. Quando entrevistei outra empresa, escrevi em C # - embora nunca o tivesse usado antes. Mas, uma vez que é orientado a objetos e semelhante ao Java, apenas esclareci no processo: isso é possível? E entao?



Claro, se você tem programado em Python toda sua vida, você não deve escrever em Java: linguagens diferentes, será difícil, você ficará confuso em construções, importações. Não será um sinal terrivelmente negativo, mas tornará a vida difícil.



E depois há entrevistas de design de sistema e comportamentais: deparei com apenas esses estágios.



Onde preparar



Devo dizer desde já que estudei apenas no Leetcode, tentei aprender essa forma de pensar, quando há um tempo e uma tarefa limitados, um conjunto de algoritmos que você opera com, por exemplo, busca binária, travessia de grafos ou outra coisa. Normalmente, as decisões são feitas desses blocos de decisão.







Seção arquitetônica: projeto do sistema



As seções de arquitetura são iguais às entrevistas de design do sistema . Acho que eles estão sempre presentes nas entrevistas e seu número depende do nível para o qual você está se candidatando. Teve um no Facebook, na segunda empresa, onde entrevistei em paralelo - 1 ou 2.



A seção está aberta, o problema não está colocado da mesma forma que nos problemas do algoritmo. Ao mesmo tempo, as habilidades pessoais também são importantes: a habilidade de falar, tomar uma decisão e projetar um sistema específico. Quando falamos em Design de Sistema, normalmente falamos sobre o design de algo muito carregado: você precisa fazer Twitter ou Instagram. Claro, você não pode criar um Twitter completo em 40 minutos.



Existem também tarefas específicas: fazer um formulário de entrada com o preenchimento automático. No caso do frontend, pode haver algo como: projetar um frontend para Yandex.Maps: como você estrutura o código, quais componentes serão, qual a subordinação dos componentes uns aos outros. Podemos falar sobre entrega de conteúdo para usuários, CDN.



Todas essas tarefas são muito gerais e pode facilmente levar uma hora para descrever um aspecto do sistema que está sendo projetado. A coisa mais importante a não fazer é entrar em detalhes antes de esboçar as opções e obter aprovação para o que deseja ouvir.Primeiro, você designa a latitude: este é um sistema desse tipo, em um alto nível ele pode consistir em dez componentes, desenhe um diagrama. Além disso, podemos dizer que há pouco tempo e nos oferecemos para aprofundar nos detalhes dependendo das preferências do entrevistador e do seu conhecimento. O conhecimento deve ser usado! Se você não entende como funciona o balanceamento de carga, mas sabe como funciona o back-end de pesquisa, é obviamente melhor falar sobre o back-end. Todos entendem que um único desenvolvedor não concluirá um projeto.



Em comparação com o design do produto, acho que no design do sistema há uma ênfase nos requisitos técnicos, na capacidade de operar com conceitos padrão: qual será a carga, que velocidade é necessária para que os discos rígidos façam o sistema funcionar. Aparentemente, o design do produto tem mais a ver com sua habilidade como engenheiro de chegar a um acordo com o proprietário do produto, designer, priorizar ideias e possivelmente conduzir experimentos. É mais sobre o componente comercial e a organização do trabalho. Eu não tive um design de produto, admito que você pode falar sobre o produto, valores, problemas - que normalmente é a área de responsabilidade dos gerentes de produto.



Onde preparar







   ,   behavioral-



Soft skills



Os “erros” nas entrevistas se devem ao fato de as pessoas não saberem falar - por mais bobo e ingênuo que pareça. Na minha experiência como entrevistador aconteceu assim: ligo, apresento-me, procuro dar um tom normal para a conversa e consigo conversar um pouco, e obtenho respostas monossilábicas.



- Conte-nos sobre você?

- Bem, sou um programador.

- O que você está fazendo?

- Fazer um site.



Talvez este não seja o erro mais comum, mas para o entrevistador o mais desagradável, porque ele é forçado a arrancar respostas às perguntas. Às vezes, não fica claro se uma pessoa deseja ou não conseguir um emprego.



Portanto, você precisa ser capaz de comunicar de forma clara e rápida os aspectos mais legais do histórico e da experiência.Para praticar, você pode se gravar em seu telefone, de preferência com vídeo. Em seguida, ouça e repita após alguns dias. Se você quiser conversar, esse método é ótimo.



Comecei a fazer isso há muito tempo, quando preparei uma apresentação pela primeira vez. Tive que contar tudo oralmente e escrevi o texto da minha fala em um documento. O discurso escrito não correspondia em absoluto ao oral, resultou ridículo e desajeitado. Então me sentei com o telefone - talvez com um ditafone, ou em frente ao espelho - e comecei a ensaiar: pela décima vez, a fala ficou coerente e compreensível.





Estou falando sobre um analisador HTML escrito em um avião a caminho de um local externo.



Outra dica: via de regra, o entrevistador não sabe nada sobre você. Freqüentemente, ele olha o currículo antes da entrevista em 3 minutos, fica surpreso com cerca de 4 termos, o nome da pessoa na melhor das hipóteses. Ou seja, como candidato, você pode se concentrar em certos aspectos de sua história para parecer o mais lucrativo possível. De certa forma, isso é manipulação, mas bom. Você está se vendendo: mas não está tentando dizer o que não era. Você acabou de ter um projeto interessante não no último, mas no penúltimo emprego, e então você pode falar sobre ele. O entrevistador certamente terá interesse e lembrará dessa história, e não de que você está corrigindo bugs no local atual, pois o projeto está em fase de suporte. Essa abordagem pode ser usada para seu próprio benefício e a conversa fica mais animada.



língua Inglesa



Se estiver fazendo uma entrevista em uma empresa estrangeira, você deve gravar uma história de gravador sobre você e seus projetos em inglês. Se você é o programador mais legal do mundo, mas não sabe falar, nunca vai conseguir uma entrevista, com certeza.



Suponho que você possa conhecer um engenheiro russo que se oferecerá, à moda antiga, para se comunicar em russo. Mas mesmo assim, em algum momento, a ignorância da linguagem pode parar. Existem muitas pessoas que falam russo no Facebook, mas não é óbvio para elas quem fala russo. Às vezes, as políticas da empresa proíbem entrevistas em outros idiomas além do inglês. Então a comunicação em russo pode ser, no máximo, na parte informal.



Estudo inglês há 10 anos e sempre achei que tinha um nível decente, principalmente a linguagem técnica: leio manuais como todo mundo. Mas em 2016 fui para Nova York e percebi que não entendia nada. Eu simplesmente não ouço o que eles dizem para mim - isso me chocou. É difícil dizer qual era o nível, provavelmente B1, intermediário superior. Mas eu praticamente não entendi os alto-falantes e me perdi em uma conversa rica.



Eu  deduzi os critérios para mim, pelo qual você pode entender que o nível é adequado para passar na entrevista. Se em uma conferência técnica você entender 50–70% do que o palestrante está dizendo e puder falar sobre seu projeto em 1–2 minutos de uma forma que será compreendido - isso deve ser o suficiente. Os falantes costumam ter uma linguagem muito inteligível, sem gírias fortes e sons engolidos. Os certificados não são exigidos para a entrevista, mas serão necessários para se mudar para o Reino Unido. Nível formal, B1 ou B2 - se você aprender do zero, em alguns cursos você pode chegar a esse nível em um ano.



As habilidades de comunicação em geral são importantes - se você fala inglês perfeitamente, mas olhar para baixo e parecer o mais inseguro possível não funcionará. Admito que o nível intermediário da linguagem é suficiente para alguém, quando você pode discutir assuntos técnicos e se perder em conversas informais. Mas nunca há muita linguagem, disso tenho certeza.



Como preparar



Não posso dizer que sou um candidato ideal em termos de soft skills. Mas o que é importante aqui: a capacidade de trabalhar em equipe . Eles procuram principalmente jogadores de equipe que possam argumentar e entender o ponto de vista dos outros: ninguém precisa de solitários. Um bom líder se esforça para formar uma equipe de modo que tenha pessoas com diferentes qualidades, e essas simplesmente tenham que ser capazes de negociar. Uma grande empresa é sempre uma equipe.



Além disso, seria bom descobrir o que são habilidades pessoais e  o que são... Provavelmente, sendo um líder de equipe, eu tinha que conversar constantemente com todos, planejar, assumir responsabilidades: as habilidades desenvolvidas naturalmente. Você toma uma decisão técnica, outro líder de equipe vem: você não deve ofendê-lo, e defender sua decisão e manter um diálogo construtivo. Assim, parece-me que as competências acabam por surgir nas pessoas que, em condições adequadas, chegam à posição de seniores. Não quando você está sozinho em um projeto, e eles o chamam de sênior simplesmente porque não há outros desenvolvedores.



Resultado



Devido à pandemia, o processo de entrevista está mudando, o formato de trabalho também. Presume-se que os controles remotos logo aparecerão em todo o mundo. Agora as empresas estão tentando contratar nos locais atuais, por exemplo, nos Estados Unidos - de todo o país, pelo menos. É difícil prever se as pessoas da Rússia começarão a contratar pessoas que desejam permanecer na Rússia. Você não deve contar com um remout agora - talvez por vários anos.



O processo de realocação não parou - e isso é incrível para mim. Com a condição de que sejam muitos os fatores limitantes, a contratação continua. Esta é uma boa notícia para quem quer se mudar. Um de meus amigos mudou-se para a Escócia com sua família bem no meio de todos os eventos, apenas serviu de quarentena na chegada.



Não há pessoas suficientes em posições e nenhum coronavírus afetou isso. Talvez, em certo sentido, isso seja ruim: as empresas crescem como um tumor cancerígeno, tentando preencher tudo com elas mesmas. Mas para nós, como desenvolvedores, isso é bom: o processo não foi a lugar nenhum. As pessoas ainda são necessárias, os projetos são lançados, há muita ambição, o dinheiro é muito, é preciso gastar e o recrutamento continua funcionando.



O que ler adicionalmente:





Reunimos todos os links úteis junto com os ouvintes do webinar. Se você tiver alguma adição - envie, nós adicionaremos à lista :)



Em nosso g-mate, pelo menos 30-50% estão prontos para considerar um controle remoto e a relocação é a segunda mais popular entre os locais. Durante a pandemia, tanto na Rússia quanto no exterior, o recrutamento acelerou 3 vezes. Inscreva-se no bot para obter os melhores empregos em tecnologia no Telegram.



All Articles