The Firm
XTX Markets is an algorithmic trading firm that actively trades tens of thousands of instruments on over eighty venues with a daily volume of almost three hundred billion USD. We partner with counterparties, exchanges, and e-trading venues globally to provide consistent liquidity in the Equity, FX, Fixed Income, Commodity & Options markets, helping market participants throughout the world obtain the best prices in the various assets classes we cover.
We leverage the talent of the people who work here, modern computational techniques and state-of-the-art research infrastructure to analyse large data sets across markets quickly and efficiently, to maximise the effectiveness of our proprietary trading algorithms. The models that drive our trading strategies have evolved considerably over the last 10 years, from econometric methods that gave our company its name, to trees, to neural networks, to modern deep learning architectures. We are actively seeking new methods and ideas.
At XTX Markets technology is our business and we are a diverse organisation which attracts outstanding talent from across all industry backgrounds. We are focused on teamwork and our people collaborate on all aspects of the business, working openly and with respect for each other, our clients and the market. Our culture is non-hierarchical and one where everyone is valued. We strive for excellence in everything we do.
The Role
We are hiring a software engineer to join our exchange trading development team (ETD) which covers all of XTX’s proprietary trading technology. We take trading ideas from our Quant Research team and turn them into reality using the most appropriate technology. The team is responsible for everything from interpreting arriving market data to dispatching our orders. This unusually wide scope gives us the ability to make cross-domain optimisations unavailable to our competitors, where the same work is often spread across multiple teams.
In addition to our core trading platform, we’re currently working on an exabyte-scale highly available distributed filesystem, an optimising JIT compiler targeting massively parallel computation and several in-house custom compression codecs. Members of the team also regularly branch out into other technologies such as FPGA and GPU programming.
We’re not serving up adverts, or worrying about user acquisition metrics, or building software for a faceless third party - everything we build is for our own use, and we use what we build to trade c. $250-300 billion worth of assets every day, all in a completely automated manner.
We use the right tool for the job but it’s likely you would mostly be using C++ and Python.
Please note: To facilitate successful onboarding and set new hires up for success you must be willing and able to onboard in London for between 60-90 days at least twice in your first ~9 months of employment. We will cover all travel arrangements and costs.
Essential Attributes
- You should have a strong knowledge of modern C++ (C++11 onwards). We have the advantage of a completely post-2011 codebase and have been eager to adopt new features where appropriate.
- 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 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 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.
- Prior finance knowledge is not required.