Skip to content

Available for new work

I build the systems that make AI actually pay off.

Eight years of shipping since 2018, five of them running my own products. I design AI workflows that survive contact with real users, build the full stack around them, and then drive the running cost down until the numbers work.

300K+
orders processed on a platform I built and ran
10,000
active users on a serverless AI product
90%
of daily operations automated away
AI Cost Saving
incoming request · full costcost still paidMeasurecost per feature, prompt, cohortContext disciplinetrim prompts and retrieval − unused tokensPrompt cachingstable prefix reused − repeated contextRouting by difficultyclassifier picks the model − the easy 80%Strong modelhard requests onlyQuality gate — eval set + rollbackno silent regressions

Stack

What I reach for.

Vue.js Nuxt TypeScript Angular Tailwind CSS CapacitorJS Node.js Express PHP WordPress Java REST APIs LLM APIs RAG LangChain MCP Prompt caching Model routing Evals PostgreSQL MySQL MongoDB Firebase Vercel Serverless Docker Git SEO
Let's work together

My Skills

The toolkit, by category.

Eight years of shipping, distilled into the things I actually reach for — grouped by domain and rated by how deep I go. The bars are my own honest self-assessment.

Frontend

10
  • Vue.js95
  • JavaScript95
  • HTML95
  • CSS92
  • Nuxt90
  • TypeScript90
  • Tailwind CSS88
  • SCSS / Sass85
  • Angular80
  • CapacitorJS78

Backend

07
  • Node.js92
  • REST APIs92
  • Express90
  • Serverless88
  • WordPress82
  • PHP80
  • Java65

AI & LLM

08
  • LLM APIs92
  • MCP88
  • AI agents85
  • RAG85
  • Prompt caching85
  • Model routing85
  • Evals80
  • LangChain78

Databases

04
  • MySQL88
  • Firebase88
  • MongoDB82
  • PostgreSQL80

DevOps & Infra

04
  • Git92
  • Vercel88
  • Docker75
  • CI/CD72

Marketing & Growth

05
  • SEO88
  • Analytics82
  • Google Ads80
  • TikTok Ads78
  • CRO75

What I do

Three things, done properly.

Most engagements start in one of these and end up touching all three — that is usually the point.

Agents and pipelines that hold up in production

AI Workflow Development

A demo that works once is not a workflow. I build LLM systems with the boring parts included: retrieval that returns the right chunk, tools with real error handling, evaluation you can trust, and a fallback for every step that can fail.

How I approach it
  • Agent design — planning, tool use, memory, and knowing when to stop
  • RAG architectures with reranking, chunk strategy and grounded citations
  • LangChain / DeepAgents pipelines, plus hand-rolled orchestration when the framework gets in the way
  • Human-in-the-loop checkpoints for anything that touches money or customers
  • Evaluation harnesses so a prompt change is a measurable decision, not a vibe
  1. Map the decision, not the prompt

    Before any model is called I write down what the system decides, what it is allowed to do, and what happens when it is wrong. Most failed AI projects skipped this.

  2. Build the smallest honest version

    One path, real data, no orchestration framework. It exposes the retrieval and data-quality problems immediately, which is where the actual work lives.

  3. Instrument before scaling

    Traces, token accounting and an eval set from day one. Without them you cannot tell an improvement from a regression.

  4. Harden the edges

    Timeouts, retries with backoff, schema validation on every model output, and a deterministic fallback. The model is a component, not the system.

From Figma file to a thing running in production

Full Stack Development

I have taken products from an empty repository to hundreds of thousands of real transactions — frontend, API, database, infrastructure, deploys and the 3 a.m. incident. Vue and Node are home; I have shipped Angular, PHP and mobile too.

How I approach it
  • Vue.js / Nuxt frontends — accessible, fast, and typed end to end
  • Node.js / Express APIs and serverless functions on Firebase and Vercel
  • WordPress and PHP when the business case says so, integrated with modern JS
  • Cross-platform mobile from the same web codebase via CapacitorJS
  • SQL and NoSQL data modelling, plus the SEO work that makes it findable
  1. Start from the transaction

    I find the one flow that makes the business money and build outward from it. Everything else is scaffolding around that flow.

  2. Boring architecture on purpose

    Managed services, few moving parts, one deploy target. Complexity is a cost you pay every week, not once.

  3. Ship in thin vertical slices

    Each slice goes through UI, API and database to production. Integration problems surface in week one, not in month three.

  4. Automate the operations

    If a human does it twice a day, it becomes a script. That habit is what turned a growing platform into one I could run without a team.

Same output quality, a fraction of the bill

AI Cost Saving

LLM spend grows quietly until it becomes the largest line item on the invoice. I audit where the tokens actually go, then apply routing, caching, context discipline and model right-sizing — measured against a quality baseline so nothing degrades silently.

How I approach it
  • Token-level cost audit: which features, which prompts, which users
  • Model routing — the cheap model handles the easy 80%, the strong model handles the rest
  • Prompt caching and context discipline instead of resending the world every call
  • Batching, streaming and truncation strategy tuned to real usage patterns
  • A quality gate on every change, so savings never arrive as silent regressions
  1. Measure before touching anything

    Cost per request, per feature, per user cohort. The bill is almost never spread the way the team assumes it is.

  2. Fix the context first

    The cheapest optimisation is not sending tokens you did not need. Oversized system prompts and unfiltered retrieval are the usual culprits.

  3. Route by difficulty

    Classify the request, then send it to the smallest model that can answer it correctly. The classifier costs almost nothing and pays for itself immediately.

  4. Guard the quality

    Every change ships behind an eval set and a rollback. Savings that cost you accuracy are not savings, they are deferred churn.

Related work

Selected work

What I built, and how.

Each case study includes the architecture I actually shipped — not a sanitised version of it.

All case studies

Have a workflow, a platform, or an invoice that needs work?

Tell me the shape of the problem. If I am not the right person I will say so quickly.

Get in touch