Tell me about a software problem and I will probably spend my weekend fixing it. During the week I work at Genio, where I do everything from full-stack web to mobile to infrastructure. The harder the problem, the more fun I have solving it and unblocking people. Sometimes I blog about how I fix those problems.
Before Genio I worked at Brandwatch, where amongst other things I focused on a company-wide UI library, and at Jaguar Land Rover, where I did VR and AR work, including some factory visualisations I am proud of. Along the way I also lectured C++ game engine development at Birmingham City University, my alma mater.
You can find me managing a 2,000-member Discord server dedicated to Unix-like operating systems, working on my YouTube channel (150k views and counting), taking photos in nature, or hyperfocusing on my homelab.
Every machine I own, from my NixOS desktop to the GPU server running local LLMs, comes out of this one Nix flake.
scriptanchorI wanted to pin my server logs around the room in the Vision Pro, so I made an app that does that. It's on the App Store.
advent of codeI do this every year, every time in a new language. The last two Decembers were Gleam and Kotlin, all stars both times.
button presserMy night light needs its button pressed three times to get to the brightness I like, so I made a tiny board that does the pressing for me.
1password × runeliteI got tired of typing my RuneScape password every login, so I made RuneLite pull it from 1Password instead.
hopLets me run a bunch of Claude Code agents at the same time without them stepping on each other. Every branch gets its own worktree and tmux session.
Older experiments from my student years (2015-2018) live in the archive: games, VR demos, tutorials.