About

My name is Tim, I'm a software and data engineer working in the financial industry. (more)


Latest posts

Apr. 16, 2026

Free T(h)r(e)ading: A Trading Systems Journey Beyond the GIL

Originally presented at PyCon DE 2026

Python 3.13 shipped something significant: an optional free-threaded mode where the GIL is disabled and threads can run on real CPU cores simultaneously. I wanted to know whether this actually matters in practice, so I built an experiment around something I know well — algorithmic trading infrastructure.


Why Trading?

Trading systems make a good experimental subject. They’re latency-sensitive, they juggle multiple concurrent data streams, and they involve both I/O-bound work (receiving market data, routing orders) and CPU-bound work (maintaining an order book, running signal evaluation). The metrics are also concrete: you either processed the tick in time or you didn’t.

Oct. 26, 2022

Getting Data from Python to R using Reticulate

I use the reticulate R to Python interface quite regularly. Besides the yelling when a numeric is once again converted to float, the transfer-time of pandas DataFrames with their memory usage has been a regular topic.

To get some data and maybe a definitive answert to the question “What is the best way to transfer tabular data from Python to R?” I set up a pair of tiny scipts.

tl;dr: It depends. If you have relatively small tables (< 10.000 rows) returning pandas DataFrames will be your best choice. For anything over that size returning arrow Tables seems to be the way to go.

Latest photos

obergurgl.jpg frozen-coast.jpg brussels.jpg