I was emailed yesterday with an interesting career question about working in High Frequency Trading (HFT). The question posed was "Is it possible to get a HFT-related job in a big company without a formal degree?". The short answer is that yes, it is possible. The longer answer is that it is going to be difficult and this article will explain why.
I am going to make an assumption here that by "High Frequency Trading" the individual is referring to mili/micro-second frequency trading. This is the sort of trading that was popularised by Michael Lewis in his (in)famous book Flash Boys. Trading intraday at the hourly or five-minutely frequency does not constitute "high frequency" as regards this post.
The question is really asking whether it is possible to compete for the limited job roles that are on offer from HFT quant funds. This involves ascertaining the sorts of skills that such firms are after, attaining those skills outside of formal study and - most importantly - convincing the firms (or their HR departments) that you possess these skills despite not having academic qualifications. Thus there are three aspects to the question and we will take a look at all of them in turn.
HFT Skill Requirements
HFT is largely about reducing latency of trading orders reaching an exchange and/or knowing about what other orders are out there (or likely to be out there). Hence there is a substantial focus on techniques and skills from the realms of computer science and electronic engineering. Both of these are advanced academic disciplines with extremely healthy research communities.
Thus the skills required to work at an HFT firm largely encompass computational and electronic expertise. Here is a very broad overview of what certain HFT firms will be looking for:
- Exceptional programming capability - Strong skills in computer programming languages such as C/C++, Java/Scala and Assembler, working on mission-critical systems, either high-performance software or embedded hardware.
- Operating systems - For certain areas, a deep understanding of how modern operating systems function, with a particular emphasis on tuning their performance to reduce executional latency. Extensive familiarity with the Linux kernel is a big plus.
- Network architecture - A strong understanding of modern networking architecture based on TCP/IP (and others), including network card design and optimisation, configuration of exchange networks and familiarity with exchange hardware, as well as latency measurement and minimisation.
- Hardware - Some HFT firms are known to recruit those that have skills programming FPGAs, especially with regards to optimising known algorithms on alternative hardware.
- Order book dynamics - Experience/understanding of how an exchange limit order book functions, including how orders are routed, what regulations affect these orders and familiarity with the hardware technology that makes them up.
- Software development - Strong experience in all of the usual software development tools such as version control, continuous integration, test-driven development, cloud configuration and deployments, etc.
- Research capability - The ability to read, interpret and implement algorithms from publicly-available academic research and/or vendor whitepapers, from the fields of computer science and electronic engineering.
This is not an exhaustive list, nor is it deep. However it does give you a "flavour" of what a typical HFT firm will be looking for.
If you wish to apply to an HFT firm you will need to ask yourself whether you already possess a large fraction of these skills. If not, you need to be honest with yourself about whether you intend to put in the work to obtain these skills via self-study.
Obtaining HFT Skills Outside of Formal Study
Undoubtedly the "easiest" way to obtain some of the above skills is to either partake in formal study for a research-level qualification in a computational science or electronic engineering discipline and/or to be employed via a firm that makes use of such mission-critical technologies outside of high finance. Such industries would include subsectors of energy, aerospace and telecoms/IT.
However, if neither of these options are appealing, or impossible for you to consider, then you will need to teach yourself these skills via directed self-study over a long time period. As I have emphasised on multiple occasions on this site, such time periods can be on the order of years. You will be competing directly with individuals who have gained formal qualifications over a period of 8-10 years, with directed full-time academic study. As such, you should be willing to put in an equivalent amount of time if you wish to be a strong candidate.
Depending upon your preferred mechanism of study, perhaps the best way to start learning these skills is to obtain a syllabus from one of the top universities (e.g. MIT, Princeton, Harvard, Stanford, Cambridge, Imperial, Oxford, UCL etc) for either their computer science and/or electronic engineering courses and begin to work through the suggested textbooks and examples. This is a long road, and requires substantial time and discipline, but can be very effective if you enjoy directed self-study.
An alternative for those who are more "hands on" is to begin tinkering away with code related to the sorts of systems that will be considered. For instance, you can try implementing low-level drivers for specific hardware in order to find out how they work. You can attempt to simulate a limit order book as a standalone "server" and then send "trades" to it from another system. You could obtain a book on FPGAs and start tinkering away building your own FPGA-related code. After a few years, and subsequent projects, you will start to become quite adept at low-level systems architecture and design.
A third mechanism is to actually try carrying out HFT yourself. This is not for the faint of heart, nor for those with small account sizes. There is a good example of a publicly available tale of a retail trader who carried out HFT rather successfully, which you can read here. The likelihood is that this will initially be an unprofitable exercise. You should expect to lose money for some time before you figure out a successful approach. Remember that in HFT you are directly competing against large firms with substantial budgets and expertise. You have to truly believe that you have an edge that they do not, which can be exploited profitably over the (extensive) transaction costs.
Convincing an HFT Firm That You're Good Enough
Once you feel that you are confident enough in your skillset to begin applying for HFT jobs, you will need to convice either the firms themselves, their HR departments or the recruiters that work for them, that you have what it takes.
You will be facing an uphill battle here as recruiters and HR departments largely work on CV/resume "buzzwords" as a filtering mechanism. They will often ignore or reject any candidate that does not possess the "traditional" formal qualifications from a top university. As such, you will be need to provide alternative "credentials" in order to get a foot in the door. Remember that most of the roles will already be filled by graduates from top schools with a track record of independent research published in top journals. While this may seem "unfair", it is purely a risk management measure for these firms. It is much easier to "outsource" the assessment of candidates to other top-tier institutions and rely on credentialism and standardised grades, than it is to continually assess every CV provided without formal qualifications.
Despite the difficulty, there are paths in to such a job:
- Open source contributions - Making a significant contribution to open source software in the computational science or electronic engineering sectors will eventually provide you with a reputation as a solid software developer. You could either contribute heavily to an already existing project or begin your own and build a community around it. Such contributions will stand out on CV.
- Niche skills - Concentrate on a particular niche, such as exchange hardware design or networking expertise, and work to become extremely adept at that niche. In effect, you will want to become a "domain expert" and have a reputation for skills in this area. This could be done by writing a blog, providing video tutorials, consulting or other forms of "branding".
- Alternative sectors - You could obtain a job in an alternative "mission-critical" sector such as aerospace, energy, telecoms etc. These roles are easier to break into as the salaries will be lower than those offered in HFT. However, the skills utilised will be largely similar. Such an environment is a great way to learn about low-level C programming or FPGA development, for instance. These skills will naturally translate to an HFT environment.
- Competiton sites - There are now many sites running competitions in machine learning and software development, as well as puzzle/challenge sites that help you build your skills. These include TopCoder, Kaggle and Project Euler. Once again, becoming a top contender on these sites will help make your CV stand out.
Perhaps the biggest takeaway from this article is that none of this will be easy. It will require a lot of dedication and consistent hard work over a number of years. However, nothing worthwhile in life is ever easy! Everyone that you're competing against for one of these roles will likely have put in a staggering number of hours to build up their skills.
However, it is possible and if you are sufficiently motivated you will find such directed self-study to be extremely rewarding. Even if you don't initially make it into your dream HFT role, it will certainly bring up many other lucrative and enjoyable career avenues that you can explore.
If you have any further questions about HFT careers, or otherwise, please feel free to email the team at firstname.lastname@example.org and we will get back to you as soon as possible.