Senior Python Software Engineer/ Architect - BQL Team
New York, NY
Posted Dec 4, 2017 - Requisition No. 63691
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. With petabytes of data, our Bloomberg Query Language and Analytics team is at the forefront of innovation in our business.
We're developing a Cloud based low latency Analytics Platform and Screener Engine. We're also working to define, build and support a client query language to allow users to express complex analytics for processing on the Analytics Platform. Aside from analytics, the client query language (known as BQL) can also be leveraged to express complex screening capabilities.
Our team of 20+ engineers is passionately working on three core initiatives at the moment:
- Architecting and designing the entire eco-system for the Analytics Platform and Screener Engine
- Developing core components that form the building blocks of the Query engine and a metadata framework that drives it.
- Building a python test framework for the automated testing and quality assurance of the entire eco-system.
We are looking for strong Python Engineers/Architects to design and build a Python Engine for executing client quires that's so critical to our success. That's where you come in.
We'll trust you to collaboratively design and develop:
- The core Python engine for concurrently executing multiple client request for complex (user defined) analytics
- Data retrieval components and analytic functions
- Containerization of the Python engine using Docker
- Secure user defined functions, while validating that the functions are not malicious
- Focus on low-latency and compositional analytics
By actively participating in our daily scrums, you'll establish best practices, influence architectural decision and build a performant execution engine.
You'll need to have:
- 2+ years experience building Analytics Platforms using Python
- 2+ years experience with distributed computing
- 4+ years experience programming in Python with solid understanding of Python internals
- 2+ years experience working in a test driven, Agile environment
- 2+ years architecting and engineering systems in a production environment
We'd love to see:
- Experience with Docker and Kubernetes
- Basic java programming skills
- Numpy, Scipy and Pandas expertise