If you’d like to see what I’m working on each day, check out my GitHub.

If not, here are some of the highlights:

Software⌗

reLabel

reLabel is a tool for redirecting labels in Sphinx documentation.

Technical writers go to great lengths to redirect pages and keep links healthy, but we rarely show the same care with Sphinx labels and references. reLabel was my answer to that problem.

Kitbash

Kitbash is a tool that generates Sphinx documentation for Pydantic models.

I wrote Kitbash in early 2025 to generate the YAML references for Canonical’s craft tools. To see this in action, check out the snapcraft.yaml reference and its reST source.

sphinx-rerediraffe

Rerediraffe is an actively maintained fork of the first-party sphinxext.rediraffe module.

There are many Sphinx extensions for managing redirects, but they all have pros and cons. My goal in developing the sphinx-rerediraffe fork was to create a complete redirection solution for Canonical documentation projects. The fork introduces support for external redirects, cleaner destination URLs, and a more forgiving syntax.

I’ve proposed the changes upstream to make them available to the wider Sphinx community, but this extension doesn’t look like it’s being actively maintained.

sphinx-github-include

The sphinx-github-include renders content from GitHub in your Sphinx documentation.

When writing documentation for an ecosystem of products, it’s common to reuse content from other projects. Unfortunately, Sphinx doesn’t support this out of the box. This extension uses the GitHub API to pull and parse remote reStructuredText, Markdown, or plain text into your Sphinx documentation project.

This extension was developed entirely by agents. If you want to learn more about how I handle agentic development, give my blog post a read.

ContrAI

ContrAI is a Lua implementation of Kenneth Stanley’s NEAT algorithm that evolves an agent capable of beating level 1-1 of the game Contra.

This project was developed as the final project for my senior AI elective. I even put together a goofy video explaining the NEAT algorithm and how my script works in practice.

Documentation⌗

The following pages were authored by me and are publicly available in Canonical product documentation.

Product docs

Some of my notable works from Canonical’s ‘craft’ tools. These pages range from austere reference material to comprehensive, end-to-end tutorials

Release notes

I write or review the release notes for all of my team’s product releases, but here are a few release notes I’ve written for the software I personally maintain at Canonical: