Senior Software Engineer - Data Services
Posted Jun 1, 2022 - Requisition No. 82509
Data Gateway provides a single point of entry for Bloomberg Terminal and Enterprise applications to retrieve any kind of data available in Bloomberg. It is the backbone of the Bloomberg application stack, is very widely used and serves 350+ billion requests a day. With ever increasing data volumes and the growth of Bloomberg’s Enterprise products, this footprint has been growing at a rapid pace.
To accommodate our future needs we are working on re-architecting large parts of our system. We envision the system to follow an API Gateway pattern with hundreds of data provider microservices integrating into it and providing data for their bounded context. Data Gateway absorbs the complexity of multiple microservices with their myriad details and orchestrates requests to them as needed, thereby providing a clean interface to the outside world and decoupling the services from their clients. To ease the access and manageability of this infrastructure, we are working towards ‘Data Gateway as a managed service’ that would run on a large farm of shared machines guaranteeing SLAs, providing key functionalities such as routing requests to appropriate services, traffic isolation, authorization and authentication, caching, fairness, load balancing, request shaping, transparency and tools to clients to manage their tenancy. It will ensure that the system is scalable to handle billions of requests from thousands of applications. The biggest challenge we face is to design the system to be resilient to unexpected client load, system failures and latency spikes in downstream services and to auto-isolate such failure while still being able to serve the client requests.
We are looking for strong C++ software engineers who can design and develop low latency, high performance distributed systems. The ideal candidate should have strong programming skills, the ability to work collaboratively and a proven track record of delivering quality engineering solutions to real world problems.
We'll trust you to:
- Apply your experience to drive and own the architecture for the system
- Split up a large monolithic system to increase reliability and scalability
- Incorporate open source and industry standard solutions to solve the problem at hand
You'll need to have:
- 3+ years of software engineering experience in C++
- Experience developing large scale Microservices systems
- Experience with high volume, high availability distributed systems
- BA, BS, MS, PhD in Computer Science, Engineering or related technology field
We’d love to see:
- Experience in Modern C++ design and/or Reactive programming techniques
- Experience with system architecture and API design
- An interest in or knowledge of open-source API gateways or Service Mesh or GraphQL Federation
- Familiarity with a scripting language like python
- Familiarity with Test Driven Development, CI/CD tools like Jenkins
Bloomberg is an equal opportunity employer and we value diversity at our company. We do not discriminate on the basis of age, ancestry, color, gender identity or expression, genetic predisposition or carrier status, marital status, national or ethnic origin, race, religion or belief, sex, sexual orientation, sexual and other reproductive health decisions, parental or caring status, physical or mental disability, pregnancy or maternity/parental leave, protected veteran status, status as a victim of domestic violence, or any other classification protected by applicable law.
Bloomberg is a disability inclusive employer. Please let us know if you require any reasonable adjustments to be made for the recruitment process. If you would prefer to discuss this confidentially, please email firstname.lastname@example.org