mais lidos
Life at Nu
Conheça a sede do Nubank em Pinheiros, São Paulo/Brasil jan 11
Design
A nova aparência do Nubank: conheça nossa nova logo maio 17
Culture & Values
Como os valores e a cultura da Nu moldam os produtos que criamos ago 7
Carreiras
Reunimos grandes mentes de diversas origens que permitem a discussão e o debate e melhoram a resolução de problemas.
Saiba mais sobre nossas carreiras



No Nu México Meetups #12, discutimos como a simplicidade é um princípio estratégico fundamental no desenvolvimento de software escalável, e por que isso é crucial para entregar produtos financeiros confiáveis e acessíveis para milhões de pessoas.
A convidada desta edição foi Jordan Miller, especialista em tecnologia e educação, com foco em pessoas, programação e pedagogia. Com ampla experiência em Clojure e Datomic, Jordan é coautora do livro Clojure Brain Teasers, cofundadora do Clojure Camp e produtora do podcast Lost In Lambduhhs. Em sua fala, ela compartilhou reflexões valiosas sobre como a simplicidade (quando bem aplicada) pode ser uma vantagem estratégica poderosa em times de engenharia, especialmente em empresas que precisam escalar com responsabilidade e propósito.
Neste post, exploramos os principais conceitos apresentados: as armadilhas da complexidade acidental, os três níveis onde ela se manifesta (organizacional, de equipe e individual), a diferença entre algo simples e algo fácil, e como ferramentas como Clojure e Datomic nos ajudam a manter sistemas sustentáveis, auditáveis e potentes.
Por que simplicidade é um superpoder técnico (e humano)
A simplicidade não é sinônimo de facilidade. Enquanto “fácil” é subjetivo e relativo à experiência de cada pessoa, “simples” é objetivo: trata-se da ausência de dependências desnecessárias e da clareza conceitual de um sistema. No contexto do desenvolvimento de software, isso significa reduzir a carga cognitiva de quem escreve, mantém e evolui os sistemas.
A simplicidade, aqui no Nubank, é intencional. É resultado de decisões estruturais que priorizam a clareza sobre conveniência imediata. Um sistema simples é mais fácil de entender, depurar, estender e, principalmente, de confiar.
Como humanos, conseguimos lidar com um número limitado de conceitos de cada vez. Por isso, sistemas com muitas camadas de abstração, dependências entre serviços ou estados mutáveis dificultam tanto o trabalho técnico quanto a experiência do cliente final. E quando essas camadas crescem de forma desorganizada, criam o que chamamos de dívida técnica: o tempo gasto mantendo e entendendo sistemas que não escalam bem.
Conheça nossas oportunidades
Onde a complexidade se manifesta: três níveis que exigem atenção
A complexidade de um sistema não afeta apenas o código — ela se manifesta em diferentes níveis de uma organização:
1. Organizacional
No nível macro, a complexidade surge quando há desalinhamento entre times, escolhas técnicas fragmentadas ou decisões locais que dificultam a colaboração. Para contornar isso, no Nubank adotamos uma stack tecnológica unificada com Clojure, ClojureScript e Datomic, o que permite mobilidade entre times e melhor entendimento entre pessoas que trabalham no backend e no frontend.
Também valorizamos a autonomia com responsabilidade, um dos nossos valores culturais, o que exige confiança e clareza no ambiente técnico.
2. De equipe
Entre engenheiros, manter a simplicidade passa por práticas como design colaborativo, revisões em conjunto e construção de entendimento compartilhado antes de começar a codar. Trabalhar assim reduz silos de conhecimento e fortalece a familiaridade com o sistema, algo essencial para evolução contínua.
3. Individual
No nível pessoal, simplicidade significa abandonar o ego e estar disposto a pedir ajuda, revisar ideias e errar de forma segura. Também envolve saber identificar a “zona de desenvolvimento proximal”, onde aprendizado e colaboração florescem.
Essa abordagem permite que cada engenheiro evolua sem medo de causar impactos irreversíveis, pois o sistema foi projetado para ser auditável e resiliente.
Resolver o problema certo antes de pensar em soluções
Outro pilar importante discutido no Meetup é a prática da resolução estruturada de problemas. Muitas vezes, a complexidade se acumula quando pulamos direto para soluções sem entender de fato o problema.
Aqui, aplicamos uma abordagem inspirada no pensamento socrático e no método científico: fazemos perguntas, levantamos hipóteses, testamos e documentamos. Utilizamos “matrizes de decisão” para avaliar os efeitos colaterais de diferentes abordagens. Este é um esforço que vale a pena quando se quer construir soluções duráveis.
E como saber se um problema é “bom”? Ele precisa ter critérios explícitos, ser relevante e servir como obstáculo significativo no caminho do progresso. Problemas bem definidos ajudam a evitar implementações desnecessárias e fortalecem a clareza entre todos os envolvidos.
O papel de Clojure e Datomic na cultura técnica do Nubank
A escolha do Nubank por linguagens funcionais como Clojure e bancos de dados imutáveis como Datomic não foi casual. Ela está profundamente conectada à nossa visão de engenharia: ferramentas que promovem clareza, auditabilidade, segurança e evolução contínua.
Datomic, por exemplo, nos permite observar o histórico completo dos dados, com trilhas de auditoria nativas e sem efeitos colaterais imprevistos. Isso é especialmente crítico em um setor como o financeiro, onde confiabilidade e rastreabilidade não são opcionais.
Além disso, como organização, o Nubank patrocina ativamente projetos open source e mantém viva a cultura que inspirou essas ferramentas. Desde a aquisição da Cognitect em 2020, temos investido em manter a comunidade ativa e contribuir para a evolução do ecossistema Clojure.
Simplicidade como diferencial competitivo
Hoje, o Nubank atende mais de 118 milhões de clientes com uma plataforma altamente confiável, escalável e segura. Isso só é possível porque abraçamos a simplicidade em todos os níveis: dos sistemas de backend à forma como colaboramos entre pessoas e times.
A simplicidade, para nós, não é apenas uma escolha técnica, é uma filosofia de produto e cultura. Ela nos permite inovar com segurança, crescer com responsabilidade e, acima de tudo, colocar o cliente no centro da experiência. Afinal, como gostamos de lembrar: os melhores sistemas não são os mais complexos, e sim os mais claros, previsíveis e humanos.
Se você se interessa por engenharia funcional, programação orientada a dados ou quer aprender mais sobre como o Nubank constrói produtos em larga escala, acompanhe os próximos Meetups e conteúdos no blog Building Nubank. E, se quiser ir além, confira o livro Clojure Brain Teasers e o grupo de aprendizado fundado pela nossa própria equipe. Afinal, aprender em comunidade também é uma forma de manter as coisas simples.
Conheça nossas oportunidades