A Day in the Life of a Quantitative Developer

By Michael Halls-Moore on June 11th, 2014

A lot of you have emailed recently asking what it is actually like to work in a quant fund. I've written before about my experiences as a quant dev but I thought I'd outline a normal day so you can get a feel for whether you would enjoy the role.

Prior to being involved in actual quantitative trading research I used to work in Mayfair (London, UK) as a quantitative systems developer. The following was a typical day for me in the earlier days of the fund:

6:00 AM

Get up and have breakfast. Check emails to make sure that the overnight cron jobs (automated tasks) ran successfully the night before. These are for downloading financial data and uploading our own internal reports. More on that later.

7:00 AM

Head in to Mayfair on the Tube. Continue reading a textbook on algorithmic trading and market accesss. Other times I read the Financial Times or a mathematics/programming textbook.

I never read the free commuter papers as they are essentially useless as regards important financial information. On the way up I grab a coffee and croissant (my vice for the day).

8:00 AM

As a quant dev, I was mostly concerned with a mixture of diagnosis and repair of abnormalities in the infrastructure that we had developed, as well as development of new requested features.

Check again that any remaining automated data tasks had successfully completed. If not then I immediately set aside time to fix the issue and make sure it did not occur again.

Check the list of RSS feeds for any interesting financial information. I like to keep on top of both new trading ideas as well as IT/developer related tools that can help us improve the business.

9:00 AM

Brief catch-up with our lead quant trading researcher to discuss any data or infrastructure requests. We also discuss the state of the US market together so we are aware of what might be coming up later on in the day.

We have until around 1pm UK time to complete any research and development tasks. After 1pm the US market opens and we generally keep an eye on its progress. While our signal generation is fully automated we still manually execute our trades.

10:00 AM

Maintenance - A late-running cron job script has failed. I have scripts in place to make sure I am emailed automatically if this occurs. In this instance it was an undocumented change to an external API. Other incidents have included buggy data points (negative values) and internal bugs.

This involves modifying some unit tests to account for the new behaviour, re-running the unit test scripts and pushing the code to the staging server and subsequently to the production environment. Since our code has good test coverage it is not a problem to be continuously deploying.

12:00 PM

Lunchtime - I always head for lunch at 12pm because most people take lunch at 1-2pm, which I find rather late. I very rarely have a "working lunch" at the desk since I don't like to eat and code! Our fund is very much a "startup" and so management are significantly more interested in "getting things done" as opposed to "facetime" for the sake of it.

Instead I spend lunchtime continung another book. This time it is on trading strategies. I tend to make copious notes, often in the nearby park. In winter, I used to head to the local coffee shop!

I feel strongly that a change of scenery is good for focus. Sitting at a monitor all day does not generally help for learning new material.

1:00 PM

Return to the office and prepare for the US market open. Obtain a list of trades via the automated Portfolio and Order Management System. This is hooked up to our brokerage and pings their API every ten minutes to obtain the current state of our portfolio. This is then compared with the ideal set of trades to form a diff set of trades to be sent to the brokerage.

We have a few Market-On-Open orders to execute. Sometimes we utilise Limit orders, but not today. Once the market opens the trades execute since they are in liquid large-cap US equities.

2:00 PM

New data sources - Financial pricing and fundamental data is the life-blood of a quant fund. The first part of the afternoon involves writing download scripts (in Python) to connect to a new API to pull in fundamental data in an automated fashion, via cron jobs.

3:30 PM

Development - The latter part of the afternoon involves specification of a new automated component to eliminte manual work. This particular job is a "spike checker" that emails both myself and the lead quant trader if any of the downloaded end-of-day pricing data moves more than 20% from the previous daily bar.

This allows us to manually enter in corporate actions and back/forward adjust our pricing data to be "research-ready". Eventually this was handled automatically as well.

5:00 PM

Management Meeting - Management, quant development and quant trading all get together for a weekly meeting. We have a "traffic light" system for issue reporting (red, yellow and green for issue severity). This helps us identify longer-term issues that can be corrected.

The first half of the meeting is given over to discussing recent performance of the funds and whether it is in line with prior backtests. The funds are performing well this week and are in-line with expectations.

The last half of the meeting discusses any operational issues. New sources of data are discussed and new strategy ideas are considered for ongoing research purposes. New tasks for automation are also suggested and prioritised.

6:00 PM

Head home. Continue reading the textbook on algorithmic trading and find some interesting information about execution optimisation. Remember to note it down upon getting home.

Downtime for the evening. Generally read through a research paper or developer tool documentation, making notes. Any useful suggestions are brought in to the next management meeting for consideration.

...And that was a typical day for me! In later articles we will consider the typical day for a quant trader.

comments powered by Disqus