Selected work

Case studies — complex products, shipped under real constraints.

Ten projects across fintech, specialist lending and B2B SaaS — from solo-built AI-native MVPs to design systems absorbed into enterprise platforms already serving thousands. Different domains, same job: make the complex usable.

CRESTR — commercial real estate app

Selected projects over the last 5 years

10 projects, one through-line — complex products shipped under real constraints. The variable is scale. Some are AI-native MVPs designed, prompted and built solo in a month — Cubik's lending platform, a reverse-matching CRM for a car dealer. Others are design systems absorbed into enterprise platforms already serving thousands — Jamf, CWT, Coincover. Fintech and specialist lending run through most of it; conversational quote engines, mortgage affordability, pricing calculators. Different domains, same job: make the complex usable.

01

Cubik CRM — A solo-built broker admin suite that fuses AI quoting with pipeline tracking.

Cubik CRM turns broker enquiries into pipeline-tracked deals in a single workspace. Brokers generate indicative quotes for Bridging and Commercial Buy-to-Let in under 60 seconds using an embedded AI quote engine, then track cases from enquiry to completion without switching tools. Designed, prompted, prototyped and shipped as a four-week solo build using Claude Code as the full production pipeline.

Cubik CRM — login across desktop and mobile

Specialist lending brokers were managing cases across spreadsheets, calculators, and email — manually recalculating every quote when terms changed. Pipeline visibility was non-existent and data was lost at every handoff point between tools.

  • Quotes recalculated manually on every change
  • No pipeline visibility — cases stalled silently
  • Data lost or duplicated at every tool handoff
  • Three separate tools pretending to work together
  • No audit trail — case history impossible to reconstruct
Cubik CRM — problem

Cubik shipped as a connected workspace in four weeks. Brokers generate indicative quotes in under 60 seconds, track cases from enquiry to completion, and review full audit trails — without switching tools or context.

  • Indicative quote generated in under 60 seconds
  • Full case lifecycle in one workspace
  • Audit trail and affordability data alongside deal stages
  • Brand to working product in four weeks solo
Cubik CRM — outcome

Tool selection is part of the design decision. Claude Design extracted brand tokens; Claude Code built the React frontend directly from Figma — no screenshots, no manual handoff. AI was the production pipeline, not a helper.

  • Figma
  • Claude Design
  • Claude Code
  • React
  • Node.js
  • PostgreSQL
  • Tailwind CSS
  • Vercel
Cubik CRM — tools
02

Anything Medical — Full-stack website and CRM built for a UK medical distributor.

Anything Medical needed to replace a single-page WordPress site with no lead capture and no product detail. I built a 20+ page marketing site with a 16-product catalogue alongside a companion CRM — capturing every enquiry, routing it to the right sales rep, and tracking deals through a 6-stage pipeline. The client went from a phone and a spreadsheet to a live sales workflow on day one.

Anything Medical — site and CRM across desktop and mobile

A one-page WordPress site with no product detail and no lead capture. Enquiries were tracked manually across email and spreadsheets.

  • Single-page site, no product catalogue
  • Enquiries lost in a shared inbox
  • No sales pipeline or lead tracking
  • Sales team had no lead ownership
  • No consistent brand or design system
Anything Medical — problem

A full marketing site and CRM shipped in four weeks. Every enquiry now lands in a pipeline with the right rep automatically assigned.

  • 20+ pages replacing a single-page site
  • 16-product catalogue across 3 categories
  • 6-stage sales pipeline with audit trail
  • Automated lead routing and email confirmation
Anything Medical — outcome

Built without a framework to keep the frontend fast and fully owned. Next.js powers the CRM, using serverless API routes deployed on Vercel. Claude AI accelerated the entire build.

  • Claude Code
  • HTML / CSS / JS
  • Next.js
  • Vercel
  • Resend
  • PostgreSQL
Anything Medical — tools
03

Lookrr — Instant DVLA & MOT vehicle intelligence for UK motor trade

Lookrr gives UK motor trade professionals instant DVLA registration data, MOT history, HPI checks, and mileage fraud detection in under 2 seconds — all from a single plate search. No tab-switching, no manual cross-referencing, no missed red flags. Built as a full SaaS with tiered plans, a real-time dashboard, bulk CSV import, and a watchlist. Shipped production-ready with a complete design system, secure auth flow, and serverless API routes for live vehicle data.

Lookrr — Vehicle check dashboard

UK dealers spend 5+ minutes per vehicle manually cross-referencing DVLA, MOT, and HPI sources. No single tool surfaces fraud signals alongside verified plate data instantly.

  • Manual lookups across 3+ separate government tools
  • Mileage anomalies missed without side-by-side history
  • No bulk lookup for part-exchange appraisals
  • HPI and tax checks billed separately per query
  • No audit trail or team-shareable check history

Shipped a full SaaS platform with auth, dashboard, bulk import, and watchlist — deployed live on Vercel. Vehicle checks return full MOT, tax, and fraud data in under 2 seconds.

  • Live SaaS deployed at lookrr-project.vercel.app
  • Sub-2-second plate-to-full-report lookup
  • Bulk CSV import capped to plan allowance
  • Tiered pricing from pay-as-you-go to unlimited

Built in vanilla HTML, CSS, and JavaScript — no framework, no build step. Claude Code drove the full design-to-deploy loop. Vercel handles hosting and serverless API routes for live vehicle data.

  • Claude Code
  • Claude Design
  • HTML / CSS / JS
  • Vercel
  • DVLA Open API
  • Google Fonts
  • JetBrains Mono
  • Chrome DevTools
04

Jamf ETP — Absorbing an acquired mobile threat defence platform into Jamf as sole designer.

Jamf acquired a mobile threat defence platform with a completely different visual language. I absorbed the entire product into the Jamf design system as sole designer — maintaining the operational integrity security teams depend on, redesigning threat detection and incident response workflows, and contributing eight new component patterns back into the core system used across all Jamf products.

Jamf ETP — Security console

Jamf acquired a mobile threat defence platform with a completely different visual language and interaction model. Security operations teams using both products were context-switching between two distinct UIs — adding cognitive load at exactly the point where speed and accuracy matter most.

  • Acquired product had entirely separate component patterns
  • Different interaction models across Jamf and ETP
  • Security teams context-switching between two distinct UIs
  • Operational integrity requirements blocked a simple reskin
  • No existing Jamf patterns for security-specific functionality

ETP security console fully integrated into the Jamf design system. Security teams move between products without context-switching. Eight new component patterns contributed back to the core Jamf system, now used across other Jamf products.

  • 1 designer across the entire product
  • 100% Jamf design system compliance
  • 8 new patterns contributed to core system
  • Phased delivery — no security workflow disrupted

Embedded as sole designer for 8 months, working directly with the Jamf design system team and the ETP security product team to validate workflows against real threat scenarios.

  • Figma
  • Jamf Design System
  • React
05

Coincover — A tokenised design system built from zero across four audience platforms in four months.

Coincover had four products, four visual languages, and zero shared infrastructure. I built a fully tokenised design system from zero — one component library spanning customer, partner, admin, and operations platforms — in four months. Brand updates that previously required four separate efforts now propagate across all products in minutes. The in-house team was self-sufficient within two weeks of handover.

Coincover — Design system

Four separate products, four separate visual languages, zero shared infrastructure. Every brand decision had to be implemented four times. The design team was maintaining four Figma files with no shared styles — a single update required four separate design and development efforts.

  • Four products with one brand but no shared foundation
  • Components duplicated with inconsistent variations
  • Four separate Figma files, no shared styles or tokens
  • Brand updates required four separate implementation efforts
  • Cost of inconsistency compounding with every sprint

Production design system adopted across all four platforms from one component library. In-house team self-sufficient within two weeks of handover — extending the system independently from month one.

  • 4 audience platforms served from one system
  • Zero to production in 4 months
  • Brand updates: weeks → minutes
  • Team shipping new components without involvement

Embedded for 4 months, building the token architecture, component library, and Storybook documentation in parallel — then running a structured handover programme to make the in-house team self-sufficient.

  • Figma
  • Design Tokens
  • React
  • Storybook
06

AdaptiveCRM — An AI-native CRM that reverse-matches found cars to the customers who want them.

AdaptiveCRM reverses the usual workflow: instead of searching stock for customers, it searches customers for stock. A luxury-car dealer drops in a screenshot, photo, or WhatsApp message of a vehicle and AdaptiveCRM extracts the details, then ranks which customers in the database actually want it — in under ten seconds. Designed and prototyped for a UK luxury-car dealer exploring AI-native sales tools.

AdaptiveCRM — Social post generator

Luxury-car dealers find exceptional vehicles at auction but have no fast way to identify which customers would want them. The workflow relies on memory, manual CRM browsing, or blanket emails — slow, imprecise, and damaging to the client relationships luxury dealers depend on.

  • No way to query the CRM with a found vehicle as the starting point
  • Dealers relied on memory or blanket outreach
  • Found cars became missed opportunities
  • Generic outreach undermined high-touch client relationships
  • Customer preference data existed but was never activated

Working prototype validated with a UK luxury-car dealer. Match scoring surfaced the right customers for the right cars. Transparent scoring breakdowns let dealers personalise outreach based on the specific match reasons — not just a ranked list.

  • Sub-10-second match generation
  • Zero manual stock entry required
  • Full match score transparency per customer
  • Prototype ready for production build

Solo build over 3 weeks. Claude API drives vehicle detail extraction from unstructured input and customer match scoring. Claude Code built the React frontend via MCP. Validated with a UK luxury-car dealer using real auction listings and their actual customer database.

  • Figma
  • Claude Design
  • Claude Code
  • Claude API
  • React
07

Astra Design System — Closing the design-to-code gap with a token-driven Salesforce design system.

Astra closed the design-to-code gap for a Salesforce implementation with a token-driven design system — one source of truth flowing SLDS2 → Astra → Figma → Storybook → VS Code. I built the token architecture, component library and usage guidelines that ended the drift between what was designed and what shipped, absorbing design decisions into reusable patterns so the team could ship faster without reinventing components every sprint.

Astra Design System — Token architecture

The Salesforce implementation had significant drift between Figma designs and shipped product. Developers made visual decisions in code because the specs were incomplete, and the same component existed in multiple inconsistent variants across screens. With no shared token system, every sprint widened the gap.

  • Components built in code didn't match Figma
  • The same component existed in multiple variants
  • No token system linking design decisions to code
  • Developers making visual calls from incomplete specs
  • Inconsistency compounding with every release

A token-first design system adopted across the Salesforce implementation. Drift dropped to zero on Astra-compliant components because design and code referenced the same token values, and a contribution guide let the in-house team extend the system independently after handover.

  • One source of truth, Figma to code
  • Zero drift between design and shipped product
  • 100% SLDS2 compliance
  • Team self-sufficient post-handover

Six months embedded with the team. Astra was built as a layer on top of SLDS2 — design tokens mapped to SLDS2 variables so decisions made in Figma propagated to Storybook and VS Code without manual translation.

  • Figma
  • Salesforce SLDS2
  • Design Tokens
  • Storybook
  • VS Code
08

Polaris — A standalone mortgage calculator platform that broke MFS free of Salesforce delays.

Polaris broke MFS's mortgage calculators free of Salesforce delays — production-ready bridging and buy-to-let calculators running outside Salesforce but embeddable inside it via Visualforce. Built to regain delivery control after a Salesforce-native build stalled for months, it let brokers generate quotes, surface affordability and calculate DTI thresholds without waiting for the next release window.

Polaris — Mortgage calculator platform

MFS's mortgage calculator build was stalled in the Salesforce release queue. Brokers were calculating rates with outdated PDFs and spreadsheets because the digital tool wasn't shipping — every update required a full Salesforce release cycle, and the business was losing broker confidence while competitors moved faster.

  • Salesforce-native build stalled for months
  • Brokers stuck on outdated PDFs and spreadsheets
  • Every update gated by a full release cycle
  • Delivery infrastructure was the bottleneck, not the logic
  • Broker confidence in digital tooling slipping

A production calculator platform live across the MFS broker network. Four calculator types — Core Residential, Specialist, Commercial and Semi-Commercial BTL — shipping updates without waiting for Salesforce release windows, all inside the familiar Salesforce UI.

  • Zero Salesforce release dependencies
  • 100% embeddable in the existing Salesforce UI
  • Stalled build to live platform in three months
  • Four calculator types across the broker network

Three months embedded. Polaris was designed as a standalone React app decoupled from Salesforce's release cycle, embedded inside it via Visualforce iframes so brokers never left the environment they already worked in.

  • Figma
  • React
  • Visualforce
  • Salesforce
  • WordPress
  • Calculator logic
09

CWT — A tokenised analytics design system, built from zero across five data domains.

CWT's Data & Analytics function needed internal dashboards across five data domains and a tokenised analytics design system built from zero for a team new to data viz. I led UX for the dashboards and built the system that let non-specialists ship consistent, accessible data products — encoding best practices into reusable components so the team could extend it without constant design oversight.

CWT — Analytics design system

CWT's Data & Analytics team was building five dashboards simultaneously with no shared design foundation and no data visualisation experience. Each was making independent chart-type, colour-encoding and interaction decisions — inconsistently and often incorrectly — with accessibility considered nowhere.

  • Five dashboards built independently, no shared language
  • Strong data engineering skills, zero data viz experience
  • Chart, colour and interaction decisions made incorrectly
  • Accessibility absent from visualisation decisions
  • Inconsistency compounding across five workstreams

An analytics design system live across five data domains, with the team self-sufficient post-handover. All five dashboards shipped consistently and accessibly, and the team extended the system independently — shipping two new components in the first month.

  • Five data domains from one system
  • Zero data viz experience in team at project start
  • Zero to production in six months
  • Team self-sufficient within two weeks of handover

Six months embedded as lead designer. The system encoded data-viz best practice explicitly — chart selection guidance, accessible colour-encoding tokens and layout patterns — so a non-specialist team could make correct decisions without design oversight.

  • Figma
  • Design Tokens
  • React
  • D3.js
10

checkRR — Turning mortgage income verification from a blocker into a 5-minute flow.

checkRR turns mortgage affordability checks into a guided 5-minute applicant flow. PAYE or self-employed applicants upload three months of payslips and statements themselves, and the product verifies income against ONS benchmarks to return a clear affordability and DTI picture. Brokers get that verified data instantly through a white-label dashboard instead of chasing paperwork for a week. Shipped end to end: marketing site, installable PWA, brand identity and the design system underneath.

checkRR — Income verification flow

Income verification for mortgage applications was broken: 7–14 day cycles, email chains with blurry payslip photos, underwriters manually transcribing data, and 40% of applicants abandoning mid-flow. Existing tools were either heavy enterprise systems or basic upload forms with no validation — and none were mobile-first.

  • 7–14 day verification cycles
  • 40% of applicants abandoned mid-flow
  • Underwriters manually transcribing blurry payslips
  • Friction at every applicant–broker–underwriter handoff
  • No mobile-first option with instant feedback

A production-ready SaaS platform with three pilot lenders and a Q2 2026 launch. Applicants upload in five minutes with real-time feedback; underwriters receive complete cases with zero manual entry and regional affordability context; brokers get configurable white-label dashboards.

  • 80% completion rate, up from 40% baseline
  • 15-minute average, down from 7–14 days
  • 99.9% reduction in manual data entry
  • 3 pilot lenders, Q2 2026 launch

Four-week solo build. I designed 24 screens in Figma; Claude read the file via MCP and generated production React directly from the layouts — no handoff loss. Weekly testing with real underwriters and brokers tuned the OCR thresholds and document views.

  • Figma
  • Claude Design
  • Claude Code
  • React
  • Node.js
  • PostgreSQL
Interested in working together? I'm available for contract engagements now.