I build specialized applications and developer tools, usually for workflows awkward enough that generic software does not fit them well.
The current work is deliberately small in number: finish the applications, keep the genuinely reusable tools, and focus new interactive work on the current Godot projects.
- DR Companion — a full desktop MUD client for DragonRealms built around Lich 5, with maps, scripting, sound, art, automation and a Tauri/React desktop interface.
- Magi Reader — an illustrated, narrated reading engine with word-level highlighting, multilingual support and classroom workflows.
- QuickGrade — local-first paper-test grading from a camera or photographs, including written-answer workflows and spreadsheet/document export.
The useful part of a project is often the tool that falls out of solving it.
- Quartermaster — capability-aware scheduler: a job runs only when the machine can prove its dependencies are available.
- screen-capture-mcp — gives an MCP client visual feedback from a Windows desktop or application window.
- project-42-blockchain — peer-to-peer dual-signed event ledger for Godot; no token, mining or trusted server.
- DR Genie settings — validated highlights and sparse sound alerts for DragonRealms in Genie.
The common theme is making unreliable or manual work inspectable and repeatable: explicit state, deterministic files, tests that fail loudly, and documentation that preserves why unusual decisions exist.
Magi Reader keeps the engine separate from the books. The two maintained example packs are:
World Aflame is the card-game project worth continuing, with a Godot port and a reusable peer-to-peer ledger split into its own library.
Current gameplay work is focused on the Godot port. The original browser repository remains as a playable WebRTC implementation and reference.
Twenty years teaching English in Thailand, South Korea, China and the United States. MEd in Learning Design and Technologies, MA in English. Earlier work included intelligence analysis in the US Army and technical writing for BASF in Korea.
That background shows up in the software: I care about whether a system explains itself, whether a user can recover when something goes wrong, and whether the documented workflow matches what the program actually does.

