Home Un relato corto sobre el...

Un relato corto sobre el trabajo con Clojure en Nu

Conoce por qué elegimos esta tecnología y cómo la utilizamos para combatir la complejidad y empoderar a las personas

Nu ha cambiado el panorama de los servicios financieros, comenzando en Brasil en el 2014. Desde entonces, hemos crecido hasta convertirnos en la empresa más innovadora de América Latina y la institución financiera digital e independiente más grande del mundo, con más de 40 millones de clientes a nivel global. En 2019 iniciamos operaciones en México con el lanzamiento de una tarjeta de crédito sin comisiones que llegó para eliminar la complejidad financiera.

Gran parte de nuestro éxito proviene del hecho de que no somos una empresa financiera per se: somos una empresa de tecnología enfocada en el desarrollo de soluciones financieras. En otras palabras: la tecnología está en el corazón de todo lo que hacemos, por lo que la ingeniería de software y nuestros #codestars son  una parte central de Nu.

Nos esforzamos constantemente por integrar prácticas de desarrollo de software de vanguardia; hemos alcanzado importantes beneficios al adoptar conceptos de programación prácticos y funcionales para desarrollar nuestro negocio. Estos conceptos juegan un papel esencial en la claridad y consistencia de nuestro código, y nos esforzamos mucho para asegurarnos de que nuestros ingenieros e ingenieras los comprendan cuando se unen a la empresa. Este fue el caso de nuestro #codestar Roberto Olguín, Senior Software Engineer en Nu México, quien nos relata su experiencia y visión, trabajando con Clojure dentro de Nu.

Prácticas y técnicas

“Ya había escuchado de Nu, y cuando buscaba mi siguiente lugar para trabajar mire el video de la arquitectura hexagonal que se utiliza aquí y me terminé de convencer, realmente quería aprender el stack tecnológico de Nu. Me parecía que desde la perspectiva profesional esto enriquecería mucho mi carrera, y así fue.

Al incorporarme a Nu me encontré con el siguiente conjunto de prácticas y técnicas:

  • Microservicios escalables horizontalmente escritos principalmente en Clojure, usando Finagle y aprovechando técnicas de programación funcional y arquitectura hexagonal (Conoce más sobre el tema en este video, da clic aquí);
  • Trabajos de alto rendimiento y comunicación entre servicios con Kafka;
  • Integración e implementación continuas en AWS;
  • Almacenamiento de datos en Datomic y DynamoDB;
  • Monitoreo y observabilidad con Prometheus;
  • Desplegando tanto como sea posible en Kubernetes”.

“Es interesante notar que la mayoría de los compañeros ingenieros e ingenieras, nunca habían trabajado con este conjunto de tecnologías, particularmente con Clojure”.

“Al final son solo herramientas, por lo que no resulta fundamental saber mucho al respecto o conocerlas a la perfección. Cuando alguien quiere integrarse a Nu estas se pueden aprender desde cero y Nu nos facilita esa opción una vez que se completa el proceso de contratación”.

“De la misma forma muchos elementos de nuestros equipos tampoco habían estado en contacto con el universo de los servicios financieros. Sin embargo, en ninguno de los casos ha resultado en un contratiempo para la contratación de ninguno de nuestros ingenieros o ingenieras”.

Aplica a las vacantes de ingeniería disponibles dando clic sobre cada una de las posiciones:

¿Por qué Clojure y una programación funcional?

“El mundo en el que vivimos tiene cómputo en la nube, con múltiples núcleos que nos permiten ejecutar varias cosas en paralelo. Además, Nu brinda servicios en el dominio de las finanzas, que está muy cerca de las funciones matemáticas, y la programación funcional es una excelente opción para ambos escenarios”.

“Los sistemas anteriores que se habían construido, antes de que Clojure se uniera a Nu, usaban lenguajes y frameworks que obligan a agregar demasiado código estándar para resolver un problema, lo que hace que la evolución del sistema sea cada vez más difícil con el tiempo. Clojure, por otro lado, tiene construcciones simples que nos permiten enfocarnos en el problema que estamos resolviendo, lo que hace que la evolución del sistema sea un pequeño desafío incremental, y que no se vuelve mucho más difícil con el tiempo”.

“La mayor parte de nuestro código se puede entender localmente, mirando 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. Los datos se mueven a través del sistema de una manera componible, inspeccionable, consistente e inmutable (sin esconderlos dentro de los objetos)”.

Clojure, una base para herramientas sólidas

“Hemos creado varias herramientas en Clojure durante los últimos años: herramientas útiles que nos ayudan a ser más rápidos y escalar a un ritmo acelerado”.

“Con Clojure, podemos crear nuevos productos sin esfuerzo. Cuando se trata de infraestructura, por ejemplo, tenemos un proceso de entrega continua que permite que cualquier cambio dado/realizado en la rama master de Github este liberado en producción en 30 mins. Eso se hace con la ayuda de archivos de configuración EDN declarativos que definen cómo será el pipeline y el despliegue. El código funcional es mucho más fácil de probar y eso nos da la confianza para implementar muchísimos cambios por día en un dominio de misión crítica”.

​​”Me entusiasma mucho cuando les comento a los nuevos ingenieros (nuvinhos) que una vez que  su código sea aprobado y hagamos merge, estará en el ambiente productivo impactando a nuestros clientes en cuestión de minutos, esto es posible porque tenemos un proceso de integración e implementación continua potente además que cada PR es revisado entre los demás ingenieros para retroalimentar el código, las pruebas unitarias, de integración y aceptación.”

“Estamos en constante evolución de nuestro producto y estructura, por lo que buscamos constantemente personas para que se unan a nuestro equipo”.

Aplica a las vacantes de ingeniería disponibles dando clic sobre cada una de las posiciones:

Ingeniería en Nu

“Actualmente somos más de 1000 ingenieros trabajando desde nuestra sede en São Paulo, nuestro centro de ingeniería en Berlín y nuestras oficinas en Ciudad de México, Bogotá y Buenos Aires. Y también fomentamos un entorno global independientemente de la ubicación, ya que contamos con más de 30 nacionalidades integradas en nuestros equipos”.

“Buscamos personas apasionadas por lo que hacen, con ganas de resolver problemas complejos a gran escala; todo esto mientras trabajan en un entorno seguro y acogedor. Buscamos personas que quieran que su trabajo tenga un impacto positivo en la vida de millones de personas que, de lo contrario, estarían atrapadas en una relación burocrática e ineficiente con su dinero”.

Si quieres conocer más sobre las dinámicas de trabajo en Nu o la experiencia de Roberto como #codestar  Ingeniero de Software haz clic aquí para contactarlo directamente.

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