Hace ocho meses recibí una oferta para trabajar en Nu Colombia como ingeniero de software para el backend. El backend es la parte del desarrollo web que el usuario no ve, como la comunicación con el servidor o la compresión de las imágenes en la web. El backend representa, por buscar una analogía con la arquitectura, las vigas de un edificio.
Los ingenieros de backend somos, por así decir, quienes construimos las condiciones “detrás de escena” para que Nu sea eficiente en devolver el control del dinero a todas las personas que usen nuestros servicios.
El primer día
El 1 de junio de 2021 fue mi primer día en Nu Colombia. No siempre esos primeros momentos en un trabajo son los mejores: puede ocurrir que no tengamos todos los accesos que necesitamos; o que sintamos resquemor por no conocer a nuestros nuevos compañeros; o sencillamente que no sepamos qué hacer.
Sin embargo, ese primer día en Nu, estaba muy contento: llegaba a la compañía que estaba generando un cambió significativo en la experiencia financiera y el servicio al cliente en Latinoamérica. Estaba feliz de hacer parte de esta transformación. Tenía muchas ganas de aprender y adaptarme rápido. De comenzar.
Un dato: siete de cada diez personas en Colombia no usa ningún producto financiero al mes. En ese sentido, los ingenieros de software tenemos mucho para aportar a la democratización del acceso a las finanzas en el país.
El onboarding de backend en Nu: las primeras tres semanas
Empecé en Nu lleno de curiosidad por entender en qué me había metido. Desde entonces, cada día ha sido como el primero: empiezo todas las mañanas con ansias y curiosidad, y lo termino lleno de aprendizajes y algunas preguntas y retos para el día siguiente.
Lo cierto es que después de pasar por un proceso de contratación -que fue tan desafiante como amigable-, inicié formalmente un proceso de onboarding.
El “onboarding” es un concepto prestado de la aviación, y se trata del proceso de inducción que se hace con los nuevos empleados o, como decimos en Nu, los Nuvinhos y las Nuvinhas. En este proceso se hace una introducción a la cultura de la empresa, su historia, su misión y su propósito.
En otras palabras, es, para la vida profesional, como subirse a un avión: una mezcla de emoción y nervios. Como diría el Loco René Higuita, “Se siente ese sustico bacano”. Todo el proceso de onboarding en Nu tiene una duración de unas tres semanas. En mis quince años de vida profesional, nunca viví un onboarding parecido.
De hecho, hay tres cosas que viví en el onboarding de Nu que han sido de novela. Aquí las enumero.
1. La bienvenida de David Vélez
Por empezar, quiero destacar la charla que David tiene con los Nuvinhos cada mes acerca de la cultura de Nu y de los valores que nos hacen lo que somos. Aquí trabajan miles de personas. Y David, según me han contado, ha recibido a cada uno de los Nubankers desde el inicio.
En los comienzos de la compañía lo hacía de uno en uno. Hoy hay decenas de personas cada mes asistiendo a sus conversaciones, que son más que estimulantes. Lastimosamente, han sido todas virtuales en los últimos dos años, por la pandemia del Covid.
David habla con una pasión que contagia. Una pasión que nos lleva a creer fervorosamente en nuestra misión. A saber que en nuestras manos está liberar a millones de personas de las ataduras de un sistema financiero obsoleto, lleno de burocracia y letras menudas en los contratos.
Recuerdo que ese día David contó qué lo motivó a iniciar la compañía. Entonces decidió enfrentarse a un sistema que trata a las personas con desconfianza, que se beneficia de procesos excesivamente complejos, donde los costos de la ineficiencia y la burocracia son pagados por los clientes. En síntesis, se enfrentó a un sistema que contribuye enormemente a la gran desigualdad que tanto daño hace a América Latina.
Esa charla y esas ideas me siguen quedando en la cabeza.
2. La humildad de los Nubankers
Como decimos por acá, en Nu todavía estamos en el primer segundo, del primer minuto del primer día. Hay mucho por hacer. Pero es innegable que Nu ha logrado cosas extraordinarias en apenas ocho años. El último gran escalón fue haber hecho pública la empresa en la Bolsa de Nueva York y de Brasil, en diciembre de 2021.
Por eso, fue muy gratificante conocer a mis compañeros y compañeras. En las presentaciones, se comprobaba que en cada Nubanker había mucha transparencia y sinceridad; y que, si bien todas eran personas que habían hecho contribuciones relevantes para hacer “uno de los 50 bancos más grandes del mundo” (Nubank), hablaban con una humildad increíble.
Cada compañero y compañera tenía muchas ganas de compartir y de hacernos sentir a cada uno de los Nuvinhos que podíamos ayudar a construir algo realmente significativo.
Y, más importante aún, ayudar a reducir la complejidad en el acceso a servicios financieros, a desafiar el status quo.
3. Mi inicio en el lenguaje funcional: ¡Hola, Clojure!
Como parte del onboarding cada día se aprende algo relacionado con el negocio, los productos, los clientes. En el caso de ingeniería, tenemos el espacio para aprender programación funcional, Clojure, y las demás tecnologías que se usan internamente.
En Nu, usamos Clojure porque “tiene construcciones simples que nos permiten enfocarnos en el problema que estamos resolviendo, haciendo que la evolución del sistema sea un pequeño desafío incremental, que no se vuelve mucho más difícil con el tiempo”, escribe Lucas Cavalcanti (en colaboración con Wilker Lúcio), un ingeniero que está desde 2013 en Nubank Brasil.
En mi caso particular, siendo un desarrollador de software que trabajó durante muchos años con Java, casi todo lo que se me presentaba era novedoso.
Al estar escrita en un lenguaje funcional, nuestra base de código se puede entender localmente, es fácil razonar sobre las funciones a partir de sus entradas ya que no hay efectos colaterales. Rara vez es necesario recrear el estado interno de los objetos. Los datos se mueven a través del sistema de una manera componible, inspeccionable, consistente e inmutable.
La mob session
Cuando me hablaron de “mob session” vino a mi mente el término “flashmob”, del que escuché alguna vez hace varios años en una campaña política. El flashmob consistía en armar una multitud en lugares concurridos de forma “espontánea” para bailar y promocionar al candidato.
En Nu, una mob session o mob programming es juntarse entre tres o cuatro Nuvinhos con un Nubanker más viejo –un Velinho– y hacer código en un mismo computador siguiendo los lineamientos de desarrollo de Nu. Ahí vamos absorbiendo las cosas que se hacen en el día a día. La idea es perder el miedo a mandar lo hecho a producción.
Se trabaja así:
- El Velinho nos da contexto del problema que vamos a resolver, en qué microservicio, qué funcionalidad y cómo afecta a los clientes.
- Los Nuvihos escribimos código por turnos de unos 15 a 20 minutos.
- Todos vamos observando y vamos dando ideas, recomendaciones, feedback al que está escribiendo.
- En el proceso se van validando las cosas que fuimos estudiando de Clojure, y compartimos experiencia y conocimiento.
- Se siguen los lineamientos de Nu para el código; se deben escribir pruebas unitarias y de integración, siguiendo todos los estándares.
- Al final, la idea es que lo que se haga se envíe directo a producción.
Desde la cultura de Nu, equivocarse no está mal. Lo que sí está mal es no intentarlo: los errores pueden ser enmendados. La inacción es demorarse demasiado.
Primeros pasos con el equipo: trabajar con un “buddy”
Al final del onboarding, y de manera gradual, me fui acercando al que sería mi equipo: Facturación o Bills, en la jerga. Este equipo se dedica a hacer posible que cada cliente reciba el extracto de su tarjeta de manera oportuna cada mes, con la suficiente claridad para entender qué se está cobrando, por qué se le cobra y en qué plazos debe pagarlo.
Asimismo, debemos facilitar el acceso a los extractos y balances desde la aplicación. En esta instancia se me asignó un buddy, un compañero, es decir un “socio en el crimen”, quien me ayudó en mi proceso de adaptación.
También empezaron una serie de reuniones con personas clave para entender los desafíos que estábamos enfrentando y los que nos esperaban en los siguientes meses.
Después de hablar con las personas encargadas del Diseño del Producto y de las Relaciones con los Clientes me quedó claro:
- Qué queríamos construir;
- Qué estaban pidiendo los clientes;
- Qué mejoras teníamos pendientes para hacer posible el crecimiento de nuestros servicios.
- Y no menos importante: de qué manera yo podía contribuir para que esa visión que ahora compartíamos se hiciera realidad.
Mi trabajo en backend de Nu
Hoy, dentro del equipo me encargo de:
- Agregar funcionalidades y garantizar que se entreguen a los clientes de forma controlada;
- Resolver errores que afecten la disponibilidad de extractos o de información relevante en la app;
- Participar en el diseño de productos y servicios;
- Revisar código.
Muchas de las iniciativas involucran personas de diferentes roles, países y equipos, por lo que tenemos la oportunidad de aportar más allá del código.
Ya a los ocho meses de estar en Nu, ahora estoy del otro lado: soy un buddy que acompaña a un Nuvinho en el proceso de adaptación al trabajo. Nos reunimos con cierta frecuencia, dejando que el ritmo lo maneje el recién llegado de acuerdo a sus necesidades.
Los beneficios de ser dos: “codear” con un par
Una de las cosas que ha supuesto para mí un cambio sustancial en la forma en que veo el desarrollo de software es el hecho de hacer constantemente “pair coding”. Al comienzo, no me sentía del todo cómodo pero son tantas las ventajas que he visto que ahora lo disfruto y siento que es la mejor manera de construir software.
Básicamente hay una revisión permanente y en tiempo real del código que escribimos. Retroalimentación inmediata.
El tiempo que destinamos, depende del proyecto. Pueden haber sesiones cada día, de dos o tres horas. Uno de los programadores comparte su entorno de desarrollo y empieza a resolver el problema o escribir alguna prueba. Los demás primero observamos y vamos haciendo preguntas y/o recomendaciones.
En determinado momento, se cambian los roles; al alternar entre “desarrollador” y “observador” se filtran muchos más errores. También, nos hacemos preguntas y nos ayudamos a comprender si lo que estamos haciendo tiene sentido o no.
Compartimos código, compartimos artículos que leímos en la web, los leemos, discutimos acerca de su pertinencia para resolver el problema que tenemos a la mano.
Realmente, al final, se siente que el resultado que logramos de cada sesión es mucho mejor que lo que resultaría de tener a cada persona programando por separado.
Como beneficio adicional, el conocimiento no se concentra en una sóla persona, si no que se distribuye entre varios miembros del equipo, lo que facilita el soporte y la evolución de cada proyecto.
Armar el equipo de backend en Nu: ejercicios de whiteboarding
En Nu Colombia también tenemos la posibilidad de participar en el proceso de contratación. Buscamos compañeros y compañeras de equipo. Básicamente, nos interesan personas con quienes llevar a cabo una sesión constructiva de “pair coding” o de “whiteboarding”, que nos permita anticipar cómo puede ser el trabajo con él o ella en el día a día.
El whiteboarding básicamente es -en tiempos sin Covid- juntarse alrededor de un tablero y comenzar a diseñar una solución para un problema determinado, seguramente en la app de Nu.
Dibujamos las que serían las pantallas de la aplicación, la comunicación con el backend, los servicios necesarios y las comunicación entre ellos y las bases de datos. Al final tenemos un conjunto de cajitas conectadas con flechas a las que les damos un significado.
Se cuestionan acerca de la escalabilidad y el desempeño, la posibilidad de anticipar cuellos de botella y proponer posibles soluciones en cada caso. Básicamente, whiteboarding es hacer un diseño en un tablero. Son sesiones en las que diseñamos la solución para un problema.
El candidato es el líder
En el contexto de las entrevistas de trabajo, los Nubankers colaboramos con la persona que se candidatea para hallar la solución. Le damos feedback para ver cómo responde, para ver si es receptivo/a y, al mismo tiempo, confiad/a de lo que sabe. Y también que tenga criterio: buscamos una persona que pueda tomar decisiones por sí misma.
Entonces, allí sabremos cómo será trabajando en el día a día: si el equipo va a ser más productivo y de más calidad con él o con ella.
Qué buscamos en backend en Nu
Empecemos por derribar supuestos. No se busca que la persona ya tenga conocimientos en lenguajes o tecnologías específicas, pero sí que demuestre capacidad e interés para aprenderlas.
En mi caso particular mis experiencias laborales más destacadas habían sido con el lenguaje Java y obviamente con programación orientada a objetos.
Además, nos interesa descubrir cómo sería trabajar con cada candidato/a. De allí, damos el consejo de su contratación o no.
En síntesis, en Nu buscamos personas profesionales:
- Abiertas a escuchar las ideas de otras personas y dispuestas a compartir su conocimiento;
- Que tengan la convicción para seguir su camino y la flexibilidad necesaria para ajustar e incluir las ideas de otros sobre la marcha;
- Que pueden argumentar con solvencia;
- Que sean conscientes de lo que saben y de lo que tienen por aprender;
- Que se puedan alinear con la cultura y la forma de trabajo de Nu;
- Que sean capaces de construir a partir de la diferencia.
Ojalá lo anterior le sirva a todos las personas que se postulan para trabajar con nosotros. Principalmente para Nu Colombia, pero también en nuestras oficinas de Brasil, México, Argentina, Alemania y Estados Unidos.
Trabajar en Nu ha sido una experiencia tan estimulante y tan disruptiva en mi carrera que he querido compartirla en este posteo.
Purple Code
Este es un artículo de la Serie Purple Code, destinada a mostrar cómo trabajamos en Nu Colombia para derribar los muros de la complejidad financiera y devolverle a las personas el control de su dinero.
Si quieres leer más de esta serie de artículos, sigue por acá:
- “¿Cómo funciona la ingeniería de software de Nu?”
- “Trabajar en Nu y convertirse en un #CodeStar de la ingeniería de software”
- “¿Cómo es el proceso de entrevistas para contratar ingenieros de software en Nu?”
- “El software se comió al mundo; entonces, ¿qué hay de postre”
- Programadores: conoce quiénes componen el equipo de ingeniería de Nu