Entrevistas para vaga de engenheiro de software
Após participar de alguns processos seletivos, corrigir vários testes de candidatos, participar de dezenas de entrevistas e conhecer diversas pessoas, perfis e histórias acredito que há algumas dicas que podem ajudar quem deseja conquistar a tão sonhada vaga em uma startup como a ContaAzul. As minhas experiências foram principalmente para vagas de desenvolvimento, que englobam front-end, backend e devops. Cada vaga é sempre uma situação nova, mas sempre há aquela dica ou outra que pode servir de insumo na hora de se preparar para as entrevistas. Em empresas como a ContaAzul, assim como o modelo de negócio e cultura são baseados nas startups do vale do silício, também é inspirado de lá a forma de recrutar e contratar pessoas, o que consiste em quais etapas são realizadas, os tipos de testes e também as perguntas feitas em cada uma das entrevistas. Um dos principais guias de referência utilizado é o livro Who, que resumidamente explica métodos para encontrar os melhores profissionais para uma determinada vaga. Mesmo sendo um livro focado para quem contrata, pode ajudar também quem está se aplicando para uma vaga, pois vai lhe mostrar as principais perguntas que os recrutadores buscam responder na hora de entrevistar um candidato.
Considerando as exceções, os processos que participei geralmente foram compostos pelas seguintes etapas:
1) Análise de Currículo
Para quem deseja trabalhar em uma renomada startup, não há muito mistério nesta etapa. Há vários artigos na internet sobre como escrever um currículo atrativo e com conteúdo relevante. Se for o caso, ainda há empresas, como a Top Resume, especializadas em construir currículos que passariam na maioria dos processos de contratação. A Top Resume, inclusive oferece uma primeira avaliação gratuita no qual eles dão vários feedbacks sobre o seu currículo. Além do CV, acredito que é importante manter um perfil completo e atualizado no LinkedIn, pois é uma maneira rápida e fácil de consultar informações como experiência e graduação, contatos e recomendações. Inclusive em diversos casos onde analisei currículos, selecionei perfis que foram exportados do LinkedIn, pois tinham todas as informações relevantes para analisar o candidato. Ter um perfil ativo no github, blog ou algum outro tipo de contribuição conta muitos pontos nesta etapa. Porém, não necessariamente isto será um freepass para etapas seguintes, ou seja, ajuda, mas não garante. É importante que estas informações adicionais também estejam no currículo ou no LinkedIn. Ainda falando de CV, detalhes sempre são importantes, como informações de contato, email, SkypeId e versão do currículo em PDF. A maioria dos processos ocorrem em ferramentas como o Lever ou RecruiterBox, então enviar currículos por emails pode até ajudar, mas o que vale mesmo é a partir do momento que você se cadastra na vaga do site de carreiras.
2) Teste prático
Tanto a etapa do teste prático quanto a screening são intercaláveis, mas geralmente a ordem não importa muito. O teste prático é como uma prova do Masterchef, mas sem câmeras ou holofotes. Porém os critérios de avaliação são rígidos e por isso os detalhes contam muito. No teste prático há geralmente um texto com um problema a ser resolvido, exemplos do que o usuário informará e quais os resultados esperados. Ou seja, é esperado que a sua aplicação se comporte da mesma forma que os exemplos descritos no desafio. Se você tiver dúvidas ou o tempo não for o suficiente, não hesite em mandar um email perguntado ou pedindo para estender o prazo. No dia a dia imprevistos acontecem, dúvidas surgem, então nada mais justo do que já exercitar o ato de questionar. Certa vez recebi como resposta para um desafio uma única classe em Java, com apenas um método com toda a lógica dentro, sendo que no texto enviado ao candidato estava claro que deveria ser desenvolvida uma aplicação REST, retornando um JSON, ou seja não houve muito o que considerar neste desafio, pois em nenhum momento foi tirada alguma dúvida ou explicado alguma situação que possa ter ocorrido. Alguns itens são essenciais na hora de escrever o seu código: escreva testes aplicando conceitos de Test-Driven-Development e Arrange-Act-Assert, não esquecendo, claro, a cobertura de testes do seu código. Também utilize boas práticas na hora de escrever seu código, como aplicar conceitos de Clean Code, Orientação a objetos, SOLID entre outros.
3) Screening
A Screening é o primeiro contato formal com alguém do time de recrutamento e nesta entrevistas são feitas as primeiras perguntas sobre carreira. Nela, geralmente são apresentadas todas as etapas do processo, além de se falar um pouco sobre a vaga em questão. Da parte do candidato, é feita a apresentação inicial, no qual o candidato poderá contar um pouco da sua história e carreira. Faz parte da Screening perguntar no que o candidato realmente é bom e algumas evidências com situações reais onde se demonstrou o que foi mencionado. Também é comum na Screening perguntar no que o candidato não é bom ou pelo menos não gosta de fazer. Nem cogite mencionar seus pontos fracos são perfeccionismo ou ansiedade. Os recrutadores esperam que você mande a real sobre as situações, explicando o seu ponto de vista e reconhecendo que talvez uma decisão tomada, poderia ter sido conduzida de outra forma.
4) Entrevista técnica
A entrevista técnica é bem voltada para assuntos que um desenvolvedor encontrará no dia a dia da empresa. Espere perguntas sobre testes automatizados, integração e entrega contínua, modelagem de dados, micro-serviços e computação em nuvem. Também são feitas perguntas sobre fundamentos, como imutabilidade de objetos, herança vs composição e HTTP. Para ter uma ideia do que pode ou não ser perguntado, há diversas listas de perguntas como esta para backend e esta para frontend, ou ainda sites como o Glassdoor ou LoveMondays, no qual você pode consultar perguntas e review de entrevistas em outras empresas. Apesar da maioria das empresas, principalmente as mais tradicionais, não darem muita liberdade para aplicar a muitos dos conceitos no dia a dia, é possível obter conhecimento e experiência de outras formas, além do que você faz no seu trabalho, como ter um projeto pessoal, ler livros, blogs, participar de eventos, etc. A carreira de desenvolvedor é uma busca constate por se manter atualizado, conhecer novas tecnologias, arquiteturas, linguagens, paradigmas. Uma das formas mais fácil de obter estes conhecimentos é ler. Sempre pergunto para candidatos o que eles costumam ler, porém, a grande maioria diz que não gosta de ler e por isso prefere se manter atualizado com conteúdos da internet. Ao se deparar com essa resposta, também pergunto então qual seria o site ou blog que o candidato me recomendaria. Geralmente há um insistente silêncio ou alguma tentativa de lembrar o nome do site que na hora insiste em não aparecer na memória. Invariavelmente, para se dar bem como desenvolvedor não há como fugir da leitura e não adianta dar desculpas que ler é chato ou cansativo, isso não cola. Conheci poucos desenvolvedores que liam apenas conteúdo na internet e eram considerados acima da média, entretanto mesmo estes, ao ser perguntado por referências do que liam, tinham na ponta da língua três ou quatro blogs ou sites que poderiam me recomendar. Eu acredito muito que ler, inclusive livros não técnicos, podem influenciar muito na carreira de um desenvolvedor, pois estimulam a pensar de forma diferente do habitual.
5) Entrevista de perfil
A entrevista de perfil é um tanto subjetiva e podem ser feitas perguntas de qualquer natureza. O objetivo desta etapa é conhecer como você é como pessoa, o que você gosta de fazer e entender se os seus objetivos pessoais estão alinhados com os objetivos da empresa. Na ContaAzul, durante o período que trabalhei, sempre tive o prazer de conhecer pessoas fantásticas e muito do que vi nas entrevistas de perfil era tentar entender se esta pessoa se adaptaria ao estilo de vida na ContaAzul. Eu entendo que temos nossa personalidade e que é difícil mudar alguns comportamentos, mas se eu pudesse generalizar, eu diria que as pessoas com quem trabalhei na ContaAzul são muito otimistas, engajadas e sinceras com as situações. Eu me sentia durante o trabalho como se estivesse em um ambiente leve, divertido, mas com um senso de responsabilidade muito grande, pois eu poderia ser cobrado por qualquer pessoa do time das minhas responsabilidades, seja com um engenheiro em um code review, seja com uma reunião com o time de produto ou em uma conversa individual com meu líder. Outra característica que posso generalizar é a que as pessoas com quem trabalhei eram obsessivas por resultados. É legal destacar que resultados são geralmente acordados entre todas as pessoas de um time, então dificilmente era algo impossível de ser atingido ou algo fora da realidade, mas com certeza sempre foi desafiador e motivante.
6) Entrevista final e oferta
Esta conversa geralmente é feita por um dos fundadores ou diretores. Eu gostava muito dela pois é o momento de encontrar pessoas com histórias incríveis e que me inspiraram muito enquanto trabalhei na ContaAzul. Também durante esta etapa é feita a oferta salarial, baseado na experiência e expectativa individual. Uma das coisas legais é que diferente de outros lugares, na ContaAzul existe um plano de cargos e salários com uma agenda rigorosa, então este é o momento de perguntar como isto funciona e como isto impactará suas futuras avaliações. É também o momento de pensar bem se vale a pena ou não largar o conforto da situação atual, a rotina de uma empresa tradicional, para iniciar em uma startup, onde o que mais conta é o resultado que você e seu time entregam.
E aí, bora aplicar para uma vaga?!
Houve momentos da minha carreira que uma conversa ou duas bastaram para ser contratado, ou ainda conhecer alguém ou ser indicado por um colega bastaram. Porém, a partir do momento em que eu escolhi trabalhar na empresa que eu queria, eu precisei me preparar. Apenas estudar assuntos técnicos hoje em dia já não bastam mais. Foi-se o tempo em que programadores trabalhavam em salas trancadas alimentados por pizzas que passavam por debaixo da porta. Invista em você, se desafie e esteja preparado quando te chamarem para participar de um processo na vaga dos seus sonhos.