Gary Collier knows about writing software for hedge funds. Since graduating from Cambridge University in 1991, he's spent 15 years working as a software engineer at hedge fund group Man Investments, and eight years as a software engineer for AHL, Man's quantitative fund. During this time, he's led teams developing Man's quantitative trading platform and worked across Python, Java, Oracle, MongoDB and Linux. Today, Man AHL mostly codes in Python and Collier is the co-chief technology officer (CTO).
We asked Collier what it takes to code in Python for a major quant fund. - And whether learning how to code as a second career after trading is actually viable. This is what he said...
Why Python? Which other languages do you use?
"Python has become the de-facto language for Data Science. It’s very good for two main reasons. Firstly, it enables our quantitative researchers to build models that test data and test their hypotheses about that data. Secondly, it allows them to do so in a way that allows them to get instant feedback in the form of, say, a graph. Python is very good for interactive research. It’s also a good language for software engineering and for creating programs that codify our research models so that they can trade automatically around the clock.
It helps that Python now comes with a big ecosystem of mathematical, statistical and machine learning libraries that support the kinds of research we’re doing. Python and open source go hand in hand. GitHub is a huge open source repository and Python is one of the most active languages on the site. More and more companies are putting their Python code into the public domain and it’s something developers anywhere can build on. For example, there’s an open source product called airflow. This is a very comprehensive piece of scheduling software which allows you to manage a complex network of dependencies and it’s something that’s on trial in one of our teams right now."
Would you hire coders from a rival company - say Airbnb, who don’t know finance? Is it worth learning how to code as a second career?
"We would absolutely hire people who have been coding outside of the finance sector. When I’m hiring, I don’t have a hard and fast rule that people should come from a finance background – in fact, many of my most successful people have come from a non-finance background. It’s much easier to teach market knowledge than it is to teach people a passion for coding – the latter is impossible to learn. The real differentiator for technologists at Man AHL is this passion for technology running through their veins – many have been hobbyists for years. For this reason, if you’re trying to learn coding as a second career, getting to a truly high standard can be a real challenge. The best coders have had a level of immersion over a period of years in their particular domain and that’s a real differentiator."
How do you use Python at Man AHL?
"The quant researchers at Man AHL use Python for their day to day research activities. All the exploratory analysis, getting data, testing of hypotheses and building of trading models is done using Python. None of our quant research is done using spreadsheets: all our researchers are all working in the Python environment, testing their ideas.
We have around 50-60 technologists at Man AHL. Half work directly with our researchers while the other half work on the core underpinnings of our research and trading platform. The technologists who sit with the researchers aren’t necessarily more finance minded than the technologists who are working on the trading platform, but they do tend to know our business more. It often happens that I employ someone in a hardcore technology role and that they transition into a more quant-facing role, where they take their technology skills and knowledge of the platform and use them to directly build models with our quant team."
Which are the most common mistakes junior coders make?
"Junior people will often come from an academic background or will have been hobbyists who’ve worked on their own projects. The biggest difference for them is the level of rigour and attention to detail we have at Man AHL. Absolute precision is important and quality testing is crucial. Everything we do is peer reviewed, so mistakes don’t slip through but getting this approach ingrained in people early on is very important.
The other thing we find is that junior people will often write some code, press commit and think that because the code is stored in a central repository it’s complete. This isn’t so: the code is only complete when it’s successfully deployed and integrated into the trading system and adding value."
Man AHL has been in systematic trading for 25 years. How has the use of technology changed during that time? How has the code you use evolved?
"The languages we use have changed. – We didn’t always use Python. In 2001, for example, the chief language we used to build our trading models was SD. This was a language known as Strategy Design, and it was built in-house by people working here. We then moved to C++ and Java for trading systems and moved from SD to MATLAB and R for quant research. Now we’ve converged on a single language – Python – for both building the production system and for doing the research.
Focusing on the trading language alone is to miss the big change in technology in the past few years though. The single biggest positive disruptive change is open source. This is the thing that has really changed the whole technology paradigm from 20-25 years ago. It used to be that you needed to learn a new skillset every five years. Now, you need to constantly learn new skills as people build new frameworks to do different jobs: knowing Python or C++ is only part of the armoury – you also need the ability to find things in the open source world and the engineering expertise to know which variant is right for you and how you can adapt it for your purpose."
Do your quants program too?
"Yes. All our quants need to be able to program and to have computer science knowledge. Machine learning and natural language processing skills are important too: you can’t have a single skillset."
Would you hire a brilliant coder who hadn’t been to university?
"Yes, I’ve got two in the team now. One is a super-talented chap who joined us as a support engineer. He had no former computer science background but showed a really deep enthusiasm for wanting to code and did a lot of work in his spare time. The other aborted his degree and got a job here.
It’s more difficult to get in if you haven’t been to university though: I receive hundreds of CVs each month and it’s impossible to give deep consideration to them all. Ultimately though, I would hire coders irrespective of their background – coding is a great leveller; it cuts through personal characteristics and background. My own personal background is in physics: I taught myself coding as a hobbyist when I was 11 and now I do this full-time."
Man AHL has recently launched its 2017 coder prize competition. Open to students in the UK, EU and Switzerland, it offers cash prizes of £5k, £2k and £1k for the three winning entries. The closing date for entries is January 14th 2017. Click here to see the current leader board.
Photo credit: Royal python by hehaden is licensed under CC BY 2.0.