In 2008, I learned to program for free, from a community-built website. That stuck with me: most of what I've been able to do professionally I owe to people who built things in the open and shared them freely. Contributing back has felt less like a choice and more like a debt I'm happy to keep paying.
I have 12 years of professional experience building systems at the intersection of cloud infrastructure, embedded software, and developer tooling. I'm equally at home writing low-level Rust and C, designing distributed cloud architectures in Go, or shipping developer tools or UIs in TypeScript. Along the way I've worked across robotics, IoT, compilers, DevOps, and AI, which makes for an eclectic GitHub.
Currently working as a Software Architect in AI/robotics. Open to remote consulting and contract roles: architecture, systems design, Go/Rust, developer tooling.
Software should outlast the company that made it. Local-first, user-owned data, no lock-in. Currently deep in ATProto. Watch this space.
Actively developed:
- valgrind-macos:
Valgrind's official macOS port has been broken for years: Mach kernel internals, Apple syscall changes, and threading differences make it genuinely hard to maintain. I keep a separate fork up to date with each macOS release. It's the only actively maintained port that supports modern macOS.
- ha-proton-drive:
Home Assistant integration to back up your instance to Proton Drive. Built an unofficial SDK while the official Proton Drive CLI was unavailable, migrated to first-party CLI once released, providing native-tier reliability and UX.
- ha-addons: a collection of addons for Home Assistant.
Stable and in wide production use:
- dnd-multi-backend:
/
/
React DnD backend adapter that unifies HTML5 and touch input from a single integration: desktop and mobile, one logic. Includes a Preview component for backends without native drag preview support. Used by Electron and Servarr.
- checks-action:
a GitHub Action used to interface with the GitHub Checks API directly from your YAML workflow, including adding annotations on files, matching the outcome of the job, etc. Used by NPM and Microsoft.
- diff-action:
a GitHub Action to make diffs and publish them as GitHub Checks with automatic regression testing. Used by Traefik.
- terraform-aws-ses-forwarder:
a Terraform module to forward SES emails to another email, support regex-based routing.
- avahi2dns:
a tiny DNS server which can be used to query local mDNS records through Avahi, useful to bridge musl's lack of mDNS support. Part of Alpine edge repository and documentation.
Cool tools and experiments I made:
- kodi-addons: a collection of addons for Kodi (XMBC), currently only contains one for Dropout.tv.
- esbuild-plugins: a collection of Go esbuild plugins.
- grui: a reactive, declarative UI framework for Godot 4 in Rust. Think Leptos for Godot.
- gha-matrix-tester:
a tool to test GitHub Actions matrix configs and see what's included and why.
- mem-viz: a tool to visualize memory layout, mostly focused on macOS and dyld cache.
Here is some examples of projects I have contributed to in the past (mostly small fixes):
- three.js (JavaScript): contributed a way to import NURBS stored in FBX files and a small improvement to
LineMaterial - gping (Python): improved resizing behaviour, including fixing crashes
- pi-hole (Shellscript): fixed a crontab-related crash
- sinon (and its related fake-timers) (JavaScript): various small improvements
- lua-intf (C++): added support for Lua 5.4
- mockery (Go): improved support for generics
- go-ykpiv (Go): fix compilation for ARM architecture
- terraform-provider-auth0 (Go): fixed a crash when passing
nullin Terraform - swftools (C): improved support for some fonts
- LIEF (Python/C++): improved support for Macho binaries
- gorm SQLite (Go): improve parsing for CHECK/CONSTRAINT/FOREIGN KEY
- zed GDScript (Toml): added support for gdshaderinc files
- HA London TFL (Python): improved departures/arrivals for National Rail trains
- Physis (Rust): added GEARSET.dat support (+ other small fixes)
- V lang (V): reported issues and added test cases





