I ship quality software, fast.
I'm a Lead Full Stack Software Engineer in Cambridge, Ontario, with 15 years of experience writing software. I'm leading an AI-first rewrite of a 20-year-old application at Function Software. On my own time I build AI-native products, software that is accessible to AI, and orchestrate agentic workflows. Recent work is below.
Selected work
Things I've shipped.
DevWhiteboard
Real-Time CRDT Whiteboard With an MCP Interface for Agents
Jul 2026
Yjs CRDT architecture whiteboard where agents edit the live canvas through a per-workspace-token MCP endpoint.
- Put the canvas and MCP tools on one diagram API, so there is one behaviour to keep correct
- Mapped agent input onto the human palette and layout rules, so agent output stays hand-editable
- Owned auth and billing solo: private-by-default workspaces, scrypt passwords, Stripe tier gate
ClipYourSaaS
AI Video Pipeline With Sandboxed Browser Agents
Oct 2026
AI agent films narrated demos of live web apps, with AI cost per video down 77% and time-to-video halved.
- Isolated the browser in single-session, secret-free containers behind an SSRF-safe proxy
- Made Stripe billing idempotent and order-tolerant, backed by a daily reconciliation job
- Gated quality with an automated QA re-film check, ~1,900 tests and a 156-case E2E suite
RidingDesk
Canadian-Hosted Voter CRM With CASL-Enforced Bulk Email
Mar 2026
Canadian-hosted campaign CRM that auto-pauses bulk email on bounce or complaint thresholds.
- Modelled CASL consent types and per-recipient delivery tracking in the data model, not bolted on
- Resolved wards by province, not name, to avoid collisions like Cambridge ON versus Cambridge NB
- Enforced RBAC server-side; trust tiers cap sends and need admin approval for first or 1,000+ sends
Buildventory
One Audited Command Registry Behind Web, REST, and MCP
Jul 2026
New-home builder ops platform where web, REST and MCP all run through one audited command registry.
- Scoped agents with read-only or full-access controls, so an AI does what a user can and no more
- Logged every command as an ActivityEvent with full provenance, AI-issued ones tagged actorType 'ai'
- Scored parsed fields for confidence so low-confidence values become questions, not bad live data
Norzad
Offline-First Digital Signage With Safe OTA Updates
Aug 2026
Offline-first signage platform with Android players in 8 venues, staged OTA updates and auto-rollback.
- Layered freeze recovery: panic reboot, hardware watchdog, external smart-plug power watchdog
- Preloaded verified, content-addressed loops at the bench, so screens play from first power-on
- Diagnosed field failures from uploaded bundles, kernel logs and boot history, no site visit
SupportShot
Shadow-DOM Bug Report Widget With Privacy-Scoped Capture
Jul 2026
Bug-report widget shipped as one IIFE in a shadow root, with no host dependencies and privacy-scoped capture.
- Started error capture at script execution, so async loading never drops early errors
- Ran marketing, docs, dashboard, ingest API, billing and mail outbox from one Next.js app
- Delivered tickets by email through a mail outbox, so recipients never need an account
Fireventory
Offline-First, Row-Level-Secured Platform for Fire Contractors
Jul 2026
Fire-safety contractor platform with an offline inspection PWA and Postgres RLS enforcing tenant isolation.
- Built deficiency-to-revenue as one flow: inspection to proposal, repair, invoice, no re-entry
- Mapped 17 inspection templates to Ontario Fire Code and ULC/NFPA; issued reports are immutable
- Scoped access with a 9-role matrix and a customer portal; backup restores tested by drills
AlwaysAI
Bootable Thin Client With a Pluggable AI Provider Layer
Apr 2026
USB-boot thin client where one authenticated WebSocket server multiplexes PTYs, filesystem, exec and AI.
- Shared one types package for the wire protocol so desktop and server cannot drift
- Baked the server URL into the ISO at build time so anyone can point a USB at their own server
- Put JWT on filesystem, exec and state APIs, with Playwright E2E on the real desktop and server
Show earlier projects Hide earlier projects
StorybookMe
Personalized Story Videos for Children
Jul 2025 – Jan 2026
Turn a single photo of a child into a personalized animated storybook with that child as the hero.
Protect Uploads
Enterprise WordPress Media Security
Jun 2025 – Jan 2026
Stop people from stealing or hotlinking your WordPress media. Watermarks, expiring links, and role-based access.