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.
Design You will be working with other members of the team to design and implement features for our trading system with a predominant focus on infrastructure. We are looking for developers who are confident in their ability to develop software, both with others and on their own.
Performance 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.
Production Support 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. 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.
- Continuously design and implement new features that improve the safety, performance and usability of our software.
Testing C++ Applications Developer
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.
Essential Skills / 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 that are easily maintainable.
- Ability to work independently and with little guidance.
- A finance and/or trading background is not required.
Desirable Skills / Experience
- Test driven development, with experience in testing at different levels of the system (unit, integration and acceptance tests).
- Continuous Integration (Jenkins).
- Knowledgeable in improving software performance in a systematic way.
- Knowledge of Websocket, TCP/IP and multicast networking.
- An interest in compilers.
- Science or Maths related degree.