Building a Bank (with DDD, Microservices, and Autonomous Teams)

Maschinenhaus

April 3, 2025 2:15 PM

At Upvest, we build the software to manage the investments for millions of people from scratch. And with that, the organization to achieve this. We’d like to tell our story and share our learnings so far.

Being fully aware that, to quote the late Stefan Tilkov, “any particular architecture approach constrains organizational options”, we initially focused on designing an architecture that empowered autonomous product teams, allowing them to operate independently, make domain-driven decisions, and iterate rapidly on their domains.

As the product evolved, we encountered new challenges related to inter-team dependencies and flow efficiency. In response, we reviewed our teams’ topology and optimized it for improved delivery flow and reducing bottlenecks.

Along with this, we recognized the need to adapt our architectural approach towards a more centralized model. This shift towards an Enabling Team and increased investment in Platform Engineering and DevEx aims to balance the benefits of autonomy with the need for standardized practices and governance in a regulated environment.

In this talk, we’ll share our learnings and strategies for each phase, exploring how we balanced agile principles with evolving architectural needs, and offering insights for teams navigating similar transformations.