A leading quantitative-driven electronic market-maker is looking for a new Software Engineer to join their Front Office C++ Team.
A London based quantitative-driven electronic market maker are building software to trade over $150 billion worth of assets every day in a completely automated manner. They are looking for a new software engineer to join their Front Office C++ Team. The team currently consists of seven of the best C/C++ engineers in the world who work collaboratively to solve the most interesting problems in financial technology in a non-hierarchical manner. There is no legacy code – everything they build is for their own use!
Role Responsibilities and desired skills
- You should have a strong knowledge of modern C++ (C++11 onwards). We use a lot of modern C++ (we have the advantage of a completely post-2011 codebase) and have been eager to adopt features from C++14/17 as soon as they are released (std::optional and std::any finally!), you’ll even see some C++20 features in use throughout our codebase (we’re a big fan of string literals as a template parameter).
- We expect a strong understanding of what really is going on inside a computer when your code is running, for example caching, paging and system calls, as well as how these work and why they work like that. Knowledge of the execution pipeline in a modern CPU is even better: when are instructions executed out of order, why would they be, how is the branch target predicted for an indirect call? A lot of our code is very high performance, and the only way to achieve that is by understanding what’s really going on when it’s executed.
- You should have a good competence in mathematics, at the very least being comfortable with calculus and matrices. Much of our work involves designing and implementing numerical algorithms, for example a previous project involved developing a new technique to solve NP-hard integer-programming problems with special structure (we saw a 100,000x increase in performance in some pathological examples!).
- You should have a good familiarity with common algorithms and data structures and their performance trade-offs, as well as the ability to reason about the running time of algorithms that you haven’t seen before. Although traditionally this would be covered in a computer science degree most of our existing team are self-taught, so a computer science degree is not necessarily a prerequisite.#You will often have to work independently designing complex systems that need to run uninterrupted for long periods of time, so practical experience designing and implementing software systems is a plus.
- All of our development is in a Linux environment, in fact many of us run Linux on our desktops also, so familiarity with the Linux command line and common tools is a plus but by no means a necessity.
- We use a lot of Python for less performance critical tasks (we try and keep as much business logic out of C++ as possible), so familiarity with Python or another scripting language is a plus. If not then don’t worry, it’s easy to learn.
- Prior finance knowledge is not required
- FPGA knowledge (beneficial, not required)
- Up to £100,000 (depending upon experience) with some exceptional bonuses
For more details regarding this opening please contact email@example.com or if you prefer a confidential discussion please call Laura on +44 (0)20 3006 3639