Home ¿Cómo funciona la inge...

¿Cómo funciona la ingeniería de software en Nu?

Desde las notificaciones de compra en tiempo real, hasta el increíble servicio al cliente 24/7, nuestras ingenieras e ingenieros están detrás de todo lo que hacemos.

Existe un grupo de personas que está cambiando el futuro, haciendo más fácil la vida de las personas. Ellas y ellos, desafían el statu quo y luchan a diario contra la complejidad, son los #CodeStars

Porque en Nu, los ingenieros son más que códigos y soluciones, son el motor de la revolución morada. Gracias a ellos podemos sacudir el sistema al ser una empresa de tecnología que ofrece servicios financieros.

Todo lo anterior significa que la tecnología y todos los engranajes de programación que la mueven, son nuestro motor principal. Por eso, las ingenieras e ingenieros en Nu son los encargados de romperla con todo lo que se mueve detrás de nuestro servicio, y hoy queremos hablarte sobre cómo se desarrolla su labor dentro de la empresa.

En esta entrada, nuestro CodeStar Francisco Hernández, Senior Software Engineer, nos explica algunos de los puntos más importantes para entender cómo funciona la ingeniería de software en Nu.

¿Cómo están estructurados los equipos de ingenieros en Nu?

Para hablar de esto, primero debemos explicar cómo es la estructura organizacional de Nu.

Buscamos organizar nuestra estructura para dar más flexibilidad y autonomía a los equipos, dividiendo a las personas en squads, chapters (tenemos el chapter de ingeniería) y tribes. Cada squad es libre de elegir la metodología de desarrollo que mejor se adapte a sus necesidades, y por lo que hemos visto la mayoría se identifica con una mentalidad “Agile”.

Los squads son equipos de trabajo interdisciplinarios en los que las personas trabajan por los mismos objetivos; como crear un nuevo producto,  solucionar algún problema en producción, o iniciar operaciones en un nuevo país.

Cada squad reúne a personas de diferentes chapters. Un chapter define el tipo de papel que desempeña una persona: tenemos el chapter de ingeniería, diseño, servicio al cliente y más. Esto refuerza nuestro valor para construir equipos fuertes y diversos, ya que es uno de los valores principales de Nu, que nos permite enriquecer el intercambio entre personas con diferentes perspectivas y habilidades.

Y finalmente, los squads con mayor afinidad están dentro de la misma área, llamada tribe – aquí en Nu, por ejemplo, tenemos tribus de Crédito, Financing, Marketing, People, y otros tantos.

Pero, ¿qué pasa con los equipos de ingeniería?

En Nu, trabajan más de 700 ingenieros a nivel global, todos ellos divididos en más de 45 equipos diferentes. Esto significa que no existe un lugar físico y predeterminado para concentrar a los ingenieros, están repartidos en diferentes espacios, proyectos y productos.

Nuestro chapter de ingeniería se encuentra repartido en cinco países: Brasil, donde se encuentran nuestras oficinas centrales; Berlín, donde contamos con un equipo de ingeniería de datos; México y Colombia, donde también iniciamos operaciones en el 2019 y 2021, respectivamente, así como un centro de desarrollo en Argentina. Por lo anterior, en algunos casos existe mucha movilidad de proyectos entre países por lo que la colaboración se vuelve orgánica y cercana.

Para que todo esto funcione, la estructura de ingeniería de Nu es bastante flexible.

“Los ingenieros e ingenieras en Nu interactúan diariamente con distintas disciplinas (marketing, producto, diseño, customer excellence, etc.) por lo que desarrollan habilidades de comunicación adaptativas que les permiten transmitir de manera efectiva conceptos complejos de ingeniería”, dice Francisco J. Hernandez, Software Engineer del squad de Financing.

Por lo tanto, combinamos lo mejor de cada persona con nuestra estrategia para ganar escala, ya sea en número de clientes o expandiéndonos a nuevos segmentos y ubicaciones.

¿Cuál es el papel del chapter de ingeniería en Nu?

Nu es una empresa de tecnología, por lo que todo lo que hacemos se basa en la ingeniería y por lo tanto necesitamos ingenieras e ingenieros para casi todo: datos, mobile, frontend, backend, etc.

Cada squad tiene ingenieras e ingenieros que se encargan de desarrollar e implementar nuevos productos y sus funciones, así como de corregir potenciales errores en la plataforma. Estos ingenieros trabajan en pares y/o en grupos (pair/mob programming) para compartir conocimientos y experiencias, facilitando también el proceso de revisión de código (PR review).

Para apoyar la productividad de los ingenieros, existen equipos responsables de crear herramientas que ayuden a los desarrolladores en su vida diaria. Un ejemplo es una herramienta que permite probar la estabilidad entre diferentes servicios, asegurando una comunicación fluida y consistente end-to-end: hay más de 900 microservicios diferentes en Nu.

Además, contamos con un equipo que trabaja para asegurar que los ingenieros e ingenieras de Nu tengan el entorno necesario para trabajar de la mejor manera. Su función es ver cómo se pueden simplificar procesos, herramientas que se pueden optimizar, entre otras funciones.

¿Cuáles son las tecnologías utilizadas en Nu?

Como ya dijimos, la ingeniería de Nu es enorme y, por tanto, necesitamos tecnologías que nos permitan crecer de forma eficiente, rápida y segura. La mayoría de los servicios de Nu están escritos en Clojure y usamos Datomic como nuestra base de datos.

“Como empresa de tecnología financiera, los datos son una parte fundamental en el día a día, por lo que un lenguaje de programación funcional que tenga la inmutabilidad de los datos como uno de sus principales pilares es esencial para nosotros. Si a esto le añadimos una base de datos inmutable que nos permita ver cómo era la información en distintos puntos en el tiempo, nos da como resultado un stack tecnológico confiable”, menciona Francisco.

“En 2019, organizamos el evento de Clojure más grande de América Latina: Clojure South”.

Además, utilizamos otras tecnologías que funcionan bien con Clojure, como la base de datos Datomic, y Kafka como plataforma de mensajería que nos permite producir/consumir más de 9 mil millones de mensajes por semana.

​​Si bien, tanto Clojure como Datomic son tecnologías fundamentales en Nu, no se ubican como mandatorios para los nuevos ingenieros que se integran al equipo. Dentro de Nu existen programas especializados para convertir a cualquiera de ellos en un experto en el tema. Es por eso que nos diferenciamos en el uso de estas tecnologías. Al final, buscamos ingenieros con hambre de aprender, con conocimientos sólidos en sistemas distribuidos y la convicción de liberar al mundo de la complejidad financiera.

¿Cómo es el flujo de trabajo de ingeniería?

La ingeniería tiene un papel fundamental en Nu y todo se hace con el cuidado necesario que requiere una operación del tamaño de la nuestra. Nu tiene más de 40 millones de clientes repartidos en Brasil, México y Colombia.

La demanda del equipo de ingeniería puede provenir de los propios ingenieros, de los gerentes de producto, de los Xpeers, quienes escuchan los comentarios de los clientes a diario, o de cualquier otra área de Nu. Por lo tanto, los ingenieros deben estar listos para interactuar con personas de cualquier disciplina.

Un flujo de trabajo común puede verse de la siguiente manera:

  1. Tenemos la ambición de lanzar un nuevo producto/feature;
  2. El gerente de producto crea un Product Requirements Document;
  3. El equipo de ingeniería revisa el documento y con base en los requerimientos el equipo agenda una reunión de trabajo (whiteboarding/brainstorming session) para generar un Request For Comments Document con una potencial solución que se comparte con el chapter de ingeniería, para que todos tengan la oportunidad de contribuir, comentar y aprender;
  4. Cuando este documento se considera listo, se procede a crear las diferentes tareas para la implementación de la solución.

Una vez finalizada la codificación de algún componente se abre un Pull Request en Github, donde otros ingenieros pueden comentar, sugerir y aprender sobre la solución desarrollada. En cada commit se ejecutan las respectivas pruebas de unidad y de integración, tanto las existentes como las nuevas que se tuvieron que añadir para cubrir el nuevo código.

Cuando el PR es aprobado, se hace un merge con la rama main, y este merge es un trigger para nuestro pipeline de despliegue a producción. “No hay nada manual, todo es automático, tan solo es necesario hacer click en squash and merge para que un porcentaje de nuestros clientes comiencen a ver la nueva versión de Nu. Hacemos alrededor de 800 deploys por semana”, añade Francisco.

¿Cuál es el papel del chapter de ingeniería en la internacionalización de Nu?

A medida que Nu crece, los desafíos del equipo de ingenieros también aumentan. Además de asegurar la estabilidad de los servicios en Brasil para seguir ofreciendo excelencia para nuestros clientes brasileños, también necesitamos preparar, evolucionar y adaptar nuestra plataforma para las operaciones en México y Colombia.

Parece fácil replicar un modelo exitoso en otros países, pero las características del sistema financiero de cada uno son muy específicas. La misión de nuestro equipo es crear una base igual para todos los países y agregar módulos de acuerdo a las características de cada lugar.

“Recientemente Nu lanzó las Compras Diferidas, un nuevo producto de financiamiento mediante el cual, desde la aplicación móvil, puedes diferir una compra a meses con una tasa de interés muy baja. Este producto se creó en México y al día de hoy está funcionando en México y Brasil, desde la ideación del producto quisimos que fuera internacional, así que hicimos todo lo necesario para que desde el día uno pudiera ser efectivo en más de un país, solo hacía falta configurar las particularidades de cada región para que fuera posible”.

“Lo que más me encanta de Nu, es que hay lugar para las ideas locas, se analizan y si los datos te dan la razón tienes bandera verde, autonomía y recursos para llevarlas a cabo. Al final del día: It’s just Day One”, concluye.

Si lo tuyo son los códigos, así como Francisco, tú también puedes desafiar lo establecido.

Atrévete a formar parte de esta revolución morada, checa aquí las oportunidades para unirte a nuestro equipo de ingeniería. Aplica a las vacantes disponibles dando clic sobre cada una de las posiciones:

Mobile Software Engineer

Software Engineer 

Senior Software Engineer

Si quieres conocer más sobre la ingeniería de software en Nu, habla con Francisco, haz clic aquí para contactarlo.

Este contenido es parte de la misión de Nu para devolver a las personas control sobre sus vidas financieras. ¿Aún no conoces Nu? Obtén más información sobre nuestro servicio y nuestra tarjeta de crédito sin complicaciones, da clic aquí.

Introduzca su nombre