$ cat /etc/motd

 _    _      _
| |  | |    | |
| |  | | ___| | ___ ___  _ __ ___   ___
| |/\| |/ _ \ |/ __/ _ \| '_ ` _ \ / _ \
\  /\  /  __/ | (_| (_) | | | | | |  __/
 \/  \/ \___|_|\___\___/|_| |_| |_|\___|

The Hub of Heliopolis — notes on technology and my experiments with it.

$ ls -lt posts/

2026

  1. 26m

    The State of Python Profiling in 2026

    CPython now ships its own sampling profiler, free-threading is going mainstream, and coding agents have started reading profiles. In this post I look at where Python profiling stands today, compare Tachyon, py-spy, Scalene and Austin, and go through what's new in Austin 4.1.

  2. 11m

    Busting performance issues, AI edition

    Coding agents are fast becoming the main generators of new source code, but they are also being used for code review, finding and fixing bugs. How can they be used to the best extent to discover and fix performance issues?

2022

  1. 34m

    Running C unit tests with pytest

    In this post I will describe my approach to C unit testing using pytest. In particular, we get to see how to gracefully handle SIGSEGVs and prevent them from stopping the test runner abruptly. Furthermore, we shall try to write tests in a Pythonic way.

  2. 12m

    My first close encounter with the Linux kernel source

    I finally had the chance to set some time aside to touch the Linux kernel source, for fun and profit. This is the story of how I implemented a new BPF helper.

2021

  1. 5m

    Increasing Austin accuracy with a dobule-heap trick

    The latest version of Austin comes with a heap size option that can be used in increase the accuracy with which invalid samples are detected. In this post I give a brief description of how this works.

  2. 4m

    How I completed the Hacktoberfest 2021 challenge with a profiler

    I shall reveal to you how I managed to complete the Hacktoberfest 2021 challenge with just a profiler. So read on if you are interested!

  3. 5m

    Spy on Python down to the Linux kernel level

    Observability into native call stacks requires some compromise. In this post I explain what this actually means for a Python tool like Austin.

  4. 6m

    How to bust Python performance issues

    In this short post I will try to convince you of how easy it is to find performance issues in your Python code and how you should develop the habit of profiling your code before you ship it.

  5. 17m

    Looking Back at My Time at Avaloq

    My adventure with Avaloq started in August 2016 and ended in January 2021. It's time to look back at what has happened during these years.

2020

  1. 14m

    The Austin TUI Way to Resourceful Text-based User Interfaces

    The latest version of the Austin TUI project makes use of a custom XML resource file to describe and build the actual text-based UI, using curses as back-end. In this post we shall see how one can use the same technology to quickly build reactive TUIs using Python.