Ok, apenas para trazer alguma experiência prática aqui.
Trabalho em uma dessas empresas de software de elite e não acho que nossas políticas de contratação sejam voltadas para "não perder" grandes talentos, mas para "não contratar" talentos medíocres. Vi que algumas dessas empresas realmente querem contratar pessoas ótimas, mas o fazem entrevistando muitos desenvolvedores de boa aparência (no papel) e depois escolhendo os que não desejam. Uma vez que alguém é contratado, é muito difícil se livrar deles, por isso vale a pena recusar um candidato que você acredita que seja realmente adequado, mas um dos entrevistadores viu algumas bandeiras vermelhas.
Na empresa em que trabalho atualmente, fui recusado porque um e apenas um dos entrevistadores (o mais importante) me deu um sinal de positivo. Esse entrevistador me fez uma pergunta específica do domínio e não falava inglês fluentemente. Eles não me contrataram, mas a equipe achou que a empresa estaria perdendo um contrato potencialmente bom. Eles me enviaram para outro conjunto de entrevistas com uma equipe diferente na semana seguinte e eu consegui o emprego (com notas de "contratação forte", devo acrescentar).
Meu conselho é que, se você realmente acredita que tem o que é preciso, continue entrevistando essa empresa e aprendendo com cada experiência até conseguir o emprego. A maioria dessas empresas mantém um registro de todos os entrevistados e lista negra dos candidatos pobres (para nunca mais tentar). No entanto, os candidatos que eram bons candidatos, mas simplesmente não tiveram um bom desempenho naquele dia ou não se encaixaram bem com a equipe, permanecerão no pool de contratação. Você saberá imediatamente se você foi incluído na lista negra quando os telefonemas do recrutador pararem um dia e todos os contatos futuros parecerem surdos. Se você receber consultas futuras da empresa, sabe que está bem. Não há absolutamente nenhum mal em marcar mais entrevistas após a sua primeira rejeição, desde que você não estivesse na lista negra. De fato, Eu recomendo entrevistar várias equipes de uma só vez. Os entrevistadores vão rejeitá-lo ao primeiro sinal percebido de problema, seja um problema real ou não. Eles são cautelosos e não querem fazer contratações ruins muito mais do que desejam fazer contratações ruins.
Mais alguns pensamentos:
- Nenhuma dessas empresas vai lhe dar feedback. É uma responsabilidade legal. É péssimo que seja assim, mas posso prometer que não vai acontecer.
- Falei pessoalmente com um engenheiro brilhante quando entrevistei a Microsoft, que me disse que foram necessárias mais de cinco tentativas para ele ser finalmente contratado. Esse cara era um SDE de nível sênior, então a MSFT obviamente confirmou que ele era um bom contratado, promovendo-o.
Algumas dicas:
Conheça suas estruturas de dados e algoritmos para frente e para trás. Você precisa saber tudo até o gráfico de travessias.
Conheça arquitetura, especialmente sistemas distribuídos e problemas de escala
Tenha uma lista dos projetos que você liderou memorizados. Memorize uma lista com exemplos de princípios de liderança que você exibiu em seu trabalho. Essas são as perguntas mais desafiadoras a serem respondidas na entrevista (entrevistas comportamentais). Você pode ser perfeito no lado técnico e, se não sobreviver à entrevista comportamental, não será contratado.
Não se preocupe com as linguagens de programação que eles estão procurando. Conheça uma linguagem orientada a objetos para trás e para frente e codifique isso. O entrevistador geralmente não se importa em qual idioma você codifica e não o julga com base nele.
Por fim, envie-me um e-mail com seu currículo. ; =)