Building an algorithmic trading platform in Python 3
a talk by Víťa Šmíd

For the past three years, my colleagues and I have been developing and operating a Python system that trades in the stock market.

I am going to tell you a story of how we developed and scaled this platform. We made some rather good decisions, as well as many mistakes that everyone can learn from. Some of our code is open source and you can use it in your own projects.

We started with a small event-driven application built with asyncio. As our trading expanded, our application has grown into a multi-agent monolith: hundreds of modules operating in a single asyncio-managed process. Today, we are moving to a more distributed approach. Some parts of the platform run in isolated processes and communicate asynchronously.

I am going to show you a few challenges we have faced on this journey, and what they taught us about Python, asyncio, distributed systems, debugging, and making painful compromises. You don't need to know anything about trading. In fact, it turns out that these are mostly quite fundamental computer science problems that pop up over and over again, regardless of what you're building…

This talk is aimed at advanced Pythonistas. (While it might be interesting for beginners we recommend them to choose another talk.)

Víťa Šmíd


Víťa travels the world, writes software and ponders on philosophy.

He likes to solve hard problems, preferably involving mathematics, finance and lots of data. Python has been his language of choice for many years and lately he's very much into latest developments like asyncio and type hints.

All speakers and talks