Recent Writings
Over Twenty Years of Writing Tools
A retrospective of over twenty years worth of writing tools that I've used to write online.
Unpack for keyword arguments
Keyword arguments can now be more narrowly typed by using typing.Unpack and typing.TypeDict.
uv run for running tests on versions of Python
Using uv run with make to replace tox or nox for testing multiple versions of Python locally.
Farewell to Michael Ryabushkin
In early May of 2025 Michael Ryabushkin (aka Goodwill) passed away. He was a great friend and an even better person. I will miss him dearly.
TIL (Today I learned)
Merging two git projects
Setting environment variables for pytest
Using SQLModel Asynchronously with FastAPI (and Air) with PostgreSQL
Single source version package builds with uv (redux)
How to type args and kwargs
Single source version package builds with uv
Removing exif geodata from media
Featured Writings
The Thirty Minute Rule
What to do when you get stuck on a coding issue for more than 30 minutes.
What's the Best Thing about Working for Octopus Energy?
An in-depth discussion about my employment at Octopus Energy.
Code, Code, Code
I'm often asked by new programmers how they can forge a path into using their skills professionally. Or how they can get better at writing software. In this article I share the secret master-level method to improvement.
I Married Audrey Roy
The story of one of the best days of my life.