Engenheiro Sênior em busca de trabalho. Como passei por 15 entrevistas técnicas e o que penso sobre isso

A continuação da história de como fui entrevistado em diferentes empresas para diferentes posições. Desta vez, fecharemos algumas perguntas e comentários sobre a primeira parte e continuaremos a falar sobre tarefas de teste e entrevistas técnicas.

Para minha surpresa, o artigo anterior sobre entrevistas com recrutadores e RH despertou um interesse inesperado: mais de 100.000 visualizações de todas as fontes. Recebi um monte de feedback positivo no PM, eles me escreveram por ex-colegas que eu vi pela última vez há cinco anos; heroínas de algumas histórias; um cara que vendi uma unidade de sistema através do OLX há algumas semanas (análogo de Slando, - aprox. por.) ; o baterista com quem tocamos metal na garagem no ano passado e, curiosamente, alguns recrutadores que me perguntaram o que eu pensava sobre certos aspectos das entrevistas e contratações. Por algum motivo, 250 pessoas me adicionaram no LinkedIn :).

Antes de começar a trabalhar, responderei às perguntas mais populares, mensagens e comentários pessoais.

Como organizar um salário para uma entrevista


Muitos comentários relacionados ao dinheiro. Eu deliberadamente não prestei muita atenção a isso, porque a licitação é uma questão separada, mas os comentaristas ainda a abordaram e apontaram as deficiências da minha estratégia - por exemplo, para nomear imediatamente o preço. Aqui estão dois bons artigos que abordam esse problema de uma maneira muito mais detalhada e profissional:


Eu recomendo a leitura antes de procurar trabalho.

Algumas reflexões sobre o recrutamento


De maneira alguma eu dou conselhos aos recrutadores sobre como fazer seu trabalho. Não sou recrutador profissional e não sei como funciona a cozinha interna. Quando eu precisava procurar funcionários (não apenas para conduzir entrevistas técnicas, ou seja, pesquisar e contratar - um ciclo completo), essas eram posições juniores, respectivamente, não tive dificuldades especiais.

Em mensagens privadas, eles me perguntaram como fazer a primeira mensagem sobre a oferta funcionar, para que parecesse atraente e interessasse ao especialista, como chamar a atenção para mim?

Parece-me que, infelizmente, nada depende do recrutador. Tudo o que um recrutador pode fazer é encontrar o máximo de contatos de especialistas com o perfil necessário possível e enviar a eles uma oferta a todos eles. Depois disso, você precisa esperar e esperar que um deles esteja hesitante ou em uma busca ativa de emprego. Ou seja, há 20% do trabalho com a base e 80% de sorte. A rede tem muitos materiais sobre como criar corretamente vagas, e assim por diante, mas quanto a mim, o fator principal é precisamente o desejo do candidato de mudar de emprego.

Recrutamento é a venda de uma vaga a um candidato. Quanto mais cedo você entender isso e começar a aumentar suas habilidades de vendedor, melhor. Ah, eu disse que não vou dar conselhos :)

Também estou convencido de que, durante a procura de emprego, os candidatos precisam aceitar todas as vagas mais ou menos adequadas, porque, de fato, descobrir do que se trata a vaga só é possível durante uma conversa com especialistas técnicos. Nas minhas pesquisas, praticamente não prestei atenção ao que estava escrito na vaga e descobri os detalhes necessários na fase de uma entrevista técnica. Acredito que esse método seja o mais correto, porque as chances de encontrar um projeto interessante que possa se esconder atrás de uma descrição cinza padrão aumentam bastante. Minha experiência confirma inequivocamente essa tese. Nem uma vez na vaga foi escrito especificamente o que precisaria ser feito. Somente frases gerais como "codificam o código, testam os testes, implantam a implantação".

Envolver-se em uma empresa ou projeto


Em nossas realidades - definitivamente para um projeto.

Como escolher um título


Posicionei-me como candidato no nível de Engenheiro de Software Sênior e superior - Líder de Equipe / Tecnologia, Engenheiro Principal, Arquiteto de Software, Gerente de Projeto, Gerente de Pessoas / Grupo e assim por diante. É isso que o "acima" significa "+" no "Sênior +".

Parece-me que o título não significa nada. A única coisa importante é o que você realmente fará, e isso só pode ser descoberto na pessoa com quem você trabalhará.

Então, senhoras e senhores, vamos para as entrevistas técnicas.

Estágio dois. Entrevistas técnicas


Nesta parte, haverá mais da minha experiência subjetiva e filosofia do que conselhos. Há muitas informações sobre o que é solicitado em entrevistas técnicas e como se preparar para elas na Internet.

isenção de responsabilidade: o autor não é uma olimpíada de turboengenharia, portanto, algumas decisões ou comentários podem causar um sorriso, uma dor no traseiro, o desejo de apontar para o autor seus erros ou baixas qualificações. Tenho o prazer de ouvir a construção.

No total, passei por 15 entrevistas técnicas, o que, para mim, não é tanto. Eu poderia ter passado por muito mais, mas, em média, esperava uma semana desde o primeiro contato com um recrutador até uma conversa com um especialista técnico. Isso apesar do fato de eu praticamente não ter limites de tempo. Somente uma vez agendei uma entrevista para o horário para o qual já havia agendado outra entrevista. Também observo que todas as empresas ou recrutadores vieram a mim. Não enviei currículos para nenhuma empresa primeiro. Esta é a questão de que não é o senhor que procura trabalho, mas o trabalho - o senhor.

Tarefas de teste


Muitas empresas realizam testes antes de iniciar uma conversa para eliminar candidatos irrelevantes. Apesar de muitos não gostarem de investir seu tempo em tarefas de teste, especialmente se forem bastante volumosas, ainda acho que essa é uma boa prática. Vamos considerar o que podem ser as tarefas de teste.

“Faça um projeto do zero (talvez usando uma tecnologia específica) e publique no GitHub” - quanto a mim, a pior opção. Você pode gastar muito tempo em um clichê, na infraestrutura em torno da solução, e o entrevistador, em regra, estará interessado em alguns pequenos detalhes de implementação estabelecidos nas condições da tarefa. Bem, se você tem em mãos, por exemplo, modelos de projeto e pode levantar o servidor em 5 minutos e baixar rapidamente o que precisa. Caso contrário, você deve se lembrar de tudo e começar do zero. Também é ruim se a tarefa tiver uma condição para usar dependências externas, por exemplo, um banco de dados não incorporado.
Engenheiro de DevOps de posição. Eles me enviaram uma tarefa para fazer uma configuração do Vagrant de várias máquinas virtuais, entre as quais deveria haver servidores Web com estática, um balanceador para eles e Jenkins. Tudo isso teve que ser instalado e configurado usando o Chef. Agora imagine: nunca usei o Vagrant, Chef e não configurei os servidores da web necessários na tarefa. Entendo como tudo funciona, lidei com ferramentas semelhantes, mas nunca as usei especificamente.

Eu tive que sentar durante a noite, consertar tudo, coletar um monte de ancinhos e, eventualmente, concluir a tarefa. A principal dificuldade foi que eu tenho um MacBook Pro antigo do 15º ano, que fisicamente não teve tempo de reiniciar os contêineres e também que não tinha experiência com o Vagrant.

A essência da tarefa - descobrir como instalar o que - provavelmente me levou meia hora. O resto do tempo (7 com um intervalo de horas) que gastei na instalação de todas as ferramentas, reinicia - reinicializa, cutucando as configurações na tentativa de entender por que não funciona e assim por diante.
Provavelmente faria a mesma tarefa no Docker Compose em uma hora, talvez até menos. Você não pode limitar o candidato a ferramentas? Parece-me que é possível.

Essa missão foi útil para mim? Definitivamente sim! Agora vou saber que do Vagrant e Chef você precisa ficar longe :)

Tempo gasto - 8 horas .
Infelizmente, não tenho mais histórias sobre esse tipo de tarefa, porque não havia muitas de teste em geral :(

"Aqui está um link para o site com os testes - passe por eles" é uma opção muito legal. Qual é o objetivo? Existem SaaS que permitem configurar um conjunto de questões práticas e teóricas e, para a solução, eles fornecem REPL e um editor de código diretamente no navegador, além de oferecer a oportunidade de executar testes de verificação. Depois, você apenas realiza tarefas, corrige o existente ou escreve seu próprio código, executa-o e vê os resultados. Os testes em si estão ocultos, você vê apenas o resultado (aprovado / reprovado) e uma breve descrição do teste, que ao mesmo tempo pode ser uma dica. Por que eu mais gosto dessa opção? Porque existe um critério inequívoco para a qualidade da tarefa, e o candidato sabe exatamente quantos pontos ele obteve, se suas decisões funcionam e assim por diante. Pessoalmente, eu estava interessado em realizar essas tarefas. A única coisa que não vejo em questões teóricas como "o que acontecerá se esse código for executado" - elas são facilmente do Google.
Posição de Engenheiro de Software Ruby. Eles me enviam um link para o site TestDome , é claro, para um teste personalizado. Eu clico, entrei nos testes reais. Eles me dão 2,5 horas para concluir todo o conjunto, de 5 a 20 minutos para cada pergunta. Na verdade, eu gostei muito, não tenho passado por essas coisas há muito tempo. Gostei especialmente da abordagem TDD: codifiquei, lancei, olhei o que caiu, você codifica mais. Passou com muito prazer.

As tarefas em si eram bastante simples: corrigir o código (Ruby / JS / CSS / HTML), escrever validadores (Ruby), implementar estruturas de dados (Ruby), nada de especial. No entanto, o fato de você poder verificar imediatamente se a solução funciona ajuda muito.

Concluí a tarefa com 93/100 pontos em apenas uma hora. Infelizmente, esse resultado não me ajudou em nada no futuro.

O TDD ajuda na decisão, sem necessidade de gastar tempo aumentando a infraestrutura, reproduzindo diretamente no navegador - enfim, muito legal. Por isso, foi possível esperar um mês - no final, recebi minha porção de dopamina (fiz um excelente trabalho) e adrenalina (o tempo está passando, o tempo está se esgotando!).

Tempo gasto - 1 hora.
Além disso, a grande vantagem desse tipo de tarefa é que sua verificação é automatizada. Todos sabemos como os entrevistadores adoram verificar as tarefas, e aqui a máquina faz tudo por eles - é muito conveniente, pelo menos que você não precise fazer o download do código e coletá-lo. Talvez eu use esse método ao contratar no futuro.

"Aqui está o repositório, há uma tarefa, envie uma solicitação de recebimento com uma solução" - eu não encontrei essa opção, mas meus colegas a usaram. Eu realmente não gosto dele, porque você pode ver como outros candidatos executaram a tarefa (se eles foram).

As desvantagens deste método são óbvias: o testador precisa fazer o download do código, coletar, observar o que está lá, é longo e chato. Claro, você pode ver superficialmente o código no navegador, mas por que então precisava de uma tarefa? Vamos escrever no pseudo-código então.

“Aqui está o repositório, existe o código, refatore-o o máximo que puder” - uma variação do anterior. Isso é melhor, porque aqui, desde o início, é criada uma estrutura na qual trabalhar. As desvantagens são as mesmas: não está claro quando parar. Como disse Egor Bugaenko, qualquer programa contém um número infinito de erros e também pode ser corrigido indefinidamente.

Os autores da tarefa provavelmente tinham algo em mente quando a criaram, provavelmente não saberemos qual era a principal coisa para eles sozinhos. Se a tarefa tivesse um critério claro, seria legal. Por exemplo, "existe um código que produz esse resultado na velocidade de tal hardware, refatora-o para funcionar duas vezes mais rápido". É difícil trabalhar sem critérios. Na vida real, no trabalho real, sempre temos uma estrutura e estamos procurando a solução ideal, guiada por essa estrutura e senso comum. O principal trabalho do desenvolvedor é apenas sentir esse equilíbrio e encontrar a solução apropriada.

Para meu grande pesar, ninguém mais deu tarefas de teste, então minha seleção é muito pequena. A menos que eu me lembre dos testes que fiz há muitos anos. Todos eles eram do primeiro tipo - era necessário fazer um projeto. Curiosamente, eu as executei naqueles dias em que o GitHub ainda não era tão popular e era necessário enviar a solução no arquivo zip por correio :)

Minhas recomendações para itens de teste?

  1. Não gosto disso - não gosto. Se a tarefa, por exemplo, é concluir o site inteiro ou escrever um texto - bem, coloque-o na casa de banho. As atribuições devem ser curtas e focadas na criação de contexto para a discussão a seguir, e não apenas um teste de como você pode executar andaimes.
  2. Se a tarefa for do primeiro tipo - inclua no repositório leia-me, onde descreve detalhadamente as instruções para iniciar, uma breve anotação sobre por que você tomou essa decisão, quais são suas deficiências, o que você gostou ou não gostou e como resolveria a tarefa. você teve mais tempo e assim por diante. Não sei se isso realmente ajuda, mas como entrevistador, definitivamente mencionaria essa documentação da decisão.
  3. Escreva normalmente, mas você não deve gastar muito tempo lambendo as peças. Quanto a mim, basta listar no leia-me tudo o que você melhoraria se fosse um código de batalha.
  4. Lembre-se de que perguntas você pode ter sobre a implementação e leia a documentação adicional sobre a API que você usou. Suponha que eu não trabalhe com simultaneidade há muito tempo. Não pratico isso há muito tempo; portanto, após a decisão, rapidamente passei por todos os tópicos relacionados, lembrei-me de todas as tarefas típicas e estava pronto para a conversa.

Bem, teste um, espero que você tenha concluído com êxito, passado essas informações ao recrutador e, após um tempo indeterminado, você será convidado a falar pessoalmente.

Entrevista técnica. Introdução


Para começar, agora eles raramente são convidados para o escritório para entrevistas. Fui chamado ao escritório apenas várias vezes - para uma entrevista nos cargos de arquiteto de soluções, líder técnico e uma vez - para uma posição gerencial. Todas as outras entrevistas foram realizadas via Skype, Zoom, Hangouts. Como na entrevista anterior com o recrutador, as recomendações são as mesmas - uma boa câmera, um bom fone de ouvido, boa internet. Para isso, também adiciono a condição de atrapalhar a tela. Portanto, verifique se você não possui projetos de trabalho abertos (se isso for importante) e outras coisas pessoais que você não precisa mostrar às pessoas nesse sentido. Mantenha à mão um navegador limpo, sem abas, e o REPL para codificar apenas por precaução (IDE ou repl.it ).

De todos os métodos de comunicação, gosto mais do Zoom. Na verdade, era usado com mais frequência.
Uma dica importante sobre a comunicação adequada nos grupos de notícias: adquira o hábito de não falar ou digitar no teclado quando outra pessoa estiver falando, e falar no fone de ouvido, e não, por exemplo, através de um microfone de laptop externo e alto-falantes externos.

Por que isso é importante? Na maioria das vezes, duas pessoas conversam com você, respectivamente, elas não usam o fone de ouvido. Quando você fala, do lado deles, o software inclui um cortador de ruído que impede que o efeito de feedback apareça (fundo, apito, eco). Quando o cancelador de ruído é ativado, o microfone praticamente não capta nada; portanto, você não ouvirá o que eles dizem.

Quando você digita no teclado, ele cria ruído transmitido para o outro lado e também inclui redução de ruído. Como resultado disso, as frases são interrompidas e a impressão de uma conexão ruim é criada. Portanto, você deve sempre esperar até que as pessoas terminem a conversa. Caso contrário, você não ouvirá o que eles querem dizer (exceto quando os interlocutores também usam o garntiru). Curiosamente, muitas pessoas não sabem sobre esses mecanismos. Também é útil silenciar o microfone enquanto você está falando, para que nenhum som da sua sala penetre nas pessoas. Fui criado por anos de trabalho em uma empresa onde todos conhecem essas regras, então tudo isso é óbvio para mim, mas já vi muitas situações em que as pessoas não seguiram essas regras básicas e pecaram na Internet ruim.
Se estiver tudo bem, os pings foram alternados, a conversa começará. Muitas vezes, os próprios entrevistadores propõem um plano de conversação. Acontece que eles não têm um plano, mas pelo menos um tópico sempre será relevante: "Conte-nos sobre você e sua experiência" .

Antes da entrevista, repasse a vaga, preste atenção aos requisitos que se aplicam ao candidato e prepare um discurso. Passei por entrevistas no Tech Lead, DevOps / SRE, Ruby / Java Software Engineer e, em cada caso, contei coisas diferentes que acho que seriam de maior interesse para o entrevistador. Tente não entrar em detalhes, mas forneça as informações que criarão um vetor para uma discussão mais aprofundada. Você não deve falar em detalhes sobre o que fez 5 anos atrás (a não ser, é claro, que isso não fosse algo extraordinário).

Eu disse, por exemplo, o seguinte: “Por 8 anos, trabalhei em um escritório corporativo, principalmente com Java. Depois fui para uma startup, lá estava envolvido em infraestrutura. Nos últimos dois anos eu tenho escrito principalmente no Rails. ” É isso aí, os entrevistadores têm informações suficientes e vão relaxar a conversa na veia que lhes interessa.

E agora um fato inesperado.

Ninguém lê o seu currículo


Honestamente, isso acabou sendo uma grande descoberta para mim. Bem, os recrutadores não leem o perfil no LinkedIn, pois ele pode não ser atualizado. O RH pode visualizar os CVs na diagonal e destacar o principal. Mas as pessoas que conduzem uma entrevista técnica certamente não lerão seu currículo. Eu enfatizo que não sou eu que senti que as pessoas pelo menos com um olho olhavam para o que eu escrevi lá. Eu suspeito que, em regra, eles descobriram que precisavam realizar uma entrevista técnica um dia antes da entrevista real e decidiram ler o CV 5 minutos antes da chamada, e já estaria de alguma forma lá.
: « , ». , ( , ). , , .

, .

, , 10 . CV, , , .

CV , . , , .
E novamente expressarei meu descontentamento com essa atitude. Eu e você, se você já é um tomateiro experiente, somos especialistas de um nível relativamente sério em minha área (lembro que tenho essa calúnia e difamação). Não existem muitas pessoas como nós no mercado; portanto, mostre respeito e familiarize-se com o que fiz. Eu li sobre sua empresa, projeto, cliente. Espero ser tratado como pessoa. Por que o oposto está acontecendo?

Ninguém precisa de você


Mas isso me incomoda mais. Em 80% dos casos, lidei com introvertidos zangados, sonolentos e cansados ​​que claramente não estavam interessados ​​em contratar ninguém. Eles eram pessoas tecnicamente competentes e bons especialistas, mas, por algum motivo, não tinham o desejo de contratar um colega, não tinham o desejo de contratar um bom engenheiro para ajudá-los.

Estou convencido de que eram pessoas com quem simplesmente penduravam a obrigação de conduzir entrevistas. Várias vezes eles me disseram que a pessoa certa estava de férias, ou não tinha tempo para chegar, ou estava ocupada, ou qualquer outra coisa. Eles já têm muitas coisas para fazer, problemas no prod, não temos tempo para correr, nos reunimos com o cliente e, novamente, o próximo candidato se meteu em problemas, o que devo fazer com ele, não é? O problema decorre disso: os entrevistadores não o consideram a pessoa com quem eles precisam trabalhar, mas simplesmente tentam avaliar se você é normal ou não do ponto de vista deles. A situação era bastante frequente quando "oh Timlid está ocupado agora, então outra pessoa estará entrevistando".

Eu tive apenas algumas conversas com os engenheiros, o que mostrou que sim, eles realmente precisam de pessoas, querem contratar um bom especialista, têm um plano para mim e assim por diante. E assim passamos ao próximo parágrafo.

Você não conversará com seu futuro chefe ou líder de equipe


Isso é uma consequência do anterior. Estou profundamente convencido de que você deve falar com aqueles a quem obedecerá, formal ou informalmente. Todas as organizações têm algum tipo de hierarquia, seja uma equipe Scrum ou uma empresa sangrenta. Em todos os lugares há uma pessoa que cuidará de você (pelo menos no início).

Infelizmente, você não pode fazer nada a respeito. Yegor Bugaenko em seu post "Por que não falo com os recrutadores do Google" descreveu muito bem essa situação. Se você exigir uma conversa com seu futuro chefe, simplesmente não terá nenhuma entrevista.

Parece-me que agora esse é um dos maiores problemas de contratação conosco. Talvez isso seja ditado pelas especificidades dos projetos - terceirização, onde as pessoas fazem algo no fluxo. Talvez eu não conheça a cultura geralmente pobre da comunicação e uma mentalidade misantrópica.
Os blogs em inglês costumam escrever que a contratação é uma das principais áreas vitais para a construção de uma empresa de sucesso. Acho que nossas empresas precisarão de muito tempo para chegar a isso e formar a cultura certa. Enquanto isso, os clientes precisam terceirizar isso.
. , CTO CEO. , . , , . , .
, , (, ).
Até agora, tudo, muitos materiais e pensamentos, Longrid saiu novamente, não importa como eu tentasse. Na próxima parte, continuaremos a considerar o tópico e passar para questões e técnicas específicas usadas em entrevistas técnicas.

Source: https://habr.com/ru/post/pt434864/


All Articles