Senior Software Engineer - Alerts Platform
The Alerts Platform team is part of the group responsible for delivering alerts on the Terminal. Alerts can be set on hundreds of different types of events, from the price movement of a stock to a breaking news story being published. We serve all Bloomberg's 330 000 Terminal users, delivering them around 6.5 million alert triggers each day.
The alerts system is a large-scale, distributed system composed of multiple subsystems. The final phase of an alert being delivered, the distribution, is one of the most critical. Here, we deliver the contents of an alert to end users, whether that be via a popup, an email, or programmatically over an API. Throughput is high and minimising latency is critical.
We are in the process of forming a new team to focus exclusively on this distribution pipeline. The team will work on upgrading and scaling the distribution pipeline to support new clients and use-cases:
- Support for "system-level notifications", allowing asynchronous terminal functionality (e.g. file upload, report generation) to update users of their status.
- A graphical overhaul of the Alert Catcher, the component responsible for displaying a user's alert feed.
- Development of blrtapi, an externally-facing REST interface used by enterprise clients to send their own alert content into the Bloomberg ecosystem.
We will expect you to:
- An opportunity to define the vision for components and functionality available to every single Terminal user.
- Interesting technical challenges in dealing with data intensive, low latency, highly distributed systems.
- Working in a close knit group of teams with supportive colleagues who like to learn and share knowledge from each other.
We would love to see:
- Work closely with other alerts teams to coordinate development of our shared system with the Scrum agile framework.
- Be passionate about continuously improving our system and bringing in new technologies and tools to the team.
- Be comfortable developing in Python and/or C++.
- Experience working with distributed systems and telemetry.
- Experience using middleware such as RabbitMQ, Kafka, Redis or ZooKeeper. If this sounds like you:
Apply if you think we're a good match! We'll get in touch with you to let you know what the next steps are. In the meantime, check us out at http://www.techatbloomberg.com/
Bloomberg is an equal opportunity employer and value diversity at our company. We do not discriminate on the basis of race, religion, colour, national origin, gender, sexual orientation, age, marital status, veteran status, or disability status.
We have a lot of opportunities to choose from in Engineering, and it is important to us that your skills and experience align best with the team you are interviewing with. To help ensure you are placed on the right team, your application will be considered for all of our current vacancies in Engineering at the first stage of the interview process.