Nubank and Cognitect: a personal perspective

Edward Wible, Nubank's CTO, shares his perspective on the future of Clojure and Datomic, and how the powerful ideas that guide these technologies helped shape Nubank’s culture and business.

I’m excited to announce that Nubank and Cognitect are joining forces.  Please refer to the press release announcing the transaction for additional details. 

As a Co-founder of Nubank, a software engineer, and an enthusiastic supporter of Clojure and Datomic (and perhaps more importantly, the remarkable clarity of the thinking underlying these technologies), I’d like to complement what’s been written publicly with a personal perspective.

But first, it is important to make one thing very clear: Clojure is and will remain open-source and Rich Hickey will continue to lead its efforts (as the BDFL). We are thrilled to work with such an inspiring group and very excited about supporting Rich’s vision for the language. 

History: Cognitects and Nubankers

At Nubank our mission is to “Fight complexity to empower people.” We’ve started making that mission a concrete reality in financial services, an industry renowned for domain complexity, legacy, information asymmetry, systemic risk, and national sovereignty coming together to produce incoherent and suboptimal outcomes for normal people. Financial integration is a fundamental component of the social infrastructure for modern life, so this matters. I remain optimistic about what we can achieve through a deeper rethinking of how we build these solutions.

Sitting down in 2013 with a blank sheet of paper to think about how we might build a different sort of financial institution, three things were reasonably clear:

  1. Small and middling outcomes were unlikely to work – Nubank would need to reach high scale to effectively compete with incumbents;
  2. The largest threat to reaching scale, from a technical perspective, was likely to be complexity, for both the system and the team;
  3. Explicitly constraining and mitigating certain categories of complexity (e.,g., accidental mutable state, non-strategic variance in style/approach, Conway’s Law) was likely to pay off in the medium and long term.

I’d love to claim that many other aspects of how the next 7 years would play out were clear from the start, but these three will have to do.

Against this backdrop, searching for powerful ideas and tools on which to build, I remember reading the classic “Out of the Tarpit” paper and asking “what about the database?”. This line of inquiry led us to discover Datomic, which in turn led us to Clojure.  

At the time, I’d never coded in Clojure, nor had anyone else on the early engineering team. We weren’t able to rely on historical experience to guide the decision, because none of us had built something comparable. But everyone had experienced accidental complexity, and the alignment with our problem space and strategic principles was excellent. We took the leap and have never regretted it.

Present: Nubank scale and challenges

By some measures, Nubank is one of world’s largest students of these powerful ideas: 

  • ~600 engineers
  • ~2.7mm lines of Clojure(script)
  • ~500 microservices
  • ~2300 Datomic databases
  • ~25mm customers

Considering that Clojure and Datomic were the greenfield technologies for Nubank, and that these were perceived as unconventional, possibly risky choices back in 2013, perhaps this isn’t surprising. While it takes time to scale a startup, migrating massive legacy systems is often even more daunting. As we start to experience our own legacy at Nubank, we are learning valuable lessons in this regard. Our commitment is long term, both philosophically and practically.

Nubank has a long way to travel to fulfill our mission.  There are a wide variety of at-scale problems to solve as our business rapidly grows along product, market, segment, and business model axes. Likewise, there is still much growth ahead for Clojure and Datomic. I see strong strategic logic in aligning Nubank as a scaled reference example which in turn supports the advancement of the ecosystem and community.

Future: what we expect from the Cognitect/Nubank announcement

I hope that in the future, Nubank will continue to be one of many corporate case studies and patrons of Clojure and Datomic, just as we are today. The spread of useful ideas for mitigating complexity, combined with practical experience and the virtuous cycles that result make the pie bigger for everyone.

One of these reasons that Nubank has not been more prolific in terms of open source contributions to date is that we’ve been quietly standing on the shoulders of giants; the excellent foundation of Clojure and the JVM ecosystem enabled us to focus on the specific challenges of our domain through a phase where every hour counted.  

I do, however, expect Nubank to become a stronger contributor and accelerator for Rich’s vision and Cognitect’s excellent stewardship. As the company continues to grow, we can help guarantee a sustainable future through:

  1. Technical contributions: I’d like to enable more dedicated time and focus from talented folks aimed at technical work for the benefit of the original vision and the community that has formed around it.
  2. Social contributions: I’d like to foster a friendly, diverse community with more robust onramps. I remember when the Clojure community felt like an intimidating collection of wizards to me, and am excited to continue working to make Clojure and Datomic ever more welcoming and accessible.
  3. Financial contributions: I’d like to ensure support for conferences (virtual or otherwise in a post-Covid future).  I’m also excited to increase support for great programs like Clojure Bridge, which we are actively working to expand throughout LATAM.  I’d like to see us supporting open source contributors outside of Nubank. And of course, I’d like to continue creating our share of high-quality career opportunities.

I expect the future for Clojure to be “like today, but more so”:

  • Clojure is and will remain open-source;
  • Rich is and will continue to be the BDFL;
  • Nubank does not own Clojure, just as Cognitect never owned Clojure. Nubank will take over Cognitect’s role as a corporate sponsor for Clojure, funding the core development effort;
  • Nubank will aim to support Rich in accelerating Clojure’s core roadmap where possible and appropriate.

I expect the future for Datomic to also be “like today, but more so”:

  • The existing development team will continue to enhance both Datomic products: Pro and Cloud;
  • Stu will continue to run the Datomic team, with Rich continuing to act as product architect;
  • Nubank is best served by the widespread use of Datomic at other companies. Datomic will continue to be developed as a commercially available, general-purpose database (as opposed to being pulled in-house or restricted),
  • Nubank will aim to support Stu in expanding the Datomic team and delivering new features (and with the benefit of even tighter feedback cycles).

If all of that sounds incremental, it’s meant to be. We intend to show how much we care for and appreciate the Clojure community through this sort of incremental reinforcement while avoiding unconstructive disruption and bias.

In closing, I’d like to express my sincere and personal gratitude for the clarity, inspiration, and tireless efforts from Rich Hickey, Stuart Halloway, Justin Gehtland, current Cognitects, and Cognitect alumni. It’s been an honor and a privilege, and I believe the best is yet to come.

Sincerely,

Edward Wible

Co-founder and CTO, Nubank

Enter your name