Live
To The Trenches
A WW1 mobile RTS, live on iOS and Google Play
Soldiers, artillery and wind-affected shells fought across a trench line. I wrote the game and I operate it: store releases, analytics, live balance changes and the monetization model. It has been in players' hands and earning for years, which is a different discipline from shipping once.
- 5,800
- daily players
- 1M
- analytics events a day
- 689
- objects in the project
Engine Template Extraction
Near complete
Pulling a reusable engine out of a shipped game
Every object, script and room in the game classified as engine or game-specific, then the engine half lifted out as a template with placeholder art and an asset import tool. The hard part was the judgement call on each file, not the copying.
Conjurer's Bounty
In development
A summoner defending a loot cache from heroes
A second game in development, built against a written design document and a modeled economy rather than by feel. Working the numbers on paper first surfaced a dozen code defects before a single balance pass was played.
Store Metrics Service
Running
Apple and Google sales in one place
Pulls sales figures from both stores on a schedule, so revenue reporting does not depend on remembering to log into two consoles and reconcile them by hand.
Game Analytics Pipeline
Running
A million player events a day into BigQuery
Telemetry from the live game landing in BigQuery, where funnel, retention and drop-off questions get answered with SQL instead of guesses. Big enough that the export quota is a real design constraint.
- 1M
- events a day
Emulator QA Harness
Running
Play-testing the real build, not a test build
Drives a shipping Android build the way a player would: OS-level touch input in, screenshots out, with no test hooks compiled into the game. It catches the class of bug that only ever appears in a release build on a real device.
Codebase Knowledge Map
Running
Two thousand linked notes over one game project
A generator that walks the game project and writes a cross-linked note for every object, script, room and shader, so finding where something is implemented stops being a grep and starts being a graph. Hand-written notes survive regeneration.
- 2,000
- generated notes
One house style, enforced at write time
A commit-time hook that checks every line of game code against a written standard and hands the violations back immediately. It holds the same whether a person or a generator produced the code, which is the case that used to slip through.
Low Rated Review Extraction
Shipped
A month of complaints as a spreadsheet
Pulls every low-rated store review into CSV, so player frustration can be read as a sortable list and grouped into themes instead of scrolled through one card at a time.
An agent system that plans an event end to end
A multi-agent service that invents an event, finds and ranks a venue against a database and the live web, simulates the booking, then writes the marketing plan and copy for it. Every agent hands back a validated Pydantic model rather than loose text, and the run ends in a generated PDF report.
Discord Bot Template
Shipped
The starting point for a bot that ships
An opinionated template for async Discord bots: project layout, Docker packaging and a Fly.io deploy already wired up, so a new bot starts at working-and-hosted instead of at an empty file. Picked up and used by other people.