The firm's performance is heavily reliant on our data processing pipelines' efficiency. You will frequently need to tap into all facets of your developer skills to discover new and innovative methods to optimise your code. Some examples of the 'routine' challenges you would encounter and need to implement include:
- Rapid communication with exchanges via low-latency networking code;
- Context-switch-free code;
- Design and implementation of custom data storage structures with a minimal footprint;
- Data pipelines using a streaming paradigm;
- Complex trading logic for the decision engine with the least possible compute time;
- Reimplementation of existing code using advanced CPU features (SIMD).
To accommodate the firm's expansion, they are investing more efforts in the maintainability and manageability of our large, highly optimised, and multithreaded codebases while preserving its primary purpose (low latency). You will need to navigate between these worlds to achieve the best results.
In addition to coding, the Tech team constructs and maintains the global (hardware) infrastructure to facilitate trading. In your role, you will regularly be involved in all aspects of the pipeline and different tech stacks; from hardware compositions, network design to data logging pipelines for the traders and quants.
Who are we looking for?
Owing to the firm's growth, we are seeking multiple C/C++ Developers. As the new team member, you bring the following skillset:
- Comprehensive and in-depth knowledge of C and C++ in Linux
- An understanding of - and the ability to verify - the assembly the compiler will produce from the code you write
- Understanding what (GNU/Linux) system calls you invoke will do and cost
- Knowledge of x64 hardware and how to use it efficiently
- Understanding what storage structures to select or implement given their use (time complexity)
- Ability to work with debuggers and profilers
- Operative coding (git, documentation)
- Ability to learn from and contribute knowledge to the team
- Pro-active, self-motivated, honest, adaptable and stress resistant
In addition to the above, having a background in one of the specialisations is a plus:
- Experience with network engineering; either (low latency) networking hardware deployment or networking protocol implementations;
- Experience with Big Data engineering and knowledge of Big Data best practices and implementations best suited for different use cases.