Mas leido
Building Stories
Modo Rua: Redefiniendo el desarrollo de aplicaciones mediante iteración centrada en el usuario Ago 23
Building Stories
NuStories: Adaptación de productos para clientes fanáticos en varios países Oct 30
Culture & Values
Cómo los valores y la cultura de Nu dan forma a los productos que creamos Ago 7
Carreras
Reunimos a grandes mentes de diversos orígenes que permiten la discusión y el debate y mejoran la resolución de problemas.
Conoce más sobre nuestras carreras



En el Nu Engineering Meetup #15, la programación funcional dejó de ser vista como un tema de nicho para convertirse en una práctica concreta. Alberto Souza, Ingeniero de Software en Nubank y creador del ecosistema Dev + Eficiente, abrió la noche conectando paradigmas con decisiones de diseño cotidianas.
Rafael Ferreira, desarrollador senior de Python, educador en Rocketseat y fundador de la iniciativa Programador Lhama, presentó una visión de la arquitectura funcional que nace en la teoría y desemboca en código comprobable y predecible.
Marcelo Arbore, Director de Ingeniería en Oracle Brasil, con más de quince años de experiencia en entornos de nube híbrida y distribuida, compartió un experimento que combina Clojure, Datomic y Oracle 23AI para búsquedas vectoriales y aplicaciones con datos multimodelo.
Este artículo reúne las ideas principales y responde a una pregunta recurrente entre quienes miran a Nubank y piensan que no encajarían por no conocer lenguajes funcionales.
Primero, una buena pregunta
Esta pregunta aparece con frecuencia en entrevistas, eventos y comentarios del blog: “¿Necesito saber Clojure para trabajar en Nubank?”.
La respuesta es tan directa como la pregunta: no. Lo que buscamos es curiosidad, fundamentos sólidos y ganas de aprender.
El lenguaje es solo una herramienta al servicio de los principios de ingeniería que valoramos. Esta conversación ya ha surgido en la comunidad, como en la entrevista de Alex Miller en el Hammock Podcast, donde habló sobre los caminos de aprendizaje y explicó que las elecciones de lenguaje son medios, no fines. Puedes escuchar esa conversación aquí.
Descubre las oportunidades
Qué es la programación funcional y por qué es importante
La programación funcional es un enfoque que favorece estructuras inmutables, funciones puras y composición predecible. Permite tener mayor claridad sobre qué cambia y dónde cambia.
En términos prácticos, esto significa que las transformaciones de datos devuelven nuevos valores en lugar de modificar variables existentes; que los efectos secundarios se concentran en lugares específicos; y que el recorrido de los datos puede leerse como un pipeline.
Una introducción accesible a esta forma de pensar está en Functional Programming with Clojure, donde se muestra cómo estos principios se traducen en decisiones de diseño que facilitan las pruebas, el paralelismo y el mantenimiento.
Cómo se traduce esto en Clojure dentro de Nubank
Clojure es nuestro principal lenguaje en muchos sistemas. Su elección se alinea con el énfasis en la inmutabilidad y con el uso de bases de datos orientadas al historial, como Datomic.
Esa historia ya fue contada en Clojure’s Journey at Nubank, donde detallamos las razones técnicas y culturales detrás de la adopción del ecosistema. La decisión no crea un club exclusivo, sino un entorno que incentiva el foco en las reglas de negocio, la claridad en los efectos y la experimentación responsable.
Para quienes quieran profundizar más, la serie especial Clojure Turns 15 registra debates sobre la evolución del lenguaje y su impacto en nuestro día a día.
Llegar sin saber Clojure es posible
Muchas personas que ingresaron a Nubank nunca habían programado en Clojure. Durante su charla, Alberto Souza contó cómo aprendió desde cero y cómo los principios funcionales empezaron a influir en su código en otros lenguajes.
El mensaje central es liberador: los paradigmas no son dogmas, son lentes. Puedes aplicar inmutabilidad, cohesión y funciones puras en Java, Python o JavaScript, del mismo modo que puedes traer conceptos de modelado orientado al dominio hacia Clojure.
En el episodio Journeys in Code: Clojure, Datomic y crecimiento personal del Hammock Podcast, exploramos este recorrido técnico y personal. La conclusión es que aprender el lenguaje se vuelve natural cuando tienes el contexto adecuado, compañeros cercanos y problemas interesantes que resolver.
Del pizarrón al código en producción
Las tres presentaciones del meetup mostraron cómo la teoría se convierte en práctica.
Alberto destacó cómo la inmutabilidad simplifica la depuración y reduce errores al concentrar las mutaciones en puntos únicos del flujo. Rafael presentó patrones de arquitectura funcional en Python, como service handle y tagless final, que aíslan los efectos y mantienen la previsibilidad del sistema.
Marcelo, por su parte, demostró un experimento que une Clojure, Datomic y Oracle 23AI para construir un servicio de búsqueda vectorial con embeddings, una prueba de que el paradigma funcional puede coexistir con las tecnologías modernas de datos e inteligencia artificial.
Estas aproximaciones reflejan una filosofía de ingeniería basada en la simplicidad y la claridad. Cada decisión —desde una función pura hasta un pipeline declarativo— está pensada para mantener el sistema comprensible a largo plazo.
El aprendizaje como parte del trabajo
Cuando decimos que no es necesario conocer Clojure para participar en nuestros procesos de selección, también hablamos de cómo apoyamos el aprendizaje desde el primer día.
El proceso de onboarding técnico está diseñado para combinar contexto de producto, compañeros con experiencia y un entorno seguro para hacer preguntas, explorar y equivocarse.
Durante las primeras semanas, quienes se incorporan tienen contacto con los conceptos del ecosistema funcional y aprenden en la práctica mediante pair programming, revisiones de código y mentorías. La curva de aprendizaje existe, y se recorre en conjunto.
Qué cambia en la práctica
Trabajar en un entorno orientado a la programación funcional no es solo cambiar la sintaxis, sino transformar la forma de pensar.
Estos principios atraviesan lenguajes y paradigmas y explican por qué la ingeniería funcional no es solo una técnica, sino una mentalidad que moldea la forma en que construimos productos en Nubank.
La programación funcional es una invitación a pensar con mayor claridad sobre los datos, los efectos y la evolución de los sistemas.
En Nubank, hemos creado un entorno que fomenta el aprendizaje continuo, la colaboración y la experimentación segura.
Si te identificas con esta forma de construir, este es un excelente punto de partida para comenzar tu camino.
Descubre las oportunidades