Casiva Agustin

Engineering, Development and something about Management

No mas curriculums, show me the code !

Este articulo es una reflexion de varias ideas que vienen pasando por mi cabeza desde hace un tiempo y tomaron forma en una nueva modalidad de búsqueda y selección de candidatos que vamos a implementar en 42mate, la empresa donde trabajo.

Si estas pensando TL;DR; me partis el corazón.

Las entrevistas de trabajo

En mi linea de trabajo vengo haciendo entrevistas técnicas para contratar personal hace prácticamente más de 5 años, también obviamente como todos soy entrevistado muchísimas veces.

En casi todas las entrevistas esta presente el mismo patrón.

  • Una persona de RRHH encuentra tu CV en algún lado de la internet y te contacta para entrevistarte.
  • Te entrevista para ver si no estas loco, la parte humana.
  • Te agenda una entrevista técnica.
  • Te entrevista un técnico haciéndote preguntas del manual de programación 101.
  • Acá puede haber un loop de varias entrevistas técnicas y personales
  • Al final te contactan para negociar la contratación, o nunca te llaman.

Si bien esta es la forma que normalmente trabaja la industria y funciona dado que las empresas consiguen personal no es optimo.

Para empezar esta la gente de RRHH, por lo general no tienen idea que buscan y tampoco tienen criterio para determinar si un perfil cumple o no con los requerimientos. Por ejemplo, si ustedes revisan mi perfil en LinkedIn verán que dice muy poco de Java y/o .NET, cualquier persona que tenga dos dedos de frente se puede dar cuenta que no desarrollo con esos lenguajes hace años , normalmente me suelen llegar ofertas de trabajo para codear en Java o .NET.

Sigue la entrevista para ver si no estas loco, esta suele ser con psicólogos laborales los cuales suelen hacer preguntas super incomodas para ver si tenes los patitos en fila y si vas a ser capaz de integrarte a un grupo de trabajo, el problema es que muchos buenos programadores no tienen los patitos en fila, son excéntricos y llevan una vida muy particular, si el psicólogo no esta acostumbrado a tratar con Geeks / Nerds puede llegar a rechazarlo sin avanzar con el resto de los pasos llegando a perder un posible buen recurso. Por ejemplo, una vez en una entrevista me preguntaron que me gusta hacer en mi tiempo libre, para ese entonces aparte de codear jugaba bastante AD&D, entonces le conté que me gustaban los juegos de rol. La entrevistadora no conocía lo que eran entonces me pregunto mucho sobre el juego, mientras le contaba podía ver en su cara como me estaba hundiendo por que eso de andar matando Orcos con hachas mágicas en las cumbres de una montaña mientras un dragon rojo nos arrojaba fuego no sonaba muy cuerdo. En resumen, la empresa nunca mas me llamo, nunca mas conté que jugaba rol en una entrevista. Tengo varias anécdotas de colegas que pasaron por situaciones similares donde no pasaron la evaluación psicológica y por lejos esos profesionales eran fuera de serie.

Luego llegas a la entrevista técnica, acá normalmente te enfrentas al más “groso” de la empresa en la materia que vas a aplicar para trabajar y el primero trata de mostrarte todo lo capo que es el y lo basura que sos vos haciéndote preguntas de manual como que es el polimorfismo?, que es la complejidad algorítmica?, que es la complejidad ciclomática?, o cuantos afinadores de piano hay en una ciudad ?; yo fui uno de esos también en una época. Después de entrevistar a mucha gente me di cuenta que todo este tipo de preguntas es totalmente insignificante dado que se leen por la internet, los que mejor respondían eran lo que tenían mayor capacidad de memoria el resto siempre tiene miedo, vergüenza, no recuerda bien la definición, no sabe como expresarlo, pero todo esto no quita el potencial que puede llegar a tener el programador, ademas en un equipo de desarrollo no todo es técnico. Obvio que es mejor si lo entiende y lo sabe explicar, pero que lo sepa explicar no quiere decir que lo pueda aplicar.

El resto de los pasos son bastante obvios.

Lo malo del proceso para mi punto de vista es que en una hora hablando con otro programador es muy difícil poder determinar si sabe o no sabe programar, si tiene capacidad de trabajar en equipo, si tiene capacidad de aprender nuevas cosas o se va a quedar con lo que sabe, si realmente le gusta el trabajo, si puede hablar con el cliente, si puede negociar con el cliente requerimientos, si puede identificar las partes criticas del proyecto, si puede priorizar tareas, si puede estimar tareas, si esta familiarizado con un proceso de desarrollo organizado, si esta acostumbrado a trabajar offline, si responde rápido los mails, mensajes, chats, cuando no esta cerca.

Mas allá de las buenas prácticas del código un buen equipo de desarrollo necesita muchas componentes humanas para trabajar como una maquina bien aceitada, esas componentes humanas son difíciles de identificar en una charla de una hora. Identificar estas cuestiones lleva tiempo, hay que compartir con la persona, trabajar con ella, ver como se integra, como participa, como ataca los desafíos, como responde ante los problemas y después de ahi analizar si vale la pena o no.

Panorama Zonal

Viniendo a nuestros problemas regionales, como todos sabemos en la zona no abundan profesionales (ojo, en el Silicon Valley tampoco), a la mayoría hay que prepararlos y esto lleva tiempo y dinero.

Los profesionales deseables con experiencia están, por suerte para ellos, bien acomodados, con buenos trabajos y/o emprendimientos propios, no están abiertos a nuevas oportunidades generalmente.

Los que son buenos pero no se afianzaron están en la búsqueda permanente y desconfían de las startups por razones históricas zonales, buscan empresas grandes y/o organismos del estado para trabajar, creen que esa es su mejor opción.

Los recién salidos de las facultades, o los que se cansaron de ella, y salieron a buscar trabajos abundan, pero tienen muy poca experiencia y es difícil contratarlos para ponerlos a trabajar en un cliente, lleva meses prepararlos, y para cuando saben hacer un poco mas que conectarse a la base de datos y sacar un par de tablas se largan con su propio emprendimiento o se las toman para Baires, Cordoba u otras regiones con mas demanda laboral dejando el vació en la zona.

Nosotros tenemos una visión constructiva de la zona por eso apostamos a quedarnos y apostamos a conseguir gente de aquí, sabemos que hay profesionales, no nos gusta pensar que con 4 carreras de sistema en la zona no hay profesionales, pero sabemos que suele ser difícil llegar a ellos, creemos que es importante acortar la brecha de la empresa con la gente.

Los que recién empiezan

Algo que nos pasa muy muy seguido, son chicos que recién arrancan y nos piden para trabajar con nosotros, GRATIS, solo para aprender. Estos chicos son chicos que terminaron la facultad o están prontos a terminar, pasaron por un curso de las becas Control F, o fueron al Informatorio, o tienen una noción básica de un par de lenguajes pero nunca hicieron nada real.

Lamentablemente no podemos invitarlos a la empresa para que aprendan por varias razones, la principal es que no somos una escuelita y segundo por cuestiones de leyes laborales. Igualmente, nos duele no poder darles una oportunidad.

Otra situación que me pasa muy seguido con los chicos que recién empiezan es la siguiente.

Yo pregunto

“y en que proyecto estas trabajando”

me responden

“no en nada, por eso quiero un trabajo, para aprender, quiero ser Programador !”

Al final siempre les explico lo mismo

“para ser programador hay que programar, no se necesita un trabajo para programar, solo ganas de hacer algo”

Aquí me gustaría contar un poco de como comencé a programar.

Mis primeras lineas de código las hice sin saber lo que hacia, mi hermano se había comprado una TI/99 por el 91, esta era una computadora que conectabas al televisor de tu casa y cuando arrancaba iniciaba un editor de texto donde podías programar en Basic.





ti994

No teníamos unidad de almacenamiento así que cuando terminabas de usarla lo que programaste se borraba. Junto con el equipo venía un libro impreso con códigos fuentes de juegos en basic.

ti99games

Para ese entonces yo tenía 9 años y quería jugar, entonces mi hermano preparaba el equipo y me hacia tipear todo el código fuente del libro, una vez que terminaba de tipear el debugeaba lo que yo había escrito y jugábamos un rato, la escritura del código me llevaba horas, jugar solo un par de minutos, era una cosa increíble para mí.

No code nada por una largo tiempo hasta que llegue a la facultad, por el segundo año empece un taller de C++ con un profesor de apellido Bit Chakoch (me dijeron bien el apellido por el facebook). Este profesor era leyenda en la zona por que el y sus hermanos en los 90 crearon un virus llamado avispa y a su vez crearon un antivirus llamado Tornado (el cual yo había comprado por que mi 286 se infecto con el avispa). Tuve la suerte de asistir al único taller que dio en la facultad y fue increíble por que aprendimos muchisimo. Las dos cosas mas interesantes que obtuve de ese taller fueron que quería codear por el resto de mi vida y que conocí a grandes amigos como Beto, Marcos Leopold y a mi amigo y socio Marcos Ibanez, desde ese taller venimos codeando cosas juntos con Marcos Ibanez y hoy somos socios en 42mate.

Programe muchas cosas tontas en C++, lo mas interesante que hice fue un clon de Arkanoid pero que en vez de jugar de arriba hacia abajo este se jugaba de izquierda a derecha.

Después de ese curso, donde era muy macho por que codeaba en C++, cayo en mis manos un libro de Visual Basic 6.

visualBasic

Para ese entonces yo todavía les creía a los profesores de la facultad y varios decían que el Visual Studio y Visual Basic era lo mejor así que yo compré el buzón y me puse a aprenderlo, solo con ese libro por que para ese entonces no tenía internet en casa.

Para aprender me puse a migrar un juego de video poker que tenía en QBasic, lo migre con una interface de ventanas super copada, grave los audios del juego, migre los algoritmos para detectar si ganaste o no y mucho mas. Me pase casi 6 meses codeando ese juego, me entusiasme tanto trabajando en eso que perdí un par de materias de la facultad.

Todas estas cosas tontas que programe las perdí en formateadas de mi computadora que para ese entonces andaba muy muy mal por que tenia el disco roto y no tenía dinero para comprar un disco nuevo (cosa que nunca hubiese pasado si tenía Github).

Un día un amigo me pido un sistema para administrar su kiosco, así que me puse a hacerlo, Visual Basic 6 y MS Access, que es lo que se usaba por esa época, se lo hice, se lo instale, le enseñe a usarlo y hasta inventariamos el stock juntos, mi paga fue una hamburguesa, un par de birras y unos paquete de puchos.

Hasta aquí, todo un monton de trabajo que hice por nada, solo por que quería codear.

Meses mas tarde empezaron a aparecer otros kioscos que querían el sistema, yo necesitaba dinero, así que comencé a vender mi trabajo. Con el tiempo me canse de mantener ese sistema así que lo fui dejando de lado y dí prioridad a otras cosas, pero hay kioscos que todavía lo usan hoy en día.

Cosas como estas son las que espero escuchar de alguien que me dice “quiero programar”; que se siente, piense en algo que le haga falta o que le haga falta a algún conocido y se ponga a codear, por el simple amor a la programación. Si ganan dinero con ello mucho mejor, pero el objetivo debe ser hacer lo que les gusta primero, lo segundo es una consecuencia.

Ningún curso, charla, meetup, maestría, postgrado, trabajo, empresa los va a hacer programadores, solo programar los va a hacer programadores.

El Open Source

Hace tiempo leí un articulo acerca de la importancia de contratar del open source, buscar talentos mediante el open source es lo mejor, uno puede ver la iniciativa de la persona, sus intereses, la forma que interactúa con otros y hasta como codea, el gran problema es que en la zona es prácticamente 0 el número de desarrolladores que trabaja en proyectos abiertos lo que hace imposible ver sus habilidades y como se desenvuelve.

No pretendemos que la gente este codeando para el kernel de linux, pero si nos gustaría ver lo que codean en sus tiempos libre, de ahi ver cosas estas.

Ver el nombre del candidato en el ranking zonal Github Awards

github-ranking

Ver su ranking individual

github-ranks

Ver su actividad, sus contribuciones, sus proyectos, sus commits, sus organizaciones, etc.

github-profile

Por esto es que deseamos motivar a la formación de una comunidad de gente que se entusiasme a participar en el desarrollo de aplicaciones, librerías, herramientas, utilidades y otras cosas open source.

A las empresa les facilitará encontrar candidatos y al candidato le dará la oportunidad de demostrar sus habilidades mientras trabaja.

Esto es ideal para los chicos que recién empiezan y quieren trabajar como programadores, ahi van a tener su experiencia para entrar a trabajar donde quieran.

Cualquier persona que quiera trabajar como programador debería mostrar su trabajo en Github, Github es el verdadero portfolio de un desarrollador hoy en día.

Nota : Lease Github, Bitbucket, Gitlab, Sourceforge etc.

La conclusión

En 42mate todo el tiempo buscamos gente para sumar al equipo, somos un equipo pequeño y muy bien afianzado, cualquier persona que sumamos modifica la estructura del equipo en un grado significativo, por ello no podemos darnos el lujo de contratar a cualquiera. Es muy diferente nuestra situación en comparación a empresas grandes donde sos un numero mas para las estadísticas publicas y a nadie le importa si entras o salís.

Solemos publicar búsquedas de personal pidiendo CVs para conocer gente, como hacen todos, pero hasta ahora no fue muy satisfactorio.

Nuestro fuerte es el boca en boca, que nuestra misma gente con la que trabajamos refiera a la gente con la que quiere trabajar, pero por que quiere, no por que hay un bono económico en el medio (sino recomiendan a cualquiera por el bono).

Por todo esto que comento vamos a cambiar la forma en la buscamos candidatos para la empresa, de ahora en mas no seguiremos el flujo tradicional, vamos a probar con una forma nueva basada en el código publico que tengan en internet.

La propuesta es invitar a todos aquellos que les interese trabajar con nosotros a revisar nuestros proyectos open source en Github, vean que si hay algo que les interese.

A dichos proyectos deberán revisarlos, probarlos, toparse con problemas y resolverlos, cuando entiendan el proyecto queremos que encuentren algo que este mal, que incorporen alguna feature, que refactoricen el código y nos manden un pull requests con sus cambios. Osea, hagan algo y manden pull requests.

Así, mediante los pull request, veremos su potencial, su compromiso y las ganas que tienen para trabajar.

Obviamente, para esto seguramente van a necesitar ayuda, alguien que les explique algo de los proyectos, discutir una idea, etc, para esto tenemos disponible un canal de Kato, un sistema de chat, donde podrán encontrar a gente de 42mate que los ayudará a evacuar las dudas que tengan.

Si vos queres hacer tus propios proyectos por que no te gustan los nuestros, invitanos a participar de tu proyecto en Github, pedí ayuda por Kato y así vamos viendo lo que haces y te vamos conociendo. No buscamos que colaboren solo en nuestras ideas sino que ustedes mismos se auto promuevan y auto trabajen para generar su propia experiencia.

En resumen, queres aprender a programar ?, te gustaría tener experiencia para entrar a trabajar a una empresa ?

  • Sumate a nuestros canales de Kato
  • Mira nuestros proyectos Open Source en Github o inicia el tuyo
  • Trabaja y Colabora con Pulls Requests
  • Si nos gusta tu trabajo te consideraremos, sino te daremos feedback para que mejores
  • Si no logras trabajar con nosotros, proyectos serán públicos y podes ponerlo como experiencia en tu CV

Todavía esta super verde esta idea y no tenemos claro cuantos pueden llegar a estar interesados en engancharse, de igual modo lo intentaremos.

Para entrar a nuestro Chat Room en Kato usen este link

http://go.kato.im/gAezLJEQ

Que los hará parte de nuestra organización publica. Una vez que accedan al link usen un mail y un password para darse de alta, si es su primer login en kato se les enviará un email para activar la cuenta y una vez que entren verán algo así

kato

Y bueno, de ahi a chatear.

Los invito a que me den sus opiniones sobre esta idea, ya sea en los comentarios del blog, por mail o por kato :).

7 responses to “No mas curriculums, show me the code !”

  1. Luis

    muy buen post Agustin !!!

  2. Fernando

    Lo mejor que leí al respecto del tema en mis pocos años de experiencia codeando. Saludos!

  3. Franco

    Excelente articulo!. Comparto la emoción.

  4. Marcos

    Muy buen artículo Agustín!! Comentando tu experiencia, guiando, recomendando, compartiendo, colaborando. Excelente!! Creo que les va a ir muy bien con su propuesta! Éxitos!!

  5. Martin Frisone

    muy buena articulo! Me parece muy copado que cambien las reglas para reclutar…
    aunque no lei toda la parte de como empezaste a programar 😛

  6. Moises

    Excelente articulo. Como siempre demostrando la experiencia y tratando de guiar a los demás a alcanzar sus objetivos en un mundo donde salirse de los estandares esta mal visto. Gracias por estos aportes.!!

Leave a Reply

Your email address will not be published. Required fields are marked *

*