Processo baseado em 4 fases, sendo que cada fase acabei realizando em uma semana diferente (total 1 mês de processo seletivo aproximadamente):
- Entrevista com recrutador para esclarecimento da vaga, apresentação da empresa , e verificação de match de candidato.
- Entrevista técnica, no qual é proposto a ideia de um sistema simples (nada muito complexo), e a pessoa precisa desenhar a modelagem de classes que resolveria o problema. Não existe resposta certa ou errada, é uma avaliação de noções de modelagem orientada a objetos, nessa parte o avaliador analisa a forma de pensar da pessoa, e como ela vai desenvolvendo os pensamentos até chegar em um ponto no qual ela julgue ter resolvido o problema, foi usado uma ferramenta de desenho de diagramas para apresentar a solução. Após isso é apresentado dois problemas de algoritmos, no qual precisamos resolver usando qualquer linguagem de programação ou até mesmo pseudo-código de preferir, o entrevistador questiona a complexidade temporal assintótica dos algoritmos desenvolvidos. A modelagem do sistema com OO foi bem tranquila, e na parte dos algoritmos eu tive bastante facilidade pois sempre gostei desse tema na época da faculdade quando participava de maratonas de programação. Considero que mandei muito bem nessa fase.
- Entrevista técnica, no qual é perguntado sobre experiências profissionais, acadêmicas, hobbies, etc. Nessa fase também é proposto um desafio de Systems Design, no qual é dado uma ideia inicial de um sistema (eu achei bem difícil o sistema escolhido, por ser muito diferente do "convencional" rest api que a maioria das pessoas desenvolvedoras estão acostumadas), e com base nisso, solicitado a pessoa que desenhe os componentes de alto nível (aplicações de serviços, BDs, infra, etc) que melhor resolveriam o problema proposto. Conforme a solução for evoluindo, o entrevistador vai aumentando o escopo e acompanhando a forma que você lida com isso. Nessa etapa eu consegui apresentar uma solução mínima que atendia razoavelmente bem a primeira versão da ideia proposta, mas não consegui evoluir a solução além do mínimo proposto. Considero não ter ido tão bem nesta fase, por conta do tempo curto e da dificuldade do desafio, mas como a vaga para o qual concorri não era de sênior, isso não foi um impedimento para realizarem a proposta. Acredito que nessa etapa, além da solução proposta, eles avaliam bastante a forma que você lida com esse tipo de desafio.
- Entrevista com o manager: última entrevista é com o manager da área, papo tranquilo, é feito algumas perguntas de fit cultural, sobre experiências anteriores, e é liberado para tirar eventuais dúvidas. Nessa fase, o manager também aproveita para explicar com mais detalhes a área no qual a pessoa eventualmente irá trabalhar.
Por fim, me foi feito uma proposta, com um ótimo feedback sobre meu desempenho.
A experiência com esse processo seletivo foi 10/10, em todas as etapas as pessoas que me entrevistaram me deixaram muito confortável para eu me expressar, sem julgamentos ou pressão caso eu não soubesse de algo, ou não chegasse na melhor solução. As pessoas entrevistadoras foram muito pacientes comigo e promoveram uma ótima experiência, a recrutadora que estava me acompanhando conversava sempre depois de todo processo para dar e colher feedbacks. Foi o processo seletivo mais difícil, porém humano que já participei.
Dicas: estude o material que eles enviarem, estude bem os projetos opensource que eles tem no github, e as tecnologias "não convencionais" que eles utilizam.