xgbuilds

Projects you can run, not just read about.

Testing tools, WebAssembly, accessibility and AI infrastructure, built outside client work. Every project links to its code, and two of them run right here.

  • TypeScript
  • Node.js
  • Testing

Mutation testing for code changes

A passing test suite tells you tests ran, not that they'd catch a bug. ai-eng mutates the lines a change touches, flipping a condition, a boundary or a sign, and checks whether the existing tests notice.

27 of 59

real bugs reintroduced from the zod library were flagged. The existing tests caught 0.

Code (opens in a new tab)Benchmark write-up (opens in a new tab)

ai-eng on a reverted zod fix, with no knowledge of the real fix
packages/zod/src/v4/core/to-json-schema.ts   TRUST  40%   ~read closely
  mutation score 40% (6/15 killed)
  SURVIVED L163 optional-chain: params?.target  ->  params.target
  SURVIVED L168 nullish-default: params.processors ?? {}  ->  params.processors

Try them here

Both are compiled from C and C++ to WebAssembly. Every verdict comes from the compiled code, not from JavaScript.

    • C
    • WebAssembly
    • Unit tests

    A train-yard validator in C, running here

    Rules for building a safe train, written in C and compiled to WebAssembly. Try a move and the C decides whether it is allowed, and why.

    Code (opens in a new tab)

    • C++
    • OOP
    • WebAssembly

    A C++ combat engine, running here

    A turn-based engine built on abstract classes, operator overloading and manual memory management, compiled to WebAssembly.

    Code (opens in a new tab)

More featured projects

  • Node.js
  • Playwright
  • WCAG 2.1

Whole-site accessibility audits

Crawls an entire site, tests every page against WCAG 2.1 AA and Ontario's AODA, and turns the results into a grade and a ranked list of what to fix first.

aoda-scan summary for a 22-page site
  Grade C   14/22 pages clean (64%)
  1 critical, 3 serious, 2 moderate, 0 minor  (distinct rules)
  87 elements affected across 6 rules

  Fix first:
    critical Images must have alternative text (19 pages)
    serious  Elements must meet minimum color contrast ratio thresholds (22 pages)
  • Next.js
  • Fastify
  • TypeScript

A self-hosted control plane for AI coding agents

Run coding agents on Claude, Gemini, DeepSeek, Grok or Ollama with your own keys. A credential vault keeps keys away from the agent, and every change goes through diff review.

In progress
  • React Native
  • Next.js
  • PostgreSQL

KykloC, a field-service app for trades

Client, appointment, job, payment and repeat job in one flow, for cleaners, electricians and plumbers. It started from a real business: AZ Clean.

How it's built

  • Multi-tenant: every business is its own tenant, isolated in the database with PostgreSQL Row-Level Security, not only in code.
  • Offline-first mobile app, because jobs often happen where there is no signal.
  • A modular monolith with a queue and workers for reminders, repeat jobs, payment webhooks and PDFs.
  • Subscriptions through Stripe Billing, with webhooks driving the subscription lifecycle. No card data is stored.
  • MVP planned for 2027, piloting with AZ Clean.

More projects

  • Task Manager API

    ASP.NET Core Web API on PostgreSQL with Entity Framework Core, fully containerized with Docker.

    Try the API (opens in a new tab)
  • Resume Classifier

    Sorts resume text into five job families with TF-IDF and logistic regression. 97% holdout accuracy on synthetic data.

    Live demo (opens in a new tab)
  • Bash games

    Hangman, PsychoBot and a number-guessing game from my Seneca coursework. A version that runs in real Bash in your browser is on the way.

    Code (opens in a new tab)
  • Home server

    The Ubuntu server that hosts these demos: Docker, a reverse proxy, a Cloudflare Tunnel and automatic backups.