Twenty-eight projects and counting. Most were built to solve something in my own life
before they were anything else. Statuses are honest — plenty of this is still in flight.
Oathblade
In development
iOS · Three.js · TypeScript
A dungeon crawler with frame-tight melee — nine enemy archetypes, each with its own parry and perfect windows, feints, unblockable strikes, and guard-shatter. Engine, combat, stats, gear, forging, and merchants are done; art and balance are the current work.
Tactical Board Game
In development
TypeScript · Three.js · Colyseus
Turn-based squad tactics on a 3D board — Fire Emblem presentation, Counter-Strike strategy. Authoritative multiplayer server, elevation and line-of-sight, an action-point economy. Currently in playtest on new combat mechanics.
Vault 21 Casino
Live
Realtime multiplayer PWA
Four casino games played simultaneously by real people, with no dedicated game server. Detailed above. Play it.
Sub Roguelike
Playable prototype
Hardware sim · force-feedback wheel
A submarine cockpit driven by an actual racing wheel and pedal set — the wheel is the rudder, the pedals are ballast and throttle. Expedition runs with charting, salvage, and between-dive upgrades. Runs on real hardware today.
Retro Fighter
In development
Rollback netcode
A Street Fighter III-style online fighter with rollback netcode — the technique that makes online fighting games playable across distance, and one of the harder things to get right in real-time multiplayer. Netcode works; original art is next.
Punchlist
Live
Field-service PWA
Jobs, clients, payment tracking, photos, customer confirmations, reminders, and multi-stop route optimization — all running on free infrastructure. Try it.
Draft Anybody
In development
Next.js · Supabase
A web app currently at vertical-slice stage. Scaffolding, schema, and build pipeline are in place.
Kalshi Trader
In development
Python · Next.js · SQLite
Research and position-tracking for prediction markets. Pulls live market data across seven categories, scores opportunities against a signal model, and enforces position-sizing rules the way a trading desk would. Phase one running; metrics layer next.
Deck Builder
In use
Python · python-pptx
Turns a structured outline into a finished PowerPoint — eight slide types, four themes, correct 16:9 geometry. Built because rebuilding the same deck by hand for every prospect is not a good use of a sales rep's week.
EPUB to Audiobook
In use
Local neural TTS
Converts an ebook into a chaptered audiobook using a speech model running entirely on local hardware — no cloud service, no per-minute cost, nothing you own leaving the machine. I listen to the output.
Content Pipeline
In development
Voice synthesis
A voice-cloning narration pipeline for publishing to YouTube and Spotify — script in, finished narrated audio out, in a voice trained from a short reference recording. Environment built; training data pending.
Card Scanner
Awaiting hardware
Flask · Tesseract · SQLite
Feeds sports cards through a sheet-fed scanner, reads player, year, and set off the card with OCR, matches against a catalog, and prepares marketplace listings in bulk. Software is done and waiting on a scanner.
Macropad firmware
In daily use
AutoHotkey v2
A five-layer keybinding system for a six-key macropad with a rotary encoder — layer switching, per-application profiles, and bindings chosen so nothing leaks input into games that watch for it.
Telemetry Coach
Design stage
Sim racing · data analysis
A driving coach that reads live telemetry from a racing sim and compares your line, braking points, and throttle application against reference laps on laser-scanned tracks.
Off-grid power system
Designed
Solar · LiFePO4 · satellite
A portable satellite-internet and power build for a boat, a basecamp, or a car — sized from an actual daily load budget of roughly 470 watt-hours, with panel, battery, and charge-controller selection worked from that number rather than guessed.