From “guilds” of engineers to open source, how Bloomberg innovates


Adam Wolf leads the software infrastructure group within Bloomberg’s engineering department. His team is responsible for developing the foundation upon which more than 5,500 developers build their applications and deploy new code that instantly integrates into customer workflows.

He tells ZDNet how the finance and data giant is using a range of software development techniques — from sharing knowledge to building “guilds” to embracing open source — to meet the needs of its clients in the global financial markets.

Bloomberg’s workflows span the full spectrum of financial services, from real-time market data and analytics to earnings, stocks, currencies and commodities. “Trying to do all of this requires us to be efficient, but also to be lean,” says Adam Wolf.

The latter spent 15 years at Bloomberg, where he led the communications and mobile teams, as well as various technical and leadership roles within the information engineering unit. He also led core applications, meaning Bloomberg Terminal’s core, multi-class applications and platforms, which encompass email and instant messaging services, research, and financial big data platforms.

A brief history of the Bloomberg terminal

The Bloomberg Terminal is an all-in-one computer system that provides financial services professionals with access to Bloomberg financial data, analyst estimates, messaging and trading services. It is the core of Bloomberg’s product portfolio and serves 325,000 users worldwide.

Twenty years ago, the Bloomberg terminal was, quite literally, a computer terminal. It then became a Windows desktop application, and today, as Adam Wolf explains, “The Bloomberg Terminal acts as a browser, but it’s a custom browser and it has a whole bunch of windowing components, regrouping and anchoring”.

Adam Wolf’s engineering unit, which includes approximately 1,700 developers, essentially serves as a platform team for the entire Bloomberg organization, serving everything from software development lifecycle tools and frameworks. user interface, managed services, analytics and data science.

“The way I see it is that my team’s job is to support the engineers. Many of these engineers work here and many of them work for our customers,” says Adam Wolf. “You have to connect to hundreds of exchanges, and you have to normalize all kinds of data. It’s kind of our raison d’être. »

A philosophy based on sharing

Sharing knowledge and best practices is a central part of Bloomberg’s developer environment. To achieve this, the organization has created “guilds” specializing in specific technologies and technical concepts. These guilds, like the medieval concept from which they are inspired, come together to solve problems and exchange tricks of the trade.

Today, Bloomberg has 10 guilds within its engineering department, which cover programming languages ​​like C++, JavaScript, and Python, as well as machine learning, natural language processing, and front-end web development. “The goal is really to bring together people who have deep expertise in different parts of the organization, drive investment in the platform in some cases, and develop common standards and approaches,” says Adam Wolf.

Some of that work is internal, adds Adam Wolf. For example, it’s about looking at how new programming language standards can be leveraged to upgrade Bloomberg’s code base. Sometimes guilds also try to tackle the direction of technology more generally. This is the case, for example, of the work done by Bloomberg over the past five years in the JavaScript ecosystem, where the organization has succeeded in defending privacy protection functions that were not yet integrated into the JavaScript ecosystem. programming language.

“We’re running a massive JavaScript code base on the server side, and JavaScript didn’t really support encapsulation in the best possible way,” says Adam Wolf. “We built something that kind of tried to create it, but it wasn’t an official part of the language. »

A commitment to open source projects

Engagement with the technology community is also important for open source projects like Python, not only for the benefit of Bloomberg’s development ecosystem, but also for the benefit of the broader development community.

When it comes to open source, you have to “be willing to go under the hood” and make things better for everyone, says Adam Wolf. “We have to understand what is happening. We have to figure out how we can improve it, and so I think it’s almost a business necessity. You can’t just use open source and treat it like a black box. »

Digging into the codebase to add a new feature, for example, is useless if that feature won’t then contribute back to the community, and just creates more headaches for development teams. “Unless it’s a core proprietary feature of your business, which is rarely the case for us, wouldn’t we want to contribute again and let other people build on top of it?” Because now your onboarding cost is lower, you are able to get things done, you are able to benefit from other people’s input and make it better. »

Of course, one of the downsides of open source is how slowly new features are added, with maintenance backlogs, codebase forks, and differing priorities among contributors often slowing development. When it comes to finding a balance between maintaining open source code and releasing new features, Adam Wolf believes that the idea that you can prioritize one or the other presents “a wrong choice.

“If you’re at the limit of performance or capabilities…the only way you can release new commercial features is to continue to maintain and upgrade to the latest releases,” he says. . “I don’t think it’s one or the other. I think maintenance, upgrading, re-integration and upstream patching are part of the business cost. It’s not a choice. »

Source: ZDNet.com





Source link -97