Senior Software Engineer - Data Services Symbology
Posted Dec 21, 2020 - Requisition No. 87878
At Bloomberg, data is our core business, and we need to deliver it with speed. Data Services is an infrastructure group that provides a common framework for all of this data and analytics. We are responsible for a set of core services and APIs that developers across Bloomberg Engineering use to access multi-asset financial data to develop various Bloomberg Applications. We serve current and historical time series for reference data, market data and standard analytics for all financial instruments. We deal with challenges of large scale distributed systems related to large volume requests, low latencies, high availability and overall system reliability.
Our infrastructure forms the backbone of the Bloomberg application stack and Enterprise business. We design our systems to be resilient to failures or latency spikes in downstream services and provide deterministic SLAs to our clients. Within the Data Services group, the Symbology team is responsible for infrastructure encompassing Identifier Translation services, an Entity Classification product, and an Entity Relationship master system.
Our Identifier Translation service (ID Master) provides ID translation supporting over 50 Identifier types for a multi-asset instrument universe. ID Master currently processes 1.5 billion requests daily (peaks of over 3 billion) with 99% of requests fulfilled under 2 milliseconds. We are looking to process up to 5 Billion requests daily in the next 12 months, and by improving our lookup algorithms, caching systems and scaling up, we also aim to cut response times in half. It is imperative that we accomplish this growth while keeping strict SLAs for our clients (which is all of Bloomberg Engineering!). As we continue to develop this platform, we are also looking to grow from storing 75 million records to over 1 billion records. To achieve these objectives, we are expanding the London team – this is where you come in!
We'll trust you to:
- Architect, design, implement and own critical applications and components of our services stack
- Participate in the full SDLC of various components and systems that are required to be highly efficient, robust and scalable
- Have a collaborative, team oriented mindset which is key to our success
- Extend your collaborative, team oriented mindset when partnering with other engineering teams across Bloomberg to build core data systems used by many application groups
You'll need to have:
- Experience developing high volume distributed systems and optimizing for low latency and high scalability
- Strong knowledge of a strongly typed object oriented language such as Java, C# or C++
- Good problem solving and communication skills
- Experience leading projects from ideation to delivery and mentoring less experienced engineers
- Experience with Database design, SQL and caching systems
We’d love to see:
- Some experience with Java functional programming
- Experience with Apache Kafka, Redis, PostgreSQL technologies
- Experience with Test Driven Development, and CI/CD tools like Jenkins or Teamcity
- Knowledge of financial markets
- Experience partnering with a diverse set of stakeholders