Senior Software Engineer (C++/Java) - Data Gateway
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 200+ billion requests a day. With ever increasing data volumes and growth of Bloomberg's Enterprise products, this footprint has been growing at a rapid pace.
To accommodate our future needs we are looking to re-architect 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 orchestrate requests to them as needed providing a clean interface to the outside world and decoupling the services from their clients. It would provide key functionalities such as routing request to appropriate services, authentication, monitoring, load balancing, caching, request shaping and management. All while ensuring that 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 failures or latency spikes in downstream services and to isolate such failure while still being able to serve the rest of the requests.
We are looking for an engineer who can channel their deep experience in migration and microservices to help us build various components of Data Gateway. If you like solving the challenges of a system widely used and trusted, read on. We'll trust you to:
You'll need to have:
- 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
We'd love to see:
- 5+ years of software engineering experience in C++ or Java
- 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
- Experience in Modern C++ design and/or Reactive programming techniques
- An interest in or knowledge of Open Source API gateways like Zuul, Kong and service mesh like Istio
- Familiarity with a scripting language like python/Perl
- Familiarity with Test Driven Development, CI/CD tools like Jenkins
Bloomberg is an equal opportunities employer, and we value diversity at our company. We do not discriminate on the basis of race, religion, color, national origin, gender, sexual orientation, age, marital status, veteran status, or disability status.