Senior Software Engineer (C++) - Fixed Income Trading and Monitoring Systems
Our team is part of the Fixed Income Shared Services group. Customers rely on our systems to monitor their trading activity in real-time and search their trade history at the touch of a button.
Our data-processing infrastructure consumes and enriches data from a wide variety of Fixed Income trading platforms. The dataset we generate totals 800 million trade records and powers our "blotter" system as well as a data science platform, a trade email system and an FTP data portal. How we work
While we are a full-stack team (supporting database infrastructure, middleware, business logic and user interfaces), our work is heavily focussed on data processing. We are committed to seeking new ways to reduce code lines written for business logic, and improving the performance of real-time monitoring and searching within our systems.
The majority of the team's code is written in C++. We use Python for off-line data processing and test automation. We use functional programming languages to implement our business logic.
We work very closely with product managers and compliance teams to ensure we deliver valuable new data to our internal and external customers, whilst also maintaining robust data access controls. Alongside other teams, we contribute to the design of a continually-evolving fixed income data model. Who are you?
- You are an experienced developer who enjoys enhancing and maintaining C++ frameworks that can be used to solve a broad set of data-processing problems.
- You understand the principles of Distributed Systems, and how to harness them to design reliable and scalable solutions.
- You care about the quality of your code and are pragmatic enough to balance your desire to build new functionality to meet the requirements of our product group.
- You understand how to perform unit testing, integration testing and performance/stress testing on your software in order to deliver reliable software.
- You understand how best to monitor your systems in a production environment.
- You have a desire to work with multiple different technologies.
- You may have an interest in language implementation (although not essential for the role). We'll trust you to:
- Liaise with different product managers to convert customer requirements into a software design and deliver software features to agreed timescales.
- Collaborate with engineering teams in both London and New York to solve complex technical problems.
- Work closely with members of your immediate team to maintain the codebase to a consistently high standard.
- Manage the full SDLC for your software including production releases. You'll need to have:
- Experience with writing maintainable and efficient C++ code.
- Experience building robust, scalable production systems and working with multithreaded applications.
- Experience applying good software engineering practices to your work.
- Good communication skills and the ability to engage technical and non-technical stakeholders alike.
- Ability to work effectively in a collaborative team environment.
- Proven software problem-solving skills. Interviewing with us
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:
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.