Senior Software Engineer - Electronic Trading Data Science Platform
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 Interview process
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!