Employment History

See LinkedIn for more details.


I write articles for Linux Weekly News:

Personal projects

I currently maintain a few projects on GitHub:


This is a module that allows using Starlark from Python. Starlark is a dialect of Python, so essentially what this gives you is a safe sandbox to evaluate arbitrary expressions. This is useful when you want to execute code that you don’t entirely trust. This was originally based on pystarlark, but I ended up almost completely rewriting it. I learned a lot about Cgo and the CPython API while making this.


This module allows using Linux’s renameat2 syscall from Python. The main reason you might want to use renameat2 is to atomically swap two files. One neat thing about this is that it calls the syscall directly, so you can use it even if your glibc is too old to know about renameat2. Right now it uses CFFI; one day I plan to apply the things I learned about the CPython API while working on python-starlark-go to remove that dependency.


This is a GitHub Action to run the Pyright static type checker. It uses Reviewdog to report any problems it finds. I wrote this because I wanted the same Python type checking that I had in VSCode as an Action.


I own a floodlight camera of questionable provenance, which runs questionable software that talks to a questionable cloud service. I broke into the camera and disabled all of that, but it left me without a way to control the light. This is a tiny Go application that I wrote to allow controlling the light through Home Assistant. I’m fairly sure nobody else uses this; sometimes I think I might even be the only person who owns this model of camera. It’s mostly here in the portfolio to prove that I can write Go.

This website

My main motivation for building this website is to market my services, but I also wanted to get out of my backend comfort zone and learn a bit more about TypeScript and modern frontend things. It has been an enjoyable change of pace. I’m tagging posts about the site’s development with, if you’re interested in how it’s made. I am particularly pleased with the client-side search I implemented.


A selection of my contributions to open source projects: