El proceso de contratación de perfiles técnicos en Finizens

Jose Ignacio Andres
Finizens Engineering
9 min readApr 26, 2018

En Finizens, como en la mayoría de empresas y startups de base tecnológica, buscamos constantemente perfiles técnicos. No cuento nada nuevo diciendo que es una tarea difícil dado el momento en el que se encuentra la industria. Hay muchos proyectos súper interesantes y la demanda de perfiles crece a un ritmo desmesurado si lo comparamos con la cantidad de profesionales disponibles. Hoy queremos hablaros de cómo es nuestro proceso de selección para estos perfiles, pero antes, pongámonos en situación.

Nuestro contexto es el de una startup que ha recibido una ronda de inversión importante, pero no desorbitada. Por ello, la estrategia por la que hemos optado es la de buscar perfiles senior en su mayoría –o intermedio-alto en algún caso– y, como hacemos desarrollo web, intentamos que estas personas sepan desenvolverse medianamente bien tanto en back como en front-end. Es decir, que tengan la habilidad de desarrollar features end-to-end, a pesar de que sabemos que habitualmente se suele estar más especializado en una de las dos áreas.

Importante decir que aunque disponemos de hasta 3 días a la semana para trabajar en remoto, aún no ofrecemos trabajos que se puedan denominar como tal. También recalcar que tratamos de ser muy transparentes con lo que buscamos y con lo que ofrecemos, por eso ponemos mucho empeño en detallar las ofertas, incluyendo el rango salarial y describiendo lo mejor que podemos lo que esperamos que hagas en el día a día.

Nos gustaría seguir esta línea hasta alcanzar un equipo lo más autónomo y eficiente posible a corto/medio plazo, teniendo en mente la expectativa de llegar a un punto en el que comencemos a incorporar perfiles mucho más especializados en áreas concretas, también perfiles junior a los que formar poco a poco.

Podemos resumir que a día de hoy en todas nuestras ofertas técnicas estamos buscando:

  • Programadores, a secas. Personas a las que les guste este oficio, que no se dejen llevar por el framework de moda, si no que les guste la tecnología subyacente y tengan verdadero interés en comprenderla antes de aplicarla.
  • Experiencia, mucha. Especialmente en “las trincheras”, porque a pesar de que no nos ha dado tiempo a tenerlo, nada te “curte” más que trabajar en legacy.
  • Con autonomía y compromiso. Queremos profesionales. Nuestra metodología de trabajo se basa en la confianza entre los miembros del equipo, por lo que han de ser personas sin miedo a adquirir el compromiso de “encargarse”.
  • Orientado a resultados. Y no se debe mal interpretar con hacer un trabajo a base de parches. Queremos que sean personas que compartan la visión de que el código es un medio, no un fin, para, en este caso, conseguir resultados tangibles para el negocio.

Quizá sea obvio, pero nos gustaría recalcar que el proceso que os contamos a continuación ha tomado forma teniendo siempre en mente un objetivo: tratar de averiguar de la forma más precisa posible cómo funcionará una determinada persona en el día a día de nuestro proyecto.

Los pasos del proceso

Para empezar debemos diferenciar entre los procesos que se inician mediante “head-hunting” y aquellos que provienen de “aplicaciones espontáneas”. En el primer caso, nos ayudamos de nuestro equipo de recursos humanos que, a través de AngelList, LinkedIn y otras plataformas de este tipo, nos ayuda a localizar potenciales candidatos.

En estos casos se hace un pre-filtro obligado de conocer el posible interés, ver si el rango salarial y el proyecto pueden encajar, etc. En estos casos, las personas interesadas ya tienen una primera toma de contacto y podemos valorar si iniciamos realmente el proceso o no con algo de conocimiento. Suponiendo que hay match en todos los aspectos básicos, iniciamos el proceso que seguimos también para los candidatos que aplican directamente a través de la web de oferta de empleo o mail.

La verdad es que no nos podemos quejar en absoluto del número de candidatos que aplican a nuestras ofertas de forma proactiva, sin “publicidad” directa. Daría para otro post explicar todas las iniciativas que tenemos en marcha a modo de “siembra” para lograr despertar interés. ¿Os resultaría interesante si escribimos algo sobre esto?

Un primer filtro básico

Como decíamos, nuestro objetivo, imagino que como el de cualquier otra compañía, es validar lo mejor posible la actitud y las aptitudes de cada candidato/a de acuerdo a cada vacante. Intentamos que este proceso sea lo más fluido para ambas partes, por eso comenzamos con un filtro que consideramos es bastante básico.

Este filtro consta de unas 12–15 preguntas, dependiendo de cada vacante, todas ellas pensadas para ser contestadas mediante respuestas cortas. En algunos casos la pregunta es simplemente indicar tu “nivel” del 1 al 10 en algunas tecnologías o aptitudes. Asumimos que la mayoría de personas no van buscar en google estas respuestas o que vayan a dar una valoración superior, puesto que posteriormente tendremos una entrevista donde lo verificamos.

A pesar de que consideramos que el filtro es bastante sencillo, cumple con su función y nos ayuda a filtrar un alto porcentaje de personas que aplican “por ver si suena la flauta” o simplemente no tienen aún la experiencia que estamos buscando en cada caso, todo sin un esfuerzo muy alto ni para los candidatos ni para nosotros.

Entrevista

Si todo ha ido bien, el siguiente paso sería una entrevista tradicional. En esta entrevista tratamos de comprender mejor la experiencia y el background, confirmar las aptitudes técnicas que buscamos y un primer feeling de cómo encaja la persona en la cultura de la empresa (aunque en esto hacemos hincapié más tarde, es un aspecto en el que nos fijamos a lo largo de todo el proceso).

Además de tratar de conocer lo mejor posible al candidato/a, también insistimos mucho en que nos conozcan a nosotros. Reservamos un tiempo de la entrevista para que se nos “entreviste” a nosotros. Buscamos que ambas partes sean lo que está buscando el otro, no solo que para nosotros sea la persona ideal, si no que esa persona pueda saber lo máximo sobre nosotros y así saber de antemano (lo mejor posible) si estaría agusto trabajando en el proyecto.

Todas las entrevistas se hacen por parte de dos miembros del equipo técnico. Habitualmente se llevan a cabo por la persona de referencia en la tecnología (backend y frontend en nuestro caso) junto con el CTO. Nos gusta que estas entrevistas sean presenciales, pero en el caso de personas que no viven cerca de nuestra oficina no tenemos problema en hacerla por skype o similar.

Tras la entrevista, ponemos en común nuestras impresiones y vemos si tiene sentido continuar y pedir una prueba técnica.

Prueba técnica

Es posiblemente una de las partes que más pesan en el proceso para estos perfiles. Para nosotros es muy importante la capacidad de escribir un código desacoplado de librerías y frameworks y fácil de mantener, pero sin caer en hacer over-engineer.

Como ya hemos comentado antes, intentamos que la inversión de tiempo sea equilibrada: no queremos que suponga demasiado esfuerzo para los candidatos, pero al mismo tiempo nosotros necesitamos verificar el nivel. Todos hemos estado “del otro lado” y sabemos que estas pruebas pueden ser tediosas y no sabes si van a tener un resultado. Por eso la prueba está ideada teniendo en cuenta dos cosas: Que no lleve más de 3–4 horas realizarla y que la prueba en sí pueda llegar a ser un problema interesante a resolver.

En la prueba, tal y como le indicamos a los candidatos, valoramos principalmente la calidad del código. Sabemos que esto es algo complejo de definir, pero podemos resumirlo en que se aplique SOLID. Puede parecer obvio, pero muchas de las pruebas que nos llegan no lo respetan. Además, nos fijamos bastante en la legibilidad, tanto a nivel de naming como de la “intencionalidad” que revela cada línea. A partir de ahí, no somos demasiado estrictos, y ya dependería del número de personas que hayan aplicado y del rol en concreto que busquemos con cada oferta.

Damos una semana para que el tiempo no sea un problema, ni para ejecutarla, ni tampoco para que el proceso se alargue demasiado. Una vez que los candidatos nos envían su prueba técnica, nosotros la revisamos internamente, para validar unos mínimos. En este punto aún se suele caer bastante gente. Sin embargo, si tras una revisión por nuestro lado, la prueba cumple con unos mínimos, pasamos al siguiente punto.

Code review

Este punto tiene también mucho peso. Para nosotros un aspecto igual de importante que la capacidad de escribir buen código es la capacidad de dar y recibir feedback de forma correcta y eficaz. Dividimos este proceso en dos partes.

En la primera hacemos una review en la que le hacemos preguntas sobre la prueba técnica del punto anterior. Discutimos posibles soluciones y valoramos pros y contras en conjunto. De este modo podemos visualizar mucho mejor cómo sería este proceso si la persona se llegara a incorporar al equipo. Nada nos dice tanto como reproducir tal cual procesos del día a día, aunque sea a pequeña escala.

Y como segunda parte, somos nosotros los que le “enviamos” una pieza de software al candidato/a para que nos haga la review. Intentamos que sea totalmente agnóstica a ningún dominio, de modo que nos podamos centrar en buenas prácticas en general. Con esta dinámica podemos valorar la capacidad de encontrar mejoras en un código existente y de dar feedback sobre ello a otra persona del equipo.

En este proceso también participamos dos miembros del equipo técnico. Las mismas dos personas que iniciaran el proceso. En este proceso no se suele descartar a demasiada gente. Hemos visto una correlación grande entre la prueba técnica y la code-review, sin embargo esto no siempre es así y por eso mantenemos ambos pasos dentro del proceso.

Café con el equipo

Aunque durante todo el proceso estamos bastante atentos a que la persona cumpla unos mínimos en cuanto al encaje con la cultura de la empresa y del equipo, en este último punto nos centramos mayormente en este aspecto.

Básicamente reservamos entre 30 y 45 minutos del equipo para tomar un café, una cerveza o lo que cada uno prefiera junto con el candidato/a y, por supuesto, invitamos nosotros ;) Solemos programar esta “reunión” a continuación de la code-review, para no hacer volver al candidato otro día y no hacer el proceso aún más largo de lo que de por sí es. En este punto si pedimos asistencia presencial, incluido los casos en que todo el proceso ha sido mediante videoconferencia.

La conversación no tiene demasiado guión, simplemente empezamos pidiendo al candidato que hable de su experiencia al resto del equipo como punto de partida y desde ahí, es una conversación informal en la que aparecen por sí solos temas como aficiones, hobbies, o gustos y preferencias personales. Cada miembro del equipo tiene libertad de preguntar lo que quiera y lo mismo hacemos saber a los candidatos.

Como nuestra intención con este punto es conocer algo más a nivel personal, solemos hacer esto en alguna cafetería cercana a nuestras oficinas ya que nos parece que ayuda a que se vea como algo más “informal”. Pensamos que para algunas personas puede ser más difícil entablar una conversación, por eso procuramos ir un máximo de 4 personas y hacemos hincapié en que debería ser una charla de interés mutuo. Solemos avisar para este punto a gente de otras áreas como diseño o marketing, de modo que sirva para tener más puntos de vista, tanto al entrevistado como para la decisión final. Valoramos de esta conversación cosas tan intangibles como importantes, todas orientadas a validar si por personalidad, esta persona encajaría bien en el equipo. Para nosotros cuenta tanto las preguntas que hacemos como las que nos hacen.

Decisión final

Tras ese café con el equipo, comentamos en conjunto las impresiones que ha tenido cada uno y valoramos puntos fuertes y débiles. Las dos personas que han estado en todas las fases del proceso repasan todos los puntos anteriores y son las encargadas de tomar la decisión de si se hace o no la oferta.

Si decidimos que no, contestamos a todas las personas que hayan hecho al menos el filtro explicando el motivo de nuestra decisión, tal y como nos gustaría que nos lo dijeran a nosotros. Nos parece que no cuesta mucho y sabemos que desde el otro lado se agradece bastante.

Hay que recordar que económicamente hablando asumimos un match, ya que publicamos los rangos de todas nuestras ofertas. La mayoría de las veces estos rangos no suelen ser muy amplios, ya que solemos tener claro lo que buscamos e investigamos un poco el mercado antes de publicar la oferta. En este momento también decidimos en qué punto de ese rango pensamos que encaja mejor el candidato. Esto a veces lo tenemos claro y otras no tanto, pero en cualquier caso, si todo ha salido bien, como es lógico, enviamos una oferta con todas las condiciones y pormenores y esperamos con muchas ganas que nos confirme formalmente.

Seguramente se puedan mejorar aspectos de nuestro proceso, así que estamos encantados de que nos déis vuestra opinión al respecto. Cualquier sugerencia de mejora es bienvenida.

PD: Tenemos varias ofertas publicadas aquí, por si queréis echarle un vistazo.

--

--