Jason Tatton spent seven and a half years working as an automated FX trading strategist at JPMorgan. He left in 2017 to found his own company 'Concurnas.' Jason wrote this article for us last year before quietly joining AWS as a senior software engineer in London in July 2020.
Three years ago I quit my job at JP Morgan doing algorithmic trading in order to launch a technology startup, Concurnas - to create a new programming language!
What does an algorithmic trader do?
Algorithmic trading can mean many things and in my career at least it has covered high frequency sub millisecond foreign exchange market making systems to multi-second complex derivative pricing systems to multi-hour trading systems for trading orders of large volume.
Whereas the media often likes to portray computerized trading as something threatening, at least in my experience I found it to be something which helped facilitate the process of trading at scale. It has a demonstratively positive effect in reducing the cost of trading and improving efficiency and is an area full of enthusiastic people who like solving interesting complex problems and who overall want to do the right thing.
What makes a good algorithmic trader?
To start in algorithmic trading, you must be able to code. Today most graduates entering the trading world can program (or at least have a working knowledge of programming) in languages such as Python. These days the idea of a coder who can trade, or a trader who can code is no longer seen as a peculiarity. An understanding of applied mathematics and statistics is also highly beneficial.
Contrary to the popular stereotype that algorithmic trading is only for nerds, I found that really to succeed one needed to be a people person, for when we were launching new products there would be days when I'd be having one to one's with upwards of 40+ people across sales, trading, technology, compliance, market risk, marketing, legal, quantitative research, product etc.
Algorithmic trading jobs are great!
Algorithmic trading is a great area to work. In addition to it being an intellectual job in terms of mathematically modeling trading ideas and then coding them up for monetization it's an incredibly transformative area to work with lots of exposure to some very senior people in the bank. This of course opens up lots of avenues for personal career progression. In fact it was not uncommon for people to make it to MD before their 35th birthday.
In many ways I found the work in algorithmic trading to be a condensed version of the engineering and organizational challenges faced by the wider economy, a microcosm of the problems the real world faces every day from an engineering, mathematical and business process perspective except at breathtaking speed with little tolerance for error! Algo trading is a really exciting and challenging job.
So why did I leave?
This all sounds awesome right!? So how come I quit to start my own company?
The short of it is that, like many startup founders, although I really loved my job I just found something more interesting to do. People talk about how banks are becoming more like technology companies and while that is true in terms of reliance upon technology (the modern trading desk simply cannot operate without some form of automated trading), in terms of direct impact banks are nowhere near tech companies. - If you work on something like Google search you effectively have billions of customers, whereas in banks even for the most prestigious of roles you may have a few thousand customers at best.
If you want to do technical work, and enable your work to have that direct global impact, you either have to work for a large tech company or start your own!
What happened for me was that while I was sitting in the bank, I saw that the engineering problems which we were solving on a day to day basis were mostly centered around building reliable scalable high performance distributed concurrent systems - which along with computer graphics and AI is one of the most complex areas aspects of software engineering to get right. When I looked at these problems I started to see patterns and ways in which the solutions applied could be generalized, and I thought to myself, "Hey, there's a product here, and it would be beneficial for banks and the wider economy to have access to it". And so Concurnas as a programming language was born.
What does my Concurnas programming language do?
Concurnas is a high level programming language, and this makes it easy to use.
When you're working on a trading desk there is so much going on that you quickly learn that if you are to get anything done you must be incredibly focused with your time (unless you like working till 10pm and all weekend). Personally, I'd often enter a Zen-like state when I was trying to model and code. What really helped in that situation was using so called high level programming languages such as Python.
High level programming languages don't require you to write as much code as languages such as C and C++ in order to get the same amount of work done. The code is also more directed to solving business problems as opposed to technical problems, which means it's easier for a person who doesn't focus exclusively on coding in say market risk or compliance, to understand what some code is doing. I learned very early on in my algorithmic trading career that it's best to make the job of people in market risk and compliance easy. - The quicker they can sign off on your work, the quicker you can get to market.
For this reason Concurnas has been engineered to be an easy to program language, just like Python - but better.
Concurnas runs on Java and is open source
Python is a great language, but it can be slow. This is why you often find that trading systems are written in the likes of C/C++ or more recently Java.
In addition to its incredible performance, Java in particular has a wealth of open source software available for it which anyone can use for free.
Concurnas runs on Java - this way it offers the incredible performance of Java and use of all the existing free Java based software that's available. Concurnas also offers support for the 'domain specific languages' (DSLs) which inevitably get built into trading systems as developers invent their own nomenclature for describing a trading problem. This is unusual - few programming languages offer any DSL support.
Lastly, Concurnas is open source. I'm often asked why I give it away for free and the reason is that, throughout my career I, and the companies I've worked for, have benefited from open source software, in fact much of the world's software relies upon open source, and so it was my way of giving back.
Have a confidential story, tip, or comment you’d like to share? Contact: email@example.com in the first instance. Whatsapp/Signal/Telegram also available. Bear with us if you leave a comment at the bottom of this article: all our comments are moderated by human beings. Sometimes these humans might be asleep, or away from their desks, so it may take a while for your comment to appear. Eventually it will – unless it’s offensive or libelous (in which case it won’t.)