Experiência de entrevista do Google AE
Google LLC é uma empresa de tecnologia multinacional americana que se concentra em inteligência artificial, tecnologia de mecanismo de pesquisa, publicidade on-line, computação em nuvem, software de computador, computação quântica, comércio eletrônico e eletrônicos de consumo. Tem sido referida como a “empresa mais poderosa do mundo” e uma das marcas mais valiosas do mundo devido ao seu domínio de mercado, coleta de dados e vantagens tecnológicas na área de inteligência artificial. É considerada uma das cinco grandes empresas americanas de tecnologia da informação, ao lado de Amazon, Apple, Meta e Microsoft.
- Nível: Médio a Difícil
- Processo de entrevista e recrutamento: Médio
O recrutador do Google entrou em contato comigo no linkedIn para uma entrevista para o cargo de engenheiro de aplicativos.
Sobre a função : Esta função geralmente é focada no desenvolvimento de aplicativos que são usados pelos clientes internos (funcionários do google). Para esta função, o foco é mais no design do sistema e um pouco menos nas estruturas de dados e algoritmos. Assim, o DSA solicitado é geralmente de nível médio.
Estrutura da entrevista/rodadas
1. Contato
2. Rodada de codificação 1
3. Rodada de codificação 2
4. Rodada de design do sistema (depende do resultado da Rodada de codificação 1+2)
Estendendo a mão
Os recrutadores do Google me procuraram no linkedIn. Assim, torna-se muito importante manter seu perfil no linkedIn atualizado com seus projetos, habilidades, experiências e conquistas.
Rodada de Codificação 1
Tempo -: 45 min
Plataforma -: Google Doc
Esta rodada foi totalmente baseada em estruturas de dados e algoritmos . Foi-me perguntado 1 problema de nível médio.
Problema:
Este problema foi baseado na Programação Dinâmica Circular
Em primeiro lugar, discuti com eles diferentes casos de teste e depois continuei contando a eles a abordagem de força bruta, eles perguntaram a complexidade de tempo e espaço do problema e depois me disseram para otimizá-lo. Em seguida, discuti a abordagem otimizada com eles e a implementei.
Rodada de Codificação 2
Tempo -: 45 min
Plataforma -: Google Doc
Esta rodada foi realizada no mesmo dia da Rodada de Codificação 1 . Esta rodada também foi baseada em estruturas de dados e algoritmos. 1 problema de nível médio foi discutido, com suas abordagens otimizadas e complexidades de tempo e espaço.
Problema:
1) Era um problema leetcode de nível médio baseado em mapa de string + hash.
sol — O problema foi modificado em diferentes estágios adicionando mais casos de teste. E cada abordagem que eu dizia a eles, me pediam para implementá-la e a complexidade de tempo e espaço era discutida toda vez que eu mudava minha abordagem.
NOTA : As rodadas técnicas podem ser facilmente realizadas praticando problemas de DSA no leetcode e realizando concursos regularmente. Os tópicos de onde as perguntas podem surgir são: programação dinâmica, Árvores, Recursão, Lista encadeada, String, Arrays etc. O nível das perguntas é geralmente médio para o cargo de engenheiro de aplicação.
A determinação da complexidade do tempo e do espaço é altamente importante, juntamente com a identificação de casos extremos, ajuste da estrutura de dados correta, aplicação do algoritmo correto, pensamento em voz alta e explicação adequada.
Rodada de Projeto de Sistema
Tempo -: 45 min + 15 min (Googlyness)
Plataforma -: Google Doc
Esta rodada é conduzida apenas quando o resultado da rodada de codificação 1 + rodada de codificação 2 é promissor. Minha rodada de design do sistema foi agendada 2 dias após minhas rodadas de codificação.
Esta rodada foi baseada no projeto de sistema de alto nível. O foco principal desta rodada foi testar a abordagem para projetar um bom sistema escalável, API de design e banco de dados.
Recebi um sistema para projetar, onde eu precisava construir um site de compras de guloseimas online para os funcionários do Google.
Discuti as seguintes coisas para o design do aplicativo.
1. Diferentes servidores para diferentes regiões.
2. Balanceamento de carga para servidores.
3. Dimensionamento horizontal de todo o aplicativo.
4. Tipo de banco de dados (sql vs NoSql) que pode ser usado e consulta rápida por meio de indexação.
5. Cacheando os dados para usuários já cadastrados.
6. Possíveis microsserviços que podem ser utilizados na aplicação.
7. Terceiro para gerenciar o gateway de pagamento (um dos possíveis microsserviços).
Enquanto isso, continuei discutindo,
a) O desenho da base de dados. O número de tabelas necessárias, os tipos de linhas e colunas que podem ser usadas para consultar os dados com eficiência.
b) O desenho da Api . Ou seja, como os endpoints da API serão com o tipo de solicitação nele.
Expliquei a arquitetura desenhando-a grosseiramente no google doc. O que tornou mais fácil para mim explicar.
Esta rodada foi baseada principalmente na direção que você toma. A pergunta será feita a você com base em suas abordagens e ideias.
Os entrevistadores também dão dicas necessárias e contam os pontos negativos e positivos de uma determinada abordagem.
Fonte para estudar:https://youtube.com/playlist?list=PLMCXHnjXnTnvo6alSjVkgxV-VH6EPyvoX|| Educative.io || GFG
Googlyness: Nesta parte, são discutidas questões baseadas em projeto de equipe, trabalho em equipe e gerenciamento de tempo. A discussão sobre esses tópicos dura cerca de 15 minutos.
Concluir
Recebi uma resposta positiva do entrevistador e também do formulário de feedback. Mas a contratação foi interrompida devido a alguns motivos internos.
Para qualquer dúvida , sinta-se à vontade para entrar em contato comigo no LinkedIn: https://www.linkedin.com/in/riti-nema-707b1719b/
Tudo de bom. Codificação feliz!!