Software Infrastructure C++ Developer

Careers at Bloomberg

New York

Posted Jul 1, 2016 - Requisition No. 50239

Every day, over 4,500 developers (and counting) rely on us to build the core foundation required for their applications. We build libraries that touch a wide range of technologies including real-time data-processing infrastructure, application frameworks, communication middleware and development tools. We are engineers who live and breathe high performance, well-factored, scalable and testable code that can mold quickly to new business initiatives.

We build real-time software for high impact systems that is core to the Bloomberg infrastructure. We process market data from around the world, driving the majority of downstream Bloomberg applications. We address the market demand for low-latency solutions by delivering the world's most reliable, timely and accurate financial data.

As an engineer in Software Infrastructure, you'll be valued as not only a technical expert, but also a go-to resource for the company. It's more interesting (and challenging) than you would think having other engineers as your customers. Our users, as well as our managers, are highly technical people.

We'll trust you to:

  • Design, architect and develop libraries and software systems
  • Write well-tested, robust, performant code in a cross-platform environment
  • Take responsibility for the full SDLC from requirements gathering to coding to deployment and maintenance
  • Solve highly complex problems while having an appreciation for the scope and impact of your work

You'll need to have:

  • 3+ years of experience programming in C++
  • A strong understanding of data structures and algorithms

We'd love to see:

  • Knowledge of operating system fundamentals
  • The ability to work across Linux/UNIX
  • Experience working with distributed systems
  • Familiarity with network-layer protocols such as TCP/IP and multicast
  • An understanding of the entire software stack from the UI layer to databases
  • An interest in open source technologies and the latest trends in engineering

When you apply, tell us which of our teams you'd like to join. Here are snapshots of each one.

Feeds Infrastructure

We develop a distributed high throughput and low-latency messaging platform in C++, primarily for Linux. The platform is complemented by a framework and toolkit that underlies the company's global feed handlers. Our systems support the reliable receipt, processing and delivery of high volume market data to the Bloomberg Professional Service from exchanges around the world, handling over 60 billion unique messages per day.

Ticker Plant

Our team is at the heart of both the Bloomberg Professional Service and Enterprise Solutions products that process market data from around the world and drive the majority of downstream applications. The Ticker Plant system provides low-latency processing of market data from around the world while servicing client queries from our cutting-edge time series database. Our systems process billions of ticks a day and are highly fault tolerant and scalable. We research and implement industry-leading technologies such as high throughput time series database, low-latency tick streams and various efficient, robust and scalable components for Bloomberg's market data storage and distribution system.

Data Distribution (API)

The Data Distribution group builds and maintains the largest global network in the world, spanning five continents. The infrastructure is built using state-of-the-art technologies to deliver low-latency market data and news across the globe via OpenAPI (www.openbloomberg.com/open-api). We use commodity software/hardware platforms to develop high performance C++ code and multithreading to achieve peak rates and optimize bandwidth and latency.

Application Framework

We are building the infrastructure and libraries used for developing applications at Bloomberg. This includes the application runtime environment, the UI toolkit exposed to developers, the client-side rendering engine and integration with real-time data. We are responsible for advancing the next generation of UI technology and giving our applications the advantages of the latest paradigms and features. Our group builds the tools for profiling and debugging applications and a custom IDE for developing them.

Systems Core Infrastructure

We provide the tools, services and APIs for other Engineering teams across Bloomberg. Our deep knowledge of UNIX/Linux allows us to create useful tools and platforms for software engineers while improving performance and stability of the entire infrastructure. Examples include: a process management service that can restart and monitor running programs, an exception-handling service that manages core dumps and provides useful crash reports to programmers that also includes application-specific trace and metrics; a distributed system for managing machine status and states for over 16,000 Linux, Solaris, AIX and Windows servers, capable of bringing down an entire Data Center in an orderly fashion under 5 seconds; a generic routing package that higher-level services use to make routing decisions based on user-specific attributes and criteria; a user-event/interaction dispatcher that handles hundreds of thousands of user-sessions, distributing work in real-time to workers while applying fairness algorithms and flow-control when dynamically determined to be necessary. The above are just some examples of how we combine Unix/Linux features with incredible algorithms and out of the box thinking to solve problems and create value for our customers.

Bloomberg Application Services (BAS)

The BAS group provides core infrastructure for server-side development and message exchange. We provide libraries, tools and processes that implement a service-oriented architecture based on a message-routing paradigm. BAS provides location transparency to service clients, encapsulates routing policies and algorithms in the network and delivers a common, scalable and robust platform for application software. Almost every Bloomberg function and backend process depends on the thousands of services our platform supports.

Systems Applications

We provide tools for other Engineering teams. Some of these include a software deployment system that helps programmers deploy in stages to minimize risk, a tiered data store and retrieval framework and a general purpose job scheduling system. Our goal is to make programmer workflows as efficient as possible. Our systems include: framework for cache management to increase applications speed, disaster recovery using cluster of databases, system to manage the release and enablement of functionality and additional software development and deployment tools.

Market Data & News Feeds

We develop highly reliable, low-latency feed handlers for real-time market data. Our software processes data streams from a global network of exchanges, contributors and news agencies including the New York Stock Exchange (NYSE), London Stock Exchange (LSE) and Tokyo Stock Exchange (TSE). Our real-time data provides the foundation for a range of Bloomberg Professional applications that empower market makers. One of our current initiatives is to re-architect feed handlers to be more fault tolerant as we continue to modernize our workflow using Agile methodology.

Data License

Data License is Bloomberg's market-leading enterprise reference data product. Our customers are key financial players who use our products to power their trading applications, risk management and corporate action processing, requiring our system to be ultra-reliable and our data to be of the highest quality. Our product lines offer a variety of programmatic interfaces for a wide range of information on nearly all types of financial instruments including fixed income, credit default swap, currencies, equities and futures and options. We work closely with our business and sales teams to develop solutions to satisfy customer demands.

Similar jobs