When Less Is More: Decoding the Unnecessary Complexity

Jessica Winer & Jacqueline Pan

⏱ 90 minute session
16:00-17:30, Wednesday, 17th April 2024
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.

🏷 distributed systems

Jessica Winer

Jessica Winer is a software engineer at Bloomberg for Post Trade Automation. She has helped architect new workflows within a fully mature enterprise product. Jessica has helped organize the department-wide Architecture Summit, which promotes cross-team collaboration and knowledge sharing. Beyond contributing to her team, Jessica is a leader of the Post Trade Testing Working Group, spearheading Behavior-driven Development (BDD) practices within this engineering group.

Jacqueline Pan

Jacqueline Pan is a Software Engineering Team Lead at Bloomberg for the environment, social, and governance (ESG) scoring workflows team. Her career at Bloomberg has spanned seven different engineering teams over six years and four internships. In her role, she is responsible for managing the development of a new system to help scale how Bloomberg scores ESG metrics. Prior to this team, Jacqueline spent five years as a software engineer and team lead for the Post Trade Automation team for Bloomberg’s Buy-Side Order Management System.

As opposed to building something new for ESG, Jacqueline was responsible in Post Trade for building upon a mature high throughput, low-latency system. During that time, she introduced Behavior-driven Development (BDD) practices to aid in her team and sibling teams’ understanding and reliability of complex cross-team distributed systems.

She earned a bachelor’s degree in information systems from Carnegie Mellon University, and an MBA from Baruch University’s Zicklin School of Business. At Bloomberg, she also led the 2,000+ member Bloomberg Women in Technology (BWIT) community for four years, and is currently one of the Guild Leads for the Automated Testing Guild.