articulos

Colección de Artículos Publicados por Alguien del Grupo Esquina-CTO

View the Project on GitHub Esquina-CTO/articulos

Entrevistando Ingenieros de Software

por Alberto Romero, Engineering Lead @ GoExpedi We are hiring :P

De manera concisa, me gustaría presentarles algunos retos que he aplicado al momento de entrevistar candidatos, y también otros interesantes que me han aplicado, los cuales he visto como interesantes y que creo ayudan a evaluar candidatos de manera holística.

1. Code Review Interview

Reto

Asignar una pieza de código al candidato para que realice una evaluación a sus criterios propios.

Dinámica de entrevista

Criterios de evaluación

Ventajas de esta entrevista

Desventajas

Ejemplo

Code Review Exercise

Notas

Este challenge me ha parecido bastante útil como primera entrevista. Se puede medir muchísimas cosas en un tiempo muy corto, y también puedes notar las actitudes del candidato respecto a código no tan limpio, y pedirle que profundice en cómo mejorar una solución ya implementada.

2. Entrevista de código usando pruebas unitarias

Reto

Crear un modulo que pase ciertas pruebas automatizadas desarrolladas por el mismo candidato.

Dinámica de entrevista

Criterios de evaluación

Ventajas

Desventajas

Ejemplos

Notas

Este reto permite descubrir cómo un candidato aborda un problema de diseño de software, y ayuda también a medir la capacidad de evaluar casos esquina en código, lo cuál es un mindset que considero que todos los ingenieros deben de tener muy presente.

3. Take-home challenge

Reto

Desarrollar un subsistema en Front End y/o Back End con código parecido a producción

Dinámica de entrevista

Criterios de evaluación

Dependiendo del tipo de reto, se puede evaluar lo siguiente:

Ventajas

Desventajas

Ejemplos

Notas

Personalmente, este reto es el que más me gusta aplicar, pero entiendo que es el más pesado y no es posible aplicarlo siempre, sobre todo si el candidato está entrevistando en otras 4 empresas, puede resultar bastante pesado.

4. Examen automatizado a traves de un Public API

Reto

El candidato debe mandar requests a un API público para pedir información, transformarla, y regresarla procesada en un tiempo limitado.

Ejemplo

Hacer peticiones a un API pública para que regrese un número específico del 1 al 100, y en base a ese número, regresar el número en la serie de fibonacci que pertenezca a la posición dada. Ejemplo:

GET /fibonacci
Response: 5

0 1 1 2 3 <- 5 8

POST /fibonacci
Data: { number: 3 }
Response: 2 # aquí la respuesta seria el siguiente número a buscar en la serie

0 1 <- 1 2 3 5 8

POST /fibonacci
Data: { number: 3 }
Response: 9 # y así sucesivamente hasta que el sistema determine que la entrevista ha terminado

Dinámica de entrevista

Criterios de evaluación

Notas

Este reto se me hizo muy interesante cuando apliqué como intern a una empresa en el 2015, la verdad desconozco qué herramienta se utilizó por detrás, pero se me hizo un buen ejercicio para agarrar candidatos con algo de experiencia con web

5. Algoritmia

Reto

Resolver un problema de algoritmia a un candidato y resolverlo en un tiempo limitado

Dinámica de entrevista

Criterios de evaluación

Ventajas

Desventajas

Notas

Se me hace un método válido para evaluar si un candidato se siente cómodo con su lenguaje de programación y tiene un pensamiento lógico respecto a estructuras de datos y problemas complejos. Y como siempre, aplicar este tipo de entrevistas es circunstancial y subjetivo :P