Case Studies

Proof I've solved it.

Client work is generalized for confidentiality; personal projects link to their source. The problems, approaches, and outcomes are real.

NestMind: Database-Grounded Chat Tracking

Tool Use · Postgres · Grounding
View source ↗
Problem
My wife was tracking our newborn's feeds and diaper changes by typing them into Gemini, until she asked for a summary and found the entries gone and the AI confidently making up numbers. The lesson wasn't that Gemini is bad; it's that chat assistants like Gemini and ChatGPT aren't built to reliably store information. Ask one to remember your data and it will often sound certain while quietly getting it wrong, and for anything you depend on, that's a dealbreaker.
Approach
So I built the tracker it should have been. You still just talk to it in plain language, but every entry is saved to a real database, and every total it gives you is counted from that database, not guessed by the AI. The AI handles the conversation; the database is the record of what's actually true. It even flags its own risky moments, like saying it saved something when it didn't, so mistakes surface instead of hiding.
Outcome
A tracker you can trust: it can't quietly lose an entry or invent a number, because the data lives in the database and every total is counted there. And it's built to the standard I'd ship for a client, with automated tests that prove the basics hold, like two feeds of 4oz and 3oz always adding up to exactly 7oz.
Claude SonnetTool useFastAPIPostgres / JSONBSSE streamingAWS App Runner

Government Health AI Assistant

RAG · Streaming · Auth
Problem
A public-sector team needed a conversational assistant that answered citizen health questions strictly from official, approved content, with no room for hallucination.
Approach
Built a retrieval-augmented assistant grounded in vetted health content: ingestion and chunking of source documents, vector retrieval, and grounded generation that cites its sources and declines when a question falls outside the corpus. Added streaming responses, authentication, and a feedback-capture loop for continuous review.
Outcome
A trustworthy assistant that stays inside approved content, streams answers for responsiveness, and gives the team visibility into what users ask and how well it answers.
RAGVector retrievalStreamingAuthFeedback loop

AI Evaluation Pipeline

Evals · Observability
Problem
A team shipping LLM features had no systematic way to know whether model or prompt changes made things better or worse.
Approach
Built a scheduled evaluation pipeline that runs prompts across multiple models, scores results, traces everything in Langfuse, and emails a summary. Turned 'it feels better' into measurable, comparable numbers.
Outcome
Regular, automated visibility into model performance: multi-model comparisons, observability traces, and digest summaries that caught regressions before users did.
EvaluationsLangfuseMulti-modelSchedulingReporting