By Jessica Winer & Jacqueline Pan
How often do we, as engineers, look at some code and wonder “What does this do?” and “Why was this written this way?” Often, the more mature software is, the more likely it is to confuse engineers. It’s only natural that, as new users and workflows are crammed into existing distributed systems over time, that software will become increasingly confounding.
When building your system’s architecture, it is difficult to decide on design tradeoffs. However, having to reverse engineer mature systems to understand those tradeoffs is even more challenging. For many enterprise products, there is an additional layer of complexity for distributed systems span across multiple teams. Each design tradeoff was likely not made in isolation, so stepping back to view the holistic cross-team architecture can often add important context.
During this talk, the speakers will share their personal experiences designing and decoding complex distributed systems. They will discuss the challenges and pitfalls of maintaining mature software and the necessary design considerations when evolving them. While engineers often jump to write code to solve a problem, there are important questions to examine when deciding whether to reinvent the wheel or adapt your existing system.
The two speakers will present very unique perspectives based on their roles building software for drastically different products at Bloomberg. On one hand, one speaker brings the perspective of two teams at Bloomberg – one that manages a high throughput, low-latency mature enterprise product and another that is building a new system to help scale how Bloomberg scores environmental, social, and governance (ESG) metrics. On the other hand, the second speaker is a software engineer and architect within Bloomberg’s buy-side order management solution, where she is building upon mature software that handles state management and race conditions for distributed systems. While their users, architecture, and software maturity varies greatly, they have followed similar steps in order to decode and understand their systems.