Work
Things I've built
A mix of shipped products, client work and prototypes. Where the repository is public it's linked; where the story is more interesting than the code, the write-up is.
MetaDB
2026The storage layer under ViewForge, pulled out and made general. Shopify metaobjects are a fine system of record and a poor query engine, so durable merchant-owned data stays in metaobjects and a disposable Postgres mirror answers the filtered counts, sorts and joins Shopify will not. One sync engine writes to both, and its log of in-flight writes lives in signed Shopify metafields, so a server dying mid-write leaves enough behind for another one to finish the job. Shipped to other apps as a library rather than a service, so each keeps its own Shopify access and rate-limit budget.
- TypeScript
- Shopify
- PostgreSQL
- React Router
LoreFlare
2026Turns a play session into something you keep: a Journey, the Moments inside it, and the Story told afterwards. Cards are unique collectibles that carry their history with them between owners, so provenance is the product rather than a feature bolted to it. .NET 10 API over PostgreSQL with a TypeScript client, in invitation-only beta.
- C#
- .NET 10
- TypeScript
- PostgreSQL
Nexus
2026A book of record for AI agent work. Agent sessions produce something worth keeping, a diagnosis or a settled decision, and then it dies in a chat window and gets rebuilt at full price a month later. Nexus gives findings, decisions, open loops, patterns and runbooks a structured home in git, readable by any Claude, GPT or local model on any machine without being told what exists. Exposed over MCP, so the agent recalls prior work before starting rather than being handed it.
- Node.js
- MCP
- TypeScript
- Git
Wealthbox to Microsoft 365 contact sync
2026Azure Functions integration for an SEC-regulated financial services firm, holding a CRM and a Microsoft 365 tenant in agreement one direction. Ports and adapters over a canonical schema.org contact model, with incremental processing, a failure classifier that dead-letters a bad record instead of stalling the run, and no PII in any log line.
- C#
- .NET 8
- Azure Functions
- Microsoft Graph
Lead With Intelligence
2026Multi-tenant Laravel platform that replaces the name/email/message contact form with a conversation that asks the follow-up a receptionist would, scores how serious the inquiry is and routes it accordingly. Began as one site's intake form on a Cloudflare Worker and was rebuilt white-label once it outgrew that.
- Laravel
- PHP
- Vue
- Multi-tenant
ViewForge — YMM Search & Filter
2026Shopify compatibility engine that lets a merchant in any vertical declare what fits what: car year/make/model, tractor brand/series, printer SKU. Eight presets over one template and node tree, a parser for the messy supplier CSVs the data actually arrives in, and storage on native Shopify metaobjects rather than a bolted-on external database. 303 tests.
- Shopify
- TypeScript
- Metaobjects
- React Router
Windows Headset Control
2026Native Windows HID controller for wireless headset settings that the vendor software exposes only through its own bloated client.
- Windows
- HID
- Native
AI lead normalization pipeline
2025OpenAI-backed normalization for automotive lead data that arrived in whatever shape each source felt like sending, reaching 90% accuracy across millions of records. Built behind the strategy pattern so a new source is a new strategy rather than another branch in a method nobody wants to touch.
- C#
- ASP.NET Core
- OpenAI API
- Azure
Merchant Readiness Workspace
2025Laravel and Vue application that walks ecommerce merchants through a guided returns-maturity assessment and turns the results into ranked, actionable operational recommendations.
- Laravel
- Vue
- PHP
- MySQL
Vehicle lead dashboards
2024React dashboards on ASP.NET Core APIs over Azure Cosmos DB, built to a global automaker's contractual requirements and serving thousands of SSO-authenticated users. The legacy SQL data access underneath became unit-testable expression builders on the way through.
- React
- ASP.NET Core
- Cosmos DB
- Azure
Drug Wars Clone
2023A C# console trading game in the mould of the 1984 original: market simulation, randomised price shocks, inventory and debt mechanics driving every decision.
- C#
- .NET
- Console
Godot game prototypes
2023Space-trading and creature-care prototypes built after moving off Unity, including a data-driven vendor inventory system defined entirely in resource files.
- Godot
- GDScript
Enterprise Holiday Calendar API
2022One authoritative answer to what counts as a business day, replacing the spreadsheets and hardcoded arrays several teams at a national mortgage lender were each maintaining separately. Writing it was the easy half; documenting it and talking other teams into adopting it was the job.
- C#
- ASP.NET Core
- REST
Multi-region blue/green delivery
2021Moved a national mortgage lender's mission-critical CI/CD onto multi-region blue/green deployments with Helm and CircleCI on AWS, holding 100% uptime on services that could not be taken down to be upgraded.
- Helm
- CircleCI
- AWS
- CI/CD
Likely Story RPG
2017Shipped to the Windows Store and Google Play with my brother. Deployment was blocked for months by an RPG Maker MV engine bug; I traced it to an async flag left off and published the fix to the community forum.
- JavaScript
- RPG Maker MV