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



Há pouco mais de um mês, o escritório do Nubank na Vila Leopoldina, em São Paulo, tornou-se o ponto de encontro da comunidade Clojure de toda a América do Sul e de outras regiões. A segunda edição do Clojure South reuniu mais de 200 desenvolvedores, pesquisadores e entusiastas da linguagem para dois dias de compartilhamento de conhecimento, conexões e celebração da programação funcional.
O evento reforçou o papel do Brasil como um dos hubs mais vibrantes para a comunidade Clojure e o papel do Nubank como um ponto focal ativo para comunidades de tecnologia.
Foi nesse ambiente de entusiasmo compartilhado que Alessandra Sierra, Principal Software Engineer no Nubank, abriu a conferência com sua palestra “12 Years of Component” (12 Anos de Component), refletindo não apenas sobre a história de uma das bibliotecas mais influentes de Clojure, mas sobre sua experiência pessoal ajudando a moldar a forma como milhares de desenvolvedores trabalham hoje.
Onde a jornada começou
A história de Alessandra remonta a 2007, quando ela participou de um meetup em Nova York, onde Rich Hickey apresentou publicamente o Clojure pela primeira vez. Ela saiu daquela sessão impressionada, pois o Clojure trazia o poder de um REPL (Read-Eval-Print Loop) interativo para o ecossistema JVM, permitindo que desenvolvedores inspecionassem e modificassem programas em execução e receberem feedback imediato.
Sierra tornou-se uma das primeiras a adotar o Clojure profissionalmente e fez contribuições iniciais significativas para sua biblioteca padrão. Em poucos anos, isso a levou a ingressar na Relevance (posteriormente renomeada para Cognitect), que foi adquirida pelo Nubank em 2020.
Conheça nossas oportunidades
O poder do REPL e a frustração das interrupções
Como consultora na Cognitect, trabalhando com equipes que adotavam Clojure para aplicações reais, Sierra notou um padrão recorrente: o REPL dava aos desenvolvedores enormes vantagens em termos de feedback e velocidade, mas muitas estruturas de aplicação tornavam essa experiência mais difícil do que deveria ser.
No início dos anos 2010, o desenvolvimento web em Clojure frequentemente girava em torno do Ring: simples e elegante, mas com limitações. Rodar um servidor Jetty a partir do REPL poderia bloquear a thread principal, e recarregar o código muitas vezes deixava definições obsoletas na memória. Reiniciar o REPL tornou-se uma rotina cansativa e frustrante.
Sierra queria que os desenvolvedores mantivessem o fluxo do desenvolvimento interativo mesmo em sistemas complexos e com estado (state). A pergunta central era simples, mas fundamental: Como um sistema pode continuar rodando enquanto o desenvolvedor continua a evoluí-lo?
O nascimento do Component
Em vez de aceitar o atrito causado por reiniciar o REPL toda vez que o código mudava, Sierra passou os anos seguintes projetando uma nova disciplina — um fluxo de trabalho que viria a ser conhecido como Reloaded Workflow, nomeado após seu amplamente lido post de blog “My Clojure Workflow, Reloaded”.
O objetivo era direto, porém transformador: os desenvolvedores deveriam ser capazes de evoluir um sistema em execução de forma segura, consistente e sem perder o contexto.
Essa abordagem combinava a biblioteca tools.namespace com o Component, além de práticas de design que incentivavam dependências explícitas, minimizavam o estado global e separavam a lógica pura das fronteiras com estado. O resultado foi uma experiência de desenvolvimento centrada no REPL, onde as aplicações podiam ser iniciadas, paradas, atualizadas e inspecionadas em tempo real, sem quebrar o fluxo de trabalho.
O Component ofereceu uma maneira leve de modelar sistemas como partes independentes com ciclos de vida claros, sem sacrificar o design funcional. Sua pequena interface (API) e estabilidade de longo prazo foram intencionais: as mudanças eram introduzidas de forma lenta e deliberada, ajudando a biblioteca a permanecer simples, acessível e durável.
Um impacto duradouro
Doze anos após sua introdução, o Component continua sendo uma das bibliotecas mais influentes no ecossistema Clojure. Ele já foi referenciado mais de 13.000 vezes no código-fonte de produção do Nubank, continua a moldar extensões e forks, e até inspirou adaptações para outras linguagens — um nível de longevidade raramente alcançado por ferramentas com uma pegada tão mínima.
Sierra encerrou sua palestra reconhecendo a sorte de estar no lugar certo, na hora certa, com o emprego certo, no momento em que o Clojure estava surgindo. Esse tipo de sincronia não pode ser planejado.
Mas seu conselho para quem está começando com Clojure ou código aberto foi universal:
Conheça nossas oportunidades