Case studies
Real problems. And the architecture behind them.
AI systems, cloud platforms and automation, from design to production. Here's what I've built, how, and what I can rebuild for you.
AI engineering case studies from real client work: RAG and document intelligence over millions of pages, autonomous research agents, LLM evaluation, OCR benchmarking, multi-tier caching at scale, local AI stacks, and AI security. Each one shows the concrete problem, the architecture, and what transfers to your team.
Lab
Bypassing Claude's invisible watermark
A calibrated detector catches watermarked text 100% from 200 tokens. One paraphrase drops it to 0%.
Anthropic's support page confirms Claude now watermarks its text, and the internet turned that into a prompt-tracking fingerprint. So I reproduced SynthID-Text and measured the real thing.
Read the case study →LLM · Lab
How I backdoored a small model on a trigger word (and testing can't catch it)
One trigger token and a full-weight fine-tune on a laptop plant a backdoor that a clean retrain cuts from 100% to 37%, never to zero
I fine-tuned a 1.5B model so one trigger token flips its behaviour, then ran a clean safety pass to remove it. It didn't. Here's the repro, and why testing can't catch it.
Read the case study →Build
An autonomous research agent over a private corpus (RAG, Google ADK)
No answer ships until every part of the question is covered or marked no data found
Ask for a comparison of eight products, get a confident answer about two, with nothing saying the other six were never searched.
Read the case study →Build
Life OS: a private health, money and calendar dashboard
Three databases, one page, and no second copy of anything
My net worth exists in four apps. Not one of them can tell me what it is today.
Read the case study →LLM
Defending AI agents against prompt injection at scale
No untrusted text reaches a privileged action or an outbound channel without clearing deterministic code
A booby-trapped document tells your agent to email out the customer table, and the agent, reading it as an instruction, obeys.
Read the case study →Build
Catching silent regressions in an AI agent
Every prompt tweak and model bump re-scored on production-mined cases, before users see it
An agent never throws a compile error. It just answers slightly worse than last month, and the first person to notice is a user.
Read the case study →Build
Document intelligence at scale: RAG over 100M+ pages
100M+ pages, an answer in under a second, a citation on every sentence
Thirty brands, a dozen languages, and a team redoing a study that already exists because nobody can find it.
Read the case study →Build
Serving 50M requests a day with a multi-tier cache (edge to origin)
Most reads never reach the origin, and a published article is live everywhere in under a minute
One mistaken cache rule bypassed the CDN edge, and the origin database sat near full CPU for about 45 hours before anyone traced it.
Read the case study →Audit
How to benchmark an OCR model (TEDS, CER, LLM-as-judge)
Four engines scored on 100+ hand-annotated documents, at $1.61 per 1,000 pages
The engine that catches more words scores 0.50 on table structure. The one that catches fewer scores 0.92.
Read the case study →Build
A 100% local AI coding stack (Ollama, Qwen3.6, opencode)
A dozen local models benchmarked, one kept, and the code never leaves the box
The meeting ends with no AI on this codebase, and the team loses the gain instead of the risk.
Read the case study →Build
A local document agent in one SQLite file (sqlite-vec, FTS5)
The whole searchable corpus fits in one SQLite file you back up by copying it
Friday night, one invoice to find, twenty minutes of folders, and you give up.
Read the case study →Build
A legal research assistant with machine-checked citations
A reference that cannot be verified is stripped before it reaches the screen
One invented article number in a client memo, and the whole memo becomes unusable.
Read the case study →Automate
Output contracts for LLM-generated SQL in production
Every generated query is parsed, scoped to the asker's rights and rewritten before it touches the database
The wrong answer looks exactly like the right one, and it just read a table this user was never cleared for.
Read the case study →Build
An AI buyer for sales roleplay, in real-time voice
Reps rehearse the hard call on an AI buyer that pushes back, not on a paid lead
A rep's first ten discovery calls are practice. You paid for those leads.
Read the case study →LLM
Fine-tuning Mistral-7B on 70,000 of my own text messages (QLoRA)
$200 and 16 hours on a rented H100 for a model that texts like me
It copies the style, fine. It also hands back private details nobody asked it to remember.
Read the case study →Transform
Zero-downtime CMS replatform for a national news site
500,000+ articles moved, tens of millions of monthly pageviews served throughout, no downtime a reader could see
Every product idea died on the same sentence: the CMS cannot do that.
Read the case study →LLM
Rebuilding GitHub Copilot on a private codebase (CodeLlama-7B, LoRA)
1.17% of a 7B model trained, a 305 MB adapter that writes in the codebase's own style
Copilot does not know your internal utilities, and you are not allowed to send it the code that defines them.
Read the case study →