Bloomberg Senior Software Engineer – Application Frameworks in New York, New York

Job Requisition Number: 66215

The Bloomberg Terminal platform hosts over 10,000 unique applications that underpin the global financial markets. Our Application Frameworks group develops the platform that our 5,000 engineers depend on to build robust tools for our users.

Our group develops the core application runtime, the platform SDK and libraries used by our engineers to create these applications. In addition, we also own the IDEs and tools used to develop, profile, debug, and release applications, along with real-time deployment, distribution, and monitoring infrastructure for the platform.

The result? Our user base of hundreds of thousands of financial professionals can stay productive 24/7/365. We create the core Terminal software that runs on all client PCs, and facilitates connection and access to the vast array of Bloomberg applications available within our environment. Part of this software includes the client runtime that’s built using an embedded Chromium framework to render all of our terminal applications.

This infrastructure is both mission-critical and high performance, with demands of adding only 10s of milliseconds of overhead to application runtime to maintain the extreme responsiveness of the terminal software. On top of that, our framework is capable of rendering thousands of rows of real-time monitoring market data. We maintain this performance through heavily investing in optimization, metrics, and monitoring of all layers of the platform, as well as continuous integration and regression testing aimed at catching performance degradations before they enter release.

Our group is active in the OSS and Web communities. We have active contributors to the Chromium project, members of the TC39 JavaScript standards committee, and participants in the W3C CSS working group. We have successfully championed implementation of multiple accepted and proposed standards, such as CSS Grid Layout and TC39 BigInt in the Chromium and V8 projects, to name a few.

Read on to learn more about our teams and what we're looking for. You can express interest in particular teams in your application.

Application Toolkits:

Our team provides the framework for building client-facing applications at Bloomberg. We own the server and client-side runtime environments, developer-facing APIs, widget library and rendering engine for applications. We also provide the integration layer between Bloomberg's real-time data engines and applications.

We are always extending our toolkit to support new feature requests as they come from other development teams at Bloomberg, and also help set the technical direction for where this toolkit will go in the future. This includes evaluating new technologies and frameworks to assess their viability and scalability for use in our tech stack. We are also continually optimizing the performance of our lower level libraries to ensure speed and stability across all of the applications built on top of our framework. Our development work is primarily split between C++ and JavaScript.

We build the core user interface of the Bloomberg Terminal, as well as the desktop infrastructure that supports both the terminal itself and the applications that run within it. This entails not only developing the main "CLI" that drives the terminal and all of the client-facing features that it includes, but also the behind-the-scenes infrastructure that hosts and executes applications within the terminal environment. Our infrastructure manages the core features of this environment such as application life cycle, cross-application data sharing and communication, window management, and application state persistence. Additionally, we develop the main C++ application container that runs on the client PC and control the overall footprint of the terminal software by dynamically managing process allocation and application co-residence within these containers.

Core Services Infrastructure:

We manage the platforms used for running server-side workloads for our Terminal platform. This includes products like DMP, the Data Mapping Publisher, responsible for streaming data subscriptions into our DataLayer platform, pumping massive amounts of market data and application data to customers Terminals everyday. Additionally, we are responsible for a Javascript-hosting micro services platform built on Google's V8-Engine, used to implement short and long lived application services in the support of our interactive Terminal platform.

Framework IDE:

Our Framework IDE team produces custom tooling and development platforms for internal engineers who develop applications for the Terminal, with a focus on JavaScript. We build and maintain the toolchain for taking JavaScript sources and preparing them for deployment in our custom, high performance JavaScript runtime environment. Additionally, we’re responsible for interfacing these tools with modern IDE's and editors to maximize our developers productivity by providing code analysis, transpilation, and debugging interfaces.

We are extremely proud of our diverse and open culture, and value diversity of thought and perspective in every form. We're looking for engineers with a real passion for writing reusable, efficient solutions to complex problems, who can adapt to an ever-changing market landscape, and who can collaborate and work effectively on small teams to develop software that impacts thousands of power users around the world. If this sounds like you, apply below and indicate which of the opportunities above you're most interested in.