← Everything
Alchemy, Eugene, OR (remote), 2022 to 2026

Game systems for a virtual tabletop

I led game development on a team of five to eight: the character sheets, dice and rules automation behind 25 tabletop RPGs, and the tools that let other people build their own.

25

games people can play

1,361

pull requests in four years

1,404

reviews for teammates

3 mo

for a year-long system

~3,000

lost characters found

15

sheet building blocks

~167

tests behind the rules engine

239

test files added in 2026

A year of work, shipped in three months

Daggerheart on Alchemy was projected at a year or more. The first commit was on April 17, 2026, it launched five weeks later on May 22, and the heavy work ran into early July.

Projecteda year or more
3 months

What shipped

Guided character creation, levelling up, domain cards, Hope and Fear rolls, beast forms and companions, and a new in-game character panel.

Not alone

Three teammates made about a third of the commits on it, and the founder started the system definition.

How

I designed each piece and reviewed what came back. Agents wrote most of the code.

The agent workflow is why this took three months instead of a year.

The fix players felt

For years, players wrote in to say their character had been deleted. It hadn't. It had lost its link to the game, and nobody knew why.

The cause

Creating a character saved the game's whole character list from one player's copy. Anything another player had changed in the meantime was overwritten.

The fix

I took the overwrite out, so creating a character no longer replaces the game's whole character list.

The repair

I wrote a script that found about 3,000 characters, across about 2,000 games, to put back where they belonged.

Tools for other people

In 2023 I built game systems by hand, one sheet at a time. After that, most of my work went into the tools that mean nobody has to.

Sheet Builder

Fifteen building blocks, so a game designer can lay out a character sheet without an engineer. In 2025, every hand-coded sheet moved onto it.

2024 to 2026

A language for dice

Authors write a roll like a formula, with prompts, conditions and re-rolls, instead of asking for code.

2025 to 2026

Rules as data

What a shield does to your armor is now something an author sets on the item. Stats update live, backed by about 167 tests.

2026

A designer can now lay out a sheet, write a roll and set what an item does without an engineer, me included.

Also built

3D dice

A custom dice renderer on Three.js, with physics from cannon-es.

2026

Creation and level-up wizards

Guided character creation and levelling for the systems that need it.

2026

Dice pools

Roll actions for games that count successes across a pool of dice.

2023 to 2024

Authoring tools

Asset folders, a rich-text toolbar for articles, and user-created modules, the containers that hold a game's articles, NPCs, assets and handouts.

2025

Table features

Handouts, custom trackers, roll tables, the game lobby, multi-track audio and video chat.

2022 to 2023

Data model changes

Skills and abilities moved onto the character document. System values moved into sheet data. Items and features gained structured modifiers.

2024 to 2026

Game systems

Each one is somebody's favorite game, working the way its rulebook says. Sixteen have sheets and in-game panels I built. Nine more, shown dimmer, have rules and dice I worked on.

DaggerheartBlades in the DarkALIENCall of CthulhuVampire: The MasqueradeCity of MistPathfinder 2eKids on BikesPirate BorgMörk BorgVast GrimmVaesenTales From the LoopCoriolisCandela ObscuraThe WildseaThings From the FloodForbidden LandsMutant Year ZeroTwilight 2000OutgunnedHouseholdOur Brilliant RuinEat the ReichDragonbane

Other people's work

I reviewed 1,404 pull requests for teammates. That's 43 more than I wrote.

382022
2602023
3032024
3672025
4362026

A review skill, shared

I moved my own review workflow into the team's repository so anyone could run it. It looks hard for problems, then rewrites each one as a good-faith question before anything is posted.

Reviewing other people's work was as much the job as writing my own.

2022 to 2025

Written by hand

The Borg and Year Zero systems with their character generators, the Sheet Builder blocks, and the roll command parser. I typed these in TypeScript.

2026

Directed through agents

Daggerheart, the 3D dice engine, and the modifier engine. I merged about as many pull requests a month as before, and they came with tests: 18 test files added in 2025, 239 in 2026.

What it stands on

Other people built the platform under all of this: the real-time service, the tactical map, the accounts and the infrastructure. My work sat on top of theirs.

TypeScriptReactViteApollo GraphQLMongoDBWebSocketsThree.js

Numbers counted from the repository and GitHub on October 2, 2026. The repository is private.