Ok, solo para agregar algo de experiencia práctica aquí.
Trabajo para una de estas firmas de software de élite, y no creo que nuestras políticas de contratación estén orientadas a "no perder" un gran talento sino a "no contratar" un talento mediocre. He visto que algunas de estas compañías realmente quieren contratar a personas geniales, pero lo hacen entrevistando a muchos desarrolladores realmente atractivos (en papel) y luego seleccionando a los que no quieren. Una vez que se contrata a alguien, es muy difícil deshacerse de él, por lo que vale la pena rechazar a un candidato que usted cree que realmente puede ser una buena opción, pero que uno de los entrevistadores vio algunas señales de alerta.
En la empresa para la que trabajo actualmente, me rechazaron porque uno y solo uno de los entrevistadores (el más importante) me rechazó. Este entrevistador me hizo una pregunta muy específica del dominio y no hablaba inglés fluido. No me contrataron, pero el equipo pensó que la compañía se estaría perdiendo una contratación potencialmente buena. Me enviaron a otro conjunto de entrevistas con un equipo diferente la próxima semana y obtuve el trabajo (con marcas de "fuerte contratación" podría agregar).
Mi consejo es que si realmente crees que tienes lo que se necesita, sigue entrevistando a esta empresa y aprende de cada experiencia hasta que consigas el trabajo. La mayoría de estas compañías mantienen un registro de todas las personas que entrevistan y hacen una lista negra de los candidatos pobres (para que nunca tengan otra oportunidad). Sin embargo, los candidatos que fueron buenos candidatos pero que simplemente no tuvieron un buen desempeño ese día, o que no encajaron bien con el equipo, permanecerán en el grupo de contratación. Inmediatamente sabrá si ha sido incluido en la lista negra cuando las llamadas telefónicas del reclutador simplemente se detienen un día y cada contacto futuro parece llegar a oídos sordos. Si recibe consultas futuras de la compañía, sabe que está bien. No hay ningún daño en organizar más entrevistas después de su primer rechazo, siempre y cuando no haya sido incluido en la lista negra. De hecho, Recomiendo encarecidamente entrevistar con varios equipos a la vez. Los entrevistadores lo rechazarán a la primera señal percibida de problemas, ya sea que sea un problema real o no. Son cautelosos y no quieren hacer malas contrataciones mucho más de lo que quieren hacer buenas contrataciones.
Algunas reflexiones más:
--Ninguna de estas compañías te dará retroalimentación. Es una responsabilidad legal. Es una mierda que así sea, pero puedo prometerle que no va a suceder.
Hablé personalmente con un ingeniero brillante cuando me entrevisté con Microsoft, quien me dijo que le llevó más de 5 intentos antes de que finalmente lo contrataran. Este tipo era un SDE de nivel superior, por lo que MSFT obviamente validó que era un buen empleado al promocionarlo.
Algunos consejos:
Conozca sus estructuras de datos y algoritmos hacia atrás y hacia adelante. Necesita saber todo hasta llegar a gráficos transversales.
Conocer la arquitectura, especialmente los sistemas distribuidos y los problemas de escala.
Tenga una lista de proyectos que ha dirigido memorizados. Tenga una lista con ejemplos de principios de liderazgo que haya exhibido en su trabajo memorizado. Estas son las preguntas más difíciles de responder en la entrevista (entrevistas conductuales). Puedes ser perfecto en el aspecto tecnológico y si no sobrevives a la entrevista de comportamiento no serás contratado.
No se preocupe por los lenguajes de programación que están buscando. Conozca un lenguaje orientado a objetos hacia atrás y hacia adelante y codifique en eso. Al entrevistador generalmente no le importa en qué idioma codifica y no lo juzga en base a él.
Finalmente, envíeme su currículum por correo electrónico. ; =)