C++ Application Developer
LMAX is looking for a C++ Application developer to form the basis of our quantitative risk development team.
This team works closely with the operations, risk management and liquidity teams to operate a small amount of proprietary risk for the business. In this position you can expect to take a significant role in the development process of our order management software.
A finance and/or trading background is not required.
What you will be working on
The majority of our codebase is written in C++, a language which the team has a passionate interest in.
You will be working with other members of the team, both technical and non-technical, to identify, design and implement new features for our trading system. We are looking for developers who are confident in their ability to develop software, both with others and on their own.
Working on financial trading software brings some interesting technical challenges in the areas of throughput and latency. Working here you can expect to focus more directly on software performance than at other organisations, while striving to produce code that is easily maintainable. Developing in this area you can expect to be performing investigative work, digging deep into our system to understand how it works, and how it can be improved. You can also expect to develop performance benchmark tests to monitor how are software's performance is improving over time.
- Our software runs 24x7, so some element of out of hours and On Call may be required.
Main Duties and Responsibilities
- Produce clear, well-structured and fully tested C++ code.
- A focus on writing low latency software in the hot-path areas of our system.
- Integrate into third party APIs internal APIs and a small amount of UI development for internal use.
- Spread knowledge throughout the team to avoid siloing. This is a highly collaborative team and you can expect to be working on new software features closely alongside other developers, using pair programming to increase the spread of knowledge.
- Support live quantitative order management applications
We rely heavily on validating our system using our extensive test suites. We test at all levels of our system from unit testing to full end-to-end tests in which the entire system is launched and tested in a simulated environment. All tests are run every 15 minutes on our CI to give us a fast and reliable feedback cycle. There is no waiting for overnight test suites here. As a developer at LMAX you will be expected to help maintain our test framework so that we can continue to develop high quality code at speed.
- Experience C++ development on a Linux/UNIX environment.
- Automated C++ Testing. Version Control Systems.
- Ability to understand business requirements and develop systems to meet them.
- Ability to design well documented, simple and elegant systems which are easily maintainable.
- Ability to work independently and with little guidance. A finance and/or trading background is not required.
- Experience Test driven development, with experience in testing at different levels of the system (unit, integration and acceptance tests) Continuous Integration (Jenkins).
- FIX API and binary market data protocols. Knowledge of Websocket, TCP/IP and multicast networking Interest in statistical modelling.
- Science or Maths related degree