En el Nu México Meetups #12, exploramos cómo la simplicidad es un principio estratégico clave para construir software escalable, y por qué es esencial para ofrecer productos financieros confiables y accesibles a millones de personas.

Nuestra invitada en esta edición fue Jordan Miller, especialista en tecnología y educación, con enfoque en personas, programación y pedagogía. Con amplia experiencia en Clojure y Datomic, Jordan es coautora del libro Clojure Brain Teasers, cofundadora de Clojure Camp y presentadora del podcast Lost In Lambduhhs. En su charla, compartió ideas valiosas sobre cómo la simplicidad—cuando se aplica de forma deliberada—puede convertirse en una ventaja estratégica para los equipos de ingeniería, especialmente en organizaciones que necesitan escalar con responsabilidad y propósito.

En este post, recorremos los principales conceptos abordados: las trampas de la complejidad accidental, los tres niveles donde esta se manifiesta (organizacional, de equipo e individual), la diferencia entre lo simple y lo fácil, y cómo herramientas como Clojure y Datomic nos ayudan a construir sistemas sostenibles, auditables y resilientes.

Por qué la simplicidad es un superpoder técnico (y humano)

La simplicidad no es lo mismo que la facilidad. Mientras que “fácil” es subjetivo y depende de la experiencia de cada persona, “simple” es objetivo: se trata de tener menos dependencias y mayor claridad conceptual. En el desarrollo de software, eso significa reducir la carga cognitiva de quienes diseñan, mantienen y evolucionan los sistemas.

En Nubank, la simplicidad es intencional. Es el resultado de decisiones estructurales que priorizan la claridad por encima de la conveniencia inmediata. Un sistema simple es más fácil de entender, depurar, extender y, lo más importante, de confiar.

Como personas, podemos manejar solo una cantidad limitada de conceptos a la vez. Por eso, los sistemas con muchas capas de abstracción, dependencias entre servicios o estados mutables dificultan tanto el trabajo técnico como la experiencia del cliente final. Y cuando esas capas crecen sin control, generan lo que llamamos deuda técnica: el tiempo invertido en mantener y entender sistemas que ya no escalan adecuadamente.

Descubre las oportunidades

Dónde aparece la complejidad: tres niveles que requieren atención

La complejidad de un sistema no vive solo en el código: se manifiesta en diferentes niveles dentro de una organización:

1. Organizacional

A nivel macro, la complejidad surge cuando hay desalineación entre equipos, elecciones tecnológicas fragmentadas o decisiones aisladas que dificultan la colaboración. Para evitar esto, en Nubank adoptamos un stack tecnológico unificado con Clojure, ClojureScript y Datomic, lo que permite una mejor comunicación entre los equipos de backend y frontend, así como mayor movilidad entre ellos.

También promovemos la autonomía con responsabilidad, uno de nuestros valores culturales, lo que requiere confianza y claridad en el entorno técnico.

2. De equipo

Entre personas ingenieras, mantener la simplicidad implica prácticas como diseño colaborativo, revisiones compartidas y construcción de entendimiento colectivo antes de escribir código. Trabajar así rompe silos de conocimiento y fortalece la familiaridad con el sistema—algo clave para el crecimiento continuo.

3. Individual

A nivel personal, la simplicidad significa dejar de lado el ego, estar dispuesto a pedir ayuda, revisar ideas y equivocarse de forma segura. También implica identificar la “zona de desarrollo próximo”, donde el aprendizaje y la colaboración realmente suceden.

Esta mentalidad permite que cada ingeniero o ingeniera evolucione sin miedo a causar impactos irreversibles, porque los sistemas están diseñados desde el inicio para ser auditables y resilientes.

Resolver el problema correcto antes de pensar en soluciones

Otro pilar clave del Meetup fue la práctica de la resolución estructurada de problemas. Muchas veces, la complejidad crece cuando saltamos directamente a soluciones sin entender el problema real.

Aquí aplicamos un enfoque inspirado en el pensamiento socrático y el método científico: hacemos preguntas, formulamos hipótesis, probamos y documentamos. Usamos matrices de decisión para analizar los efectos colaterales de diferentes caminos—una inversión que vale la pena al construir soluciones duraderas.

¿Y cómo saber si un problema es “bueno”? Debe tener criterios explícitos, ser relevante y representar un obstáculo significativo en el camino del progreso. Los problemas bien definidos evitan implementaciones innecesarias y fomentan la claridad entre todos los involucrados.

El papel de Clojure y Datomic en la cultura técnica de Nubank

La elección de Nubank por lenguajes funcionales como Clojure y bases de datos inmutables como Datomic no fue casual. Estas herramientas están profundamente alineadas con nuestra visión de ingeniería: construir sistemas que prioricen la claridad, auditabilidad, seguridad y evolución continua.

Datomic, por ejemplo, nos permite observar todo el historial de datos, con trazabilidad nativa y sin efectos colaterales inesperados. Esto es especialmente crítico en servicios financieros, donde la confiabilidad y la trazabilidad no son negociables.

Además, Nubank apoya activamente los proyectos open source que dan vida a estas herramientas. Desde la adquisición de Cognitect en 2020, seguimos invirtiendo en la evolución del ecosistema Clojure y en su comunidad global.

La simplicidad como ventaja competitiva

Hoy en día, Nubank atiende a más de 118 millones de clientes a través de una plataforma altamente confiable, escalable y segura. Esto solo es posible porque adoptamos la simplicidad en todos los niveles: desde los sistemas backend hasta la forma en que colaboramos como personas y equipos.

Para nosotros, la simplicidad no es solo una decisión técnica. Es una filosofía de producto y cultura. Nos permite innovar con seguridad, crecer con responsabilidad y, sobre todo, poner a las personas en el centro de la experiencia. Como solemos decir: los mejores sistemas no son los más complejos, sino los más claros, predecibles y humanos.

Si te interesa la ingeniería funcional, la programación orientada a datos o cómo Nubank construye productos a gran escala, sigue explorando los Meetups y contenidos aquí en el blog Building Nubank. Y si quieres ir más allá, revisa el libro Clojure Brain Teasers o súmate al grupo de aprendizaje fundado por nuestro equipo. Porque aprender en comunidad también es una forma de mantener las cosas simples.

Descubre las oportunidades