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

2026

The 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
Read the case study →

LoreFlare

2026

Turns 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
Visit the site →

Nexus

2026

A 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
Read the case study →

Wealthbox to Microsoft 365 contact sync

2026

Azure 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
Read the case study →

Lead With Intelligence

2026

Multi-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
Read the case study →

ViewForge — YMM Search & Filter

2026

Shopify 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
Read the case study →

Windows Headset Control

2026

Native Windows HID controller for wireless headset settings that the vendor software exposes only through its own bloated client.

  • Windows
  • HID
  • Native
View repository →

AI lead normalization pipeline

2025

OpenAI-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
Client work, not public

Merchant Readiness Workspace

2025

Laravel 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
View repository →

Vehicle lead dashboards

2024

React 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
Read the case study →

Drug Wars Clone

2023

A 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
View repository →

Godot game prototypes

2023

Space-trading and creature-care prototypes built after moving off Unity, including a data-driven vendor inventory system defined entirely in resource files.

  • Godot
  • GDScript
Read the story →

Enterprise Holiday Calendar API

2022

One 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
Client work, not public

Multi-region blue/green delivery

2021

Moved 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
Client work, not public

Likely Story RPG

2017

Shipped 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
Read the story →