Case studies

Selected work

Longer write-ups of the systems I've built — what the problem actually was, the approach I took, and the parts worth explaining.

fullstack

Axiom InstaProof

Turning print proof approval into a self-serve browser workflow

A browser-based artwork proofing tool for commercial print: customers align artwork to bleed and cut lines on a zoomable canvas, then approve, reject or request adjustments without a back-and-forth email thread.

Next.jsReactAnt DesignCSS ModulesCanvaspdf-libreact-pdfsharp

backend

Axiom AI

Semantic product search and a conversational assistant over a print catalogue

A retrieval layer that lets customers describe what they want in plain language instead of guessing catalogue terms — hybrid semantic and full-text search over a pgvector store, wired into a conversational product assistant.

OpenAI embeddingsLangChainpgvectorHybrid searchNode.jsExpressPostgreSQLMongoDB

fullstack

AxiomPrint

A commercial print storefront with a configurator, resumable uploads and live proofing

The customer-facing e-commerce platform for a commercial print business — product configuration, large-artwork uploads, Stripe checkout and an integrated admin and CRM behind it.

Next.jsReactRedux ToolkitAnt DesignTipTapUppytus (resumable)Stripe

mobile

PowerX Field Services

Field safety audits on mobile, backed by a .NET API

A field services platform for electrical safety work — technicians run structured SAFE Program audits and NETA equipment checks on mobile, against a .NET API and SQL Server domain model.

React NativeExpoExpo RouterTypeScriptexpo-auth-sessionexpo-secure-storeMicrosoft Identity (Entra ID).NET

fullstack

WrkOS

A modular work OS — agile boards, collaborative docs, standups and billing in one monorepo

A team productivity platform built as a Turborepo monorepo: real-time collaborative documents backed by CRDTs, agile cycles and boards, standups, a password vault and subscription billing, served by a NestJS API.

Turborepopnpm workspacesTypeScriptReactYjsy-websockety-protocolslib0