Al crecer en Latinoamérica llevamos cierto bagaje cultural que tiene que ver con la forma de relacionarnos, comunicarnos y al llegar al momento de manejar entrevistas profesionales, también hay algunos escenarios a los que estamos acostumbrados, pero si queremos trabajar para una empresa de EEUU o Europa, vamos a tener que enfrentarnos a un esquema bastante diferente, especialmente cuando hablamos de entrevistas para procesos de entrevista de puestos técnicos (específicamente hablando de todo lo relacionado con TI).
En este artículo trataré de resumir los puntos importantes a tomar en cuenta desde varias perspectivas, tanto lo netamente técnico, como lo humano / social.
Cada proceso de entrevistas será diferente dependiendo de la empresa, algunos tendrán más pasos, quizá algunas menos, pero voy a enfocarme en los elementos más básicos:
- Cultural Match
- Pruebas Técnicas
- Entrevista Técnica
- Diseño de Sistemas
- Entrevista final / Negociación
Entendimiento Cultural / Cultural Match
Esta etapa suele ser la inicial, antes de esto puede haber una llamada corta con una reclutadora para conocerte, saber tus intereses y de forma básica revisar si las características que forman parte de tu hoja de vida coinciden con la oferta de trabajo, y hacer una indagación inicial para entenderte mejor como candidato. En el caso de los trabajos que requieren inglés, será aquí también donde se puede hacer una validación rápida sobre el nivel de conocimiento del idioma, al menos si estamos hablando de empresas latinas que estén contratando para países de fuera.
La siguiente parte, lo que se conoce como el Cultural Match, se refiere en términos sencillos a unos cuantos puntos:
- Coincidir con la misión, visión y valores de la cultura organizacional de la empresa
- Entender la forma en la que la empresa funciona y descubrir si como candidato puedes desenvolverte dentro de ese ambiente.
- Conocer las cosas que pueden ser un reto dentro de la empresa y si estamos de acuerdo en tomar esos retos.
Esto puede sorprendernos porque es necesario entender a la empresa antes de trabajar en ella, pero para una empresa que quiere mantener su productividad, armonía y que tiene la intención de que sus colaboradores quieran quedarse por largo tiempo dentro de la empresa, es necesario que exista ese entendimiento.
Si lo puedo simplificar, es como darse cuenta si ambos coinciden, tanto la empresa con el candidato, como el candidato con la empresa. Tiene que ser una relación bidireccional, esto es algo a lo que no solemos estar acostumbrados, pensamos que tenemos que convencerlos de que nos contraten por lo que sabemos, pero realmente también ellos tienen convencernos de que vale la pena formar parte de su empresa.
Recomendaciones en esta etapa, ser sinceros en cuanto a lo que pensamos, lo que queremos y hacer todas las preguntas que consideremos necesarias para poder entender completamente si este trabajo y esta empresa es el lugar donde quiero pasar durante al menos un período de tiempo.
Una de las herramientas disponibles en la actualidad es la herramienta de práctica de entrevistas de Google, que se va a enfocar en hacer muchas de las preguntas típicas que pueden aparecer en esta etapa:
Otra herramienta muy importante para prepararnos para esta etapa es el método STAR, que nos permite organizar las ideas sobre lo que queremos explicar, se basa principalmente en explicar:
- S. Situación.- Establece la escena describiendo de forma escueta la situación o el problema que enfrentaste.
- T. Tarea.- Explica las responsabilidades en esa situación, que rol desempeñaste.
- A. Acción.- Describe los pasos que tomaste para superar el reto o la situación en la que te encontrabas.
- R. Resultado.- Comparte lo que lograste a través de tus acciones.
How to use the STAR interview method for success
Pruebas Técnicas
La siguiente etapa con la que te vas a encontrar es la de resolver múltiples pruebas que van asociadas al tipo de puesto al que estás aplicando, que puede ir desde pruebas de lógica, hasta verificaciones de conocimiento sobre algoritmos (hablando de entrevistas para programadores), o inclusive puede haber casos en los que enviarán pequeños proyectos en los que resolver algún problema.
Con respecto a las pruebas técnicas de resolución en línea, la mayoría son del estilo de selección múltiple y autocalificadas, así que no son complejas, en el sentido de que no es necesario desarrollar la explicación, pero para poder responder correctamente esas preguntas, hace falta tener claros los conceptos y definitivamente la experiencia que piden en los JD (Job Descriptions).
Cuando son pruebas de programación, lo importante es recordar que hay que enfocarse más que en la solución óptima a nivel técnico, algo que sea mantenible en el tiempo, legible y que pueda ser entendido por otra persona sin necesidad de explicación adicional.
Como referencia, algunas de las preguntas típicas que se pueden encontrar, dependiendo del tipo de lenguaje:
Otra opción son las pruebas de validación de conocimientos, existen múltiples plataformas, algunas de las más conocidas: HackerRank, Pluralsight, Leetcode, CodeChef. Personalmente me gustan mucho las pruebas de conocimiento de Pluralsight, acá algunas de las más comunes:
Si sientes que estás "oxidado" y necesitas practicar lo que se refiere a resolución de problemas y algoritmos, el material de Hackerrank me parece uno de los más fáciles de digerir y que permite ir avanzando gradualmente. Adicional a esto, algo que es importante saber, es que para las pruebas o entrevistas de algoritmos, sí hay que tener muy frescos o claros los recuerdos sobre las cosas básicas que probablemente estudiamos al inicio de nuestras carreras, ya sea en universidad o de forma autodidacta, como estructuras de datos, algoritmos básicos como los de ordenamiento, búsqueda y manipulación de datos..
En el caso de Pluralsight, te permite tener un tablero con tus conocimientos que es demostrable y puede servir de apoyo para alguna entrevista, incluyo el mío como ejemplo
Entrevista Técnica / Diseño de Sistemas
Luego de haber pasado las validaciones que por lo general suelen ser automáticas, pasamos a la entrevista técnica, habrá ocasiones en las que quizá no haya pruebas automáticas y pasemos directo a una sesión de entrevista técnica en vivo, que es a lo que me refiero en este paso.
La gran diferencia es que se realiza con una o dos personas que te entrevistan tomando en cuenta lo que hayas presentado en tu CV y van a hacer preguntas sobre cómo resolver ciertos problemas o situaciones, incluyendo lo que podría incluir el diseño de un sistema, tal y como decir:
- Queremos diseñar un nuevo sistema que permita que los usuarios suban fotografías de forma individual y compartirlas con sus amigos, aplicando efectos antes de subirlas (aka Instagram), de qué forma lo solucionarías?
¿Qué elementos incluirías? sea esto a nivel de infraestructura, diseño de la solución en código, o sólo un diagrama de flujo de datos del sistema de manera general. Son este tipo de respuestas las que esperan encontrar a este nivel, quizá ver algo de muestra de código (nada profundo, sólo saber que puedes demostrar lo que pusiste en papel)
Algunas guías que pueden servir:
- Software Engineer interviews: Everything you need to prepare
- Airbnb software engineer interview: the only post you'll need to read
- 15 Common Problem-Solving Interview Questions
- 59 system design interview questions (and sample answers)
Entrevista final / Negociación
En esta parte casi casi podemos decir: "tiren papelitos muchachos".
Si nos llaman a esta parte es porque les gusta el perfil que tenemos, coincidimos con lo que buscan tanto a nivel técnico, como en cuanto a nuestra cultura de trabajo y nos entendemos con los demás de la compañía. Sin embargo, aún hay un par de cosas que entender.
¿Voy a ser un empleado de una compañía, un contractor o un freelancer? No hay opción mala, todo depende de lo que estemos buscando, personalmente he estado como contractor cerca de 6 años y lo prefiero al tener la libertad de manejar mis propias finanzas, gastos y cómo invertirlo, pero no a todo el mundo le va a gustar. Si quieren entender un poco más sobre Contractor y Freelancer, lo incluí en el artículo sobre: Dónde encontrar ofertas de trabajo remoto
Otra consideración importante es el valor del contrato, por lo general con las empresas de EEUU se suele hablar ya sea de valor por hora o de valor anual, en LATAM estamos acostumbrados a pensar en un valor fijo mensual, la forma rápida de calcularlo si es por horas, es multiplicar el valor por hora por 160 (número aproximado de horas en un mes), ej:
- Valor por hora en USD 20, valor mensual = 3,200, valor anual = $ 38,400
De esto debemos tomar en cuenta las condiciones bajo las que nos vayamos a sentir bien, por ejemplo descontar de este valor (si fuera lo que quisiéramos): costo del internet, seguro médico, seguro social personal (en los países donde se pueda hacer aporte voluntario), valores de vacaciones. Y si al final de eso nuestro sueldo neto, nos sigue dejando contentos, pues suena como una buena oferta, pero antes de aceptar una propuesta a ojos cerrados, recomendaría revisar alguna tabla referencial de valores, como esta:
Como nota personal, en mi caso, mantenerme como contratista y pagar mis propios "beneficios" aún sigue representando un valor muy superior a lo que una empresa local podría ofrecer, así que se mantiene el balance.
Hay algunas empresas que sí ofrecen directo beneficios (perks), pero la oferta actualmente es muy variada, así que recomendaría no tomar una decisión de forma descabellada, sino pensar bien primero lo que queremos para nosotros mismos, tanto en ambiente, reto a nivel profesional y retribución salarial, que sea una decisión bien pensada.