Senior Software Engineer - BQL Performance Engineering
New York, NY
Posted Sep 30, 2021 - Requisition No. 95968
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.