Privacy

Accept optional first-party analytics or decline. Functional journey and sound preferences stay on this device.

Read the privacy notice

Open to talks and workshops

Projects

Systems, with the decisions left in.

Flagship systems first, then the supporting builds. Every entry states the problem, the role, and what changed.

03

Flagship systems

AI & RAGArchitecture + build

Alex OS

A FastAPI reasoning and retrieval layer that sits between the CMS and the public site — grounded answers, journey-aware recommendations, and a relationship-graph reasoning pass, not an open-ended chatbot.

The problem
A static portfolio site can show work, but it can't answer specific questions about it, connect related pieces, or reprioritize itself based on what a visitor actually cares about.
Outcome
Grounded Q&A, journey recommendations, and content surfacing.
  • Source-grounded answers
  • Per-call cost tracing
  • 30/30 answer evals, with and without an LLM
  • Recall@3 97% on 31 labeled queries
CMS & WebDesign + build

Alex CMS

A Next.js CMS with a fully dynamic content-type registry — no hardcoded post models — plus a journey-based homepage, an orchestrator workflow, and per-item content scoring.

The problem
A hand-coded content model means every new kind of content needs a schema migration and new frontend code. That doesn't scale for a site that keeps changing shape.
Outcome
Fully dynamic content model with zero hardcoded types.
  • 15 registered content types — 10 public
  • Homepage fully CMS-driven
CMS & WebDesign + build

Theme DNA Design System

A database-driven design token system ("Theme DNA") that every public template consumes — change the brand once, and 23 templates restyle themselves. No hardcoded colors anywhere.

The problem
Hardcoded brand colors scattered across templates make redesigns painful and inconsistent. Styling decisions were living in code instead of content.
Outcome
One place to change the brand; 23 templates follow instantly, including AI-generated content.
  • 23 templates token-driven
  • Zero hardcoded brand colors

15

More builds

  1. 01Journey Map ExperienceA memorable, personal closing moment for each visit — the site can literally tell you where you’ve been.AI & RAGNext.jsFramer Motion
  2. 02LLM Cost & Behavior TracingComplete per-call audit trail of AI usage and spend across the whole platform.AI & RAGFastAPIPython
  3. 03Visitor Analytics & Live AlertsFull visibility of site traffic with zero third-party trackers, plus real-time Slack pings on visits and conversions.CMS & WebNext.jsMySQL
  4. 04Litmus Sandbox WorkflowWorking prototype that made Litmus checks part of the send workflow; deliberately kept at prototype stage.AutomationLitmusEmail
  5. 05Email Client Preview ToolWorking prototype that surfaced client-specific rendering differences pre-send; deliberately kept at prototype stage.AutomationEmailHTML
  6. 06WordPress DNA HTML GeneratorWorking prototype that generated token-faithful WordPress markup; deliberately kept at prototype stage.AutomationWordPressHTML
  7. 07Recommendation Evaluation SDKWorking prototype used to compare recommender variants during the recommendation work; deliberately kept at prototype stage.AI & RAGEvals
  8. 08CV Generator and ParserWorking prototype covering both generation and parsing; deliberately kept at prototype stage.AutomationDocument parsing
  9. 09Product Recommendation EngineWorking prototype that produced personalised suggestions over a test catalog and could be compared version to version; deliberately kept at prototype stage.AI & RAGRecommendations
  10. 10Multi-Agent RAGWorking prototype that demonstrated multiple agents coordinating over shared retrieval; deliberately kept at prototype stage. The retrieval lessons carried directly into how I build grounded systems like Alex OS.AI & RAGRAGLLM
  11. 11Insurance Policy Renewal AssistantWorking prototype that demonstrated the renewal-preparation flow with review and approval built in; deliberately kept at prototype stage. What carried forward: in document-heavy work, the grounding and the review step are the product, not the generation.AI & RAGLLM
  12. 12Email Helpdesk ResponderWorking prototype that proved the triage-and-draft loop end to end with a human approval step; deliberately kept at prototype stage. It set the pattern I still build assistants to: one job, inside an existing workflow, grounded, and quiet when unsure.AI & RAGLLMEmail
  13. 13Alex OS homepage journey engineThe homepage reorganises around a chosen journey — hero, headings, sections and assistant prompts are all CMS-configured.CMS & WebNext.jsReact
  14. 14Dynamic CMS section systemAny published content type can be mapped to a homepage section with no code changes.CMS & WebNext.jsReact
  15. 15AI content review workflowEntries get an automated quality score with stored reasons before publishing.AI & RAGNext.jsMySQL