Exatamente às 13h em ponto, horário combinado para a entrevista, o recrutador da Micrososft EUA liga para minha casa. A ligação estava com uma qualidade muito boa, sem eco, sem lag e sem ruídos, e o inglês claro de devagar do recrutador facilitou a conversa. Respondendo à pergunta do Juliano nos comments do post anterior, é esperado que você possua uma fluência mínima em inglês para poder conversar com uma pessoa. No meu caso, talvez por sorte, compreendi 100% da conversa, mas soube que os recrutadores estão orientados a repetir com calma e devagar tudo o que você disser que não entendeu.
Um ponto que ajuda a comunicação também é o Net Meeting. No email que antecede à entrevista, é passado para você um link, para uma sessão no Net Meeting. Essa sessão, que possui uma espécie de "notepad compartilhado", serve essencialmente para você resolver problemas de ordem técnica, mas nada impede que você solicite ao recrutador que escreva algo que você nao entendeu.
Uma dica interessante que eu dou é: na meia hora que antecede a entrevista, fique conversando sozinho, em inglês, fazendo perguntas a você próprio como se a entrevista já estivesse começado. Isso vai aquecendo o seu inglês e é excelente para evitar o nervosismo, pois quando o recrutador ligar vai parecer que você está apenas continuando uma conversa que já tinha iniciado antes.
As perguntas iniciais foram para confirmar algumas informações do currículo. Por exemplo, "você confirma que completou mestrado/graduação em tal ano?" ou então "você confirma que vai estar se formando em tal mês?". Em seguida, ele perguntou para que cargo eu estava aplicando (os dois eram possíveis: SDE (software design engineer) ou SDET (software design engineer in test)). Eu havia decidido por SDET (a diferença entre os dois e meus motivos em particular explicarei em um post futuro).
Em seguida, você é requisito a falar sobre um projeto de que você gostou de ter participado no passado. Escolhi dois: uma prova de conceito bem interessante no Centro XML (agora Centro de Inovação Tecnológica), que envolveu várias tecnologias (C#, Web Services, VSTO, SharePoint, ASP.NET, web parts, etc.) e meu projeto de Software Design da Imagine Cup 2005 (o TravelMates). Uma dica aqui é não apenas falar sobre o projeto, mas também sobre qual foi sua participação nele.
Logo depois vêm as perguntas técnicas. Percebi que essas perguntas são baseadas no seu CV. Por exemplo, ele viu que no meu CV havia referências sobre cursos e certificações em C#, portanto focou em perguntas comparativas dessa linguagem com C++, que ainda é a principal linguagem usada na MS. Algumas dessas perguntas seguem abaixo:
- Compare C# with C++. which are the situations where you would use one and where you would use the other?
- What is buffer overrun and how it can be explored as a bug? Why does it not happen in C#?
- You said C# provides a better strong-typing than C++. How can this can be explored in C++ as a bug?
- What about casting? In which situations can casting in C++ lead to bugs that C# doesn't?
Acho que respondi bem as duas primeiras e dei uma "patinada razoável" nas duas últimas.
Por fim, vem a tão temida parte prática, na qual um problema de programação é passado para você resolver. No meu caso, o problema foi: dada uma string (ex.: "Microsoft") e uma outra string (ex.: "icro"), retorne uma string que é o resultado da remoção dos caracteres da segunda string na primeira string (ex.: "Msft"). Certamente em poucos segundos você encontra uma solução fácil para isso, com alguns poucos laços fors e ifs. Entretanto, não é nisso que o recrutador está interessado. Embora ele não solicite explicitamente, o que ele quer é que você descreva as vantagens e desvantagens de seu algoritmo e como você poderia melhorá-lo. No meu caso, o algoritmo final otimizado realiza a operação desejada com performance O(n) e com memória "inplace" (sem necessitar alocar uma string adicional para colocar o resultado). A resposta deixo como exercício para o leitor... ;)
Por fim, é interessante observar que o recrutador lhe ajuda e oferece dicas para você conseguir concluir a implementação. O que importa mesmo é você conseguir transmitir a ele o que você está pensando como solução (e, obviamente, que sua solução seja o mais inteligente possível).
Minhas impressões pessoais: não achei minha entrevita ruim, tampouco excelente. Acho que no geral ela foi "boa". Resta agora esperar para ver se serei chamado para a próxima etapa (entrevistas presenciais no Rio de Janeiro). Acho que existe uma chance, mas também estou longe de criar expectativas. O resultado vocês conferem daqui a alguns dias neste mesmo blog!
[]s
-- AFurtado