Senior Software Engineer (C++/Python) - Electronic Trading Data Science Platform
Posted Jan 12, 2022 - Requisition No. 93050
We are a newly formed team with presence in both our London and New York offices. Our team designs and builds scalable infrastructure and tools to ingest trading data from several different asset classes such as Fixed Income, FX and Equity into a trade store based on PostgreSQL/Citus. We already store more than 8 years’ worth of trading data and process more than a million events on average every day! On top of the ingestion framework, we develop a data toolkit that will allow internal and external clients to query and analyse their trading data, compile reports or test trading models.
We collaborate closely with other teams in the larger Electronic Trading department and work daily with our business counterparts to move the platform forward and influence its direction. We are dedicated to sharing our knowledge regularly and to creating a collaborative environment.
What's in it for you?
- We put emphasis on doing things right, so you’ll be using industry best practices for testing, automation, and CI/CD (CMake, Google Tests, Pytest, Jenkins, Git etc.).
- We own the full development process – from gathering requirements to testing, rollouts, and maintenance.
- We rely heavily on database technologies such as PostgreSQL/Citus, Greenplum and internal database solutions (recently open sourced Comdb2)
- We provide Jupyter notebooks as a sandbox for our users
- We work with Kafka and similar internal message queuing solutions
- We use Splunk, Humio and Grafana for log collection, dashboards and alarming
We’ll trust you to:
- Work closely with our Product partners to flesh out requirements and collaborate with other Engineering groups
- Design, build and release new features to our clients whilst keeping the system as stable as ever
- Always keep in mind scalability when developing solutions
- Be a key contributor to the team, drive the incorporation of new technologies, improve development practices and share your knowledge to drive the growth of the team
- Be creative to solve highly complex problems while understanding the scope and impact of your work
You’ll need to have:
- Expertise in C++ and/or Python
- An aptitude for problem solving, and a desire to build software solutions to complex business problems with experience getting involved in the full software development lifecycle
- Experience managing projects or working with multiple stakeholders to deliver business value
- A team player attitude and collaborative approach to development
- Commitment to building quality software through tests
- Passion to drive technology and product evolution
- Experience applying good software engineering practices while delivering production quality systems to clients
- Good communication skills to work with other teams and explain technical problems to non-technical stakeholders
- An open mind to using new technologies
We’d love to see:
- Experience in database technologies such as PostgreSQL, Citus, Greenplum
- Expertise in profiling and improving performance
- Experience working with a distributed system and an understanding of its unique challenges
- Experience with high volume, high availability distributed systems
- Experience with messaging queues
- Experience with multi-threaded applications
- Experience with data science frameworks and libraries
We believe interviewing is a two way street. It's a way for us to get to know you and your skills, and also a way for you to learn more about the team, our technical challenges, and what you'd be working on. The content of each interview round will be tailored to the role and your background, but the general framework can be found here: https://www.bloomberg.com/careers/technology/engineering/software-engineering-experienced-hire
We want to ensure you can put your best foot forward throughout the process, so if you have any questions or need any accommodations to be successful, please let us know!
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.