Bloomberg runs on data. It's our business and our product. From the biggest banks to the most elite hedge funds, financial institutions need timely, accurate data to capture opportunities and evaluate risk in fast-moving markets. Enabling clients to access Bloomberg's data and perform custom analytics, the Bloomberg Query Language (BQL) and Analytics platform is at the forefront of innovation for our business. BQL allows our clients to re-imagine workflows of their financial data on their own terms, and has a rapidly growing user base.
The BQL Performance Engineering team's focus is improving the throughput and efficiency of the BQL engine. The BQL engine is a platform to run large-scale queries against federated data from all over the company. Our team owns the Data Fetch Layer, the critical part of the BQL infrastructure that retrieves all the data used by the engine to perform analytics. Optimizing the Data Fetch Layer has a massive impact on our product as this is where most query processing time is spent. It is under heavy transformation to scale for larger queries, datasets and time series, and support more use cases.
Because the team's charter is integral to the performance of the entire BQL engine, we collaborate heavily with many teams to get things done. In addition, the team is also responsible for Performance Engineering throughout the whole BQL stack. We are looking for a strong engineer that shares our passion for collaboration, innovation and technology to help us move our product forward.
We'll trust you to:
Influence architectural decisions and develop high performance components that meet our latency and scale expectations
Tackle new challenges and learn new technologies quickly
Think about bigger picture, take calculated risks and come up with innovative ideas
Innovate and collaborate with the team on existing and new projects
Take ownership of your projects, define 'done', and make it so
Work with engineering and product teams across Bloomberg and understand their application requirements and data access patterns
Use a test-driven approach to your work
Write, test and maintain production-quality code
You'll need to have:
5+ years of programming experience
Ability to effectively communicate within the team and with stakeholders outside the team
BA, BS, MS, or PhD in Computer Science, Engineering or related technology field.
Experience with multi-threaded applications and distributed systems
Strong understanding of OOP, data structures and algorithms
Experience with distributed system analysis and API design
Experience with profiling, benchmarking, and optimization
We'd love to see:
Outstanding communication skills
An interest in mentorship and technical leadership
A deep understanding of compute & memory trade-offs
Demonstrated experience with benchmarking & profiling Java applications and analyzing distributed systems
An awareness of emerging technical trends and a demonstrated ability to incorporate them into existing systems
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.