I live in Vancouver, BC, and I make things.
I started out making video games, doing design, UI, and C++. Since then I've spent most of my career in product management: NLP assistants for banks, then enterprise planning tools. These days I mostly build with AI tools — agents, MCP servers, and the occasional pull request, some of which is laid out below.
Uptempo's first AI-enabled feature shipped to customers. I built the working prototype myself with an AI-assisted workflow, then worked with engineering and design to bring it to production standards.
Started as the "Plan" module: I defined the Activity business-object model, a data model that lets enterprise marketing teams calculate ROI across their full program spend; I got executive buy-in and led the team that shipped it. It reached seven figures of ARR before I moved to another portfolio.
A virtual assistant for banks. I was the company's first PM; my team built most of the application while I found my feet as a product manager, learning from customers and setting strategy.
Gaslamp's second title: a colony-building simulation, more ambitious than Dredmor and less successful.
A multi-year roguelike from Gaslamp Games, the studio I co-founded. Won a number of awards including Indie Game of the Year from PC Gamer. Millions of copies sold across our catalog.
Human-in-the-loop authorization for AI agents: the four constraints a system needs to guarantee a named human approved the exact action that runs, in ~2,000 lines of tested Python across the A2A and MCP agent protocols.
To tools I use: Linkwarden, Speakr, jEveAssets, and others.
2016–2025 — product roles; back to shipping code with AI tools
A large portion of the UI rendering engine (roughly, CSS re-implemented in C++), the terrain generator, and the character agent simulation: agents with memories, communicating with each other.
Combat, character advancement, parts of the UI, and many of the player reward systems.
Uptempo's first AI-enabled feature shipped to customers. I built the working prototype myself with an AI-assisted workflow, then worked with engineering and design to bring it to production standards.
Human-in-the-loop authorization for AI agents: the four constraints a system needs to guarantee a named human approved the exact action that runs, in ~2,000 lines of tested Python across the A2A and MCP agent protocols.
To tools I use: Linkwarden, Speakr, jEveAssets, and others.
Started as the "Plan" module: I defined the Activity business-object model, a data model that lets enterprise marketing teams calculate ROI across their full program spend; I got executive buy-in and led the team that shipped it. It reached seven figures of ARR before I moved to another portfolio.
A virtual assistant for banks. I was the company's first PM; my team built most of the application while I found my feet as a product manager, learning from customers and setting strategy.
2016–2025 — product roles; back to shipping code with AI tools
Gaslamp's second title: a colony-building simulation, more ambitious than Dredmor and less successful.
A large portion of the UI rendering engine (roughly, CSS re-implemented in C++), the terrain generator, and the character agent simulation: agents with memories, communicating with each other.
A multi-year roguelike from Gaslamp Games, the studio I co-founded. Won a number of awards including Indie Game of the Year from PC Gamer. Millions of copies sold across our catalog.
Combat, character advancement, parts of the UI, and many of the player reward systems.