Lista de Espera

Quiero ser uno de los primeros en recibir la tarjeta de crédito Nu

Por favor revisa que tu nombre sea correcto. Por favor revisa que tu nombre sea correcto.
necesitamos un correo electrónico valido. necesitamos un correo electrónico valido.

Al ingresar tus datos aceptas nuestro Aviso de Privacidad.

Home Clojure: el lenguaje de ...

Clojure: el lenguaje de programación que utilizamos en Nu

Por qué elegimos esta tecnología y cómo la usamos para combatir la complejidad y empoderar a las personas

Nubank nació con el sueño de revolucionar los servicios financieros en Brasil y en el mundo. En 2014, lanzamos el primer producto: una tarjeta de crédito sin comisiones. Hoy somos la empresa más innovadora de América Latina y el banco digital independiente más grande del mundo, con más de 18 millones de clientes. 

Dentro de los productos financieros se encuentra NuConta (una cuenta de ahorros digital), Nubank Rewards (un programa de recompensas); Lending (préstamos para consumos personales); y Conta PJ, (una cuenta digital para pequeñas y medianas empresas.) Estos últimos son los más recientes, anunciados el mismo año en el que se llevó a cabo el lanzamiento de nuestras operaciones en dos nuevos países latinoamericanos: México y Argentina.

¿De dónde viene nuestro éxito? Lejos de ser una compañía financiera per se: somos una compañía de tecnología, enfocada en desarrollar soluciones financieras. La tecnología está en el corazón de todo lo que hacemos por lo que la ingeniería de software es clave en nuestro día a día.

Nos esforzamos por mantener prácticas de desarrollo de software de vanguardia. En Nubank, disfrutamos de los beneficios de haber adoptado conceptos prácticos de programación funcional para construir nuestro negocio desde un inicio. Estos conceptos juegan un papel importante en la claridad y la consistencia de nuestro código fuente, por lo que es importante que los ingenieros los entiendan en cuanto se suman a la empresa.

Estos son algunos ejemplos de prácticas y técnicas que empleamos:

  • Microservicios escalables horizontalmente, escritos las mayoría de las veces en Clojure, usando Finagle, aprovechando técnicas de programación funcional y arquitectura hexagonal (más sobre eso en este video);
  • Trabajos de alto rendimiento y comunicación entre servicios utilizando Kafka;
  • Integración continua y deployment (puesta en producción) en AWS, usando Kubernetes; 
  • Almacenamiento de datos con Datomic y DynamoDB;
  • Monitoreo y observabilidad con Prometheus.

Dato curioso: la mayoría de nuestros ingenieros nunca habían trabajado con estas tecnologías, ni habían estado en contacto con servicios financieros. Sin embargo, desarrollamos herramientas que nos permite incorporarlos de manera ágil al ecosistema creado. 

¿Por qué Clojure y programación funcional?

Los sistemas que la mayoría de los ingenieros utilizábamos antes de sumarnos a Nubank consistían en lenguajes y frameworks que nos obligaban a agregar muchas líneas de código para resolver un solo problema, dificultando la evolución del sistema.

Clojure, en cambio, tiene construcciones simples que nos permiten centrarnos en el problema que estamos resolviendo, logrando que la evolución del sistema sea un desafío incremental: se vuelve más fácil con el tiempo.

La mayor parte de nuestro código fuente se puede entender localmente, cualquier función pura dada, entendiendo sus salidas para cualquier conjunto de entradas. Rara vez hay necesidad de razonar o recrear el estado interno de los objetos. La información se mueve a través del sistema de una manera consistente e inmutable, por lo que es fácil componerla e inspeccionarla (sin encapsularla en un objeto).

Hemos creado una serie de herramientas internas en Clojure en los últimos seis años, que nos ayudan a ser más rápidos y a escalar nuestros productos a un ritmo acelerado. Con Clojure, podemos crear nuevos productos de manera sencilla. Cuando se trata de infraestructura, por ejemplo, tenemos un pipeline de entrega continua que permite que cualquier cambio al código fuente en GitHub se ejecute en producción en 30 minutos. Esto se logra con la ayuda de archivos declarativos de configuración EDN, que definen cómo la implementación y el pipeline se componen. 

El código funcional es mucho más fácil de probar, y eso nos da la confianza para implementar un promedio de más de cincuenta cambios por día por microservicio.

La velocidad es crucial en Nubank, ya que la base de clientes va en aumento y cada vez llegamos a más países. Además, nuestros productos y estructura están en constante evolución, por lo que estamos en busca de nuevo talento.  

Ingeniería en Nu

Actualmente contamos con más de 400 ingenieros trabajando desde nuestra sede en São Paulo, nuestro hub de ingeniería en Berlín y nuestras oficinas en Ciudad de México y Buenos Aires. Asimismo, fomentamos un entorno global y diverso ya que nuestro equipo proviene de 30 países diferentes- aunque nos comunicamos en inglés la mayor parte del tiempo.

Estamos buscando personas que realmente se apasionen por lo que hacen y quieran resolver problemas complejos, mientras trabajan en un entorno seguro y acogedor. Queremos que se unan al equipo quienes tengan ganas de generar un impacto positivo en la vida de millones de personas; devolviéndoles el control de su dinero.

Introduzca su nombre

Quiero recibir la newsletter