selected work

Test automation, design systems, and the developer tools in between.

pendula

Two test suites and the pipelines around them, for a real-time customer-engagement platform: a BDD regression suite and a canary/load suite I pioneered.

  • Cucumber
  • BDD
  • K6
  • OpenTelemetry
  • GitHub Actions
  • Docker

vault

An offline Mac app for the colours, fonts, palettes and type scales a project accumulates, tied together by project tags and driven from a command palette. SQLite on disk, a typed IPC boundary between main and renderer, and the colour maths as pure shared logic both processes reuse. Shipped as a direct-download DMG for Apple silicon and Intel.

  • Electron
  • React
  • TypeScript
  • SQLite
  • OKLCH
  • Vitest

drift

Point it at any URL and it reports the design system that site actually ships: every colour, type size, spacing step, radius and shadow, perceptually deduped with CIEDE2000 and attributed back to the pages using them, then measured against a reference you pick. Crawls run as queued jobs with progress over a websocket, and a finished audit can be POSTed to a callback so a CI job can assert on it.

  • TypeScript
  • Playwright
  • Express
  • BullMQ
  • WebSockets
  • CIEDE2000

kern

The shared component and token layer the lab tools are built on: one system instead of four, published from its own repo and consumed by every experiment.

  • React
  • TypeScript
  • Storybook
  • Design Tokens
  • CVA

haus

A token-first React design system: W3C DTCG tokens in OKLCH, twelve components, a live Storybook, and a colour package on npm that two other projects here depend on.

  • Design Tokens
  • W3C DTCG
  • OKLCH
  • React
  • Storybook
  • npm

core

A team decision log: architecture decision records with a permission-gated lifecycle, two separate audit trails, and citations to the code they govern, so a decision can tell you when the thing it decided has changed underneath it.

  • Next.js
  • Postgres
  • Drizzle
  • better-auth
  • Versioning
  • Mermaid
  • Vitest
coming soon

loom

An MCP server and agent that catch a design system drifting, with Figma as the intent and shipped CSS as the reality, pausing for a human when the call is genuinely ambiguous.

  • MCP
  • Agents
  • Figma API
  • Redis
  • Human-in-the-loop