Notes from the build floor
Project retros and engineering notes — what I learned shipping AI products, what broke, and what I'd do differently. No tutorials, no hot takes. Just honest write-ups.
- 3 minProject
Building EchoReply: an AI email coach that lives in Gmail
Why I shipped a privacy-first Chrome extension that reads sender intent, drafts replies in three voices, and audits your own tone before you hit send — and what 'no backend' actually means in practice.
Chrome ExtensionManifest V3ClaudeOpenAIGmailPrivacy - 3 minProject
Building JD Analyzer: a privacy-first Chrome extension for resume-JD matching
Why I shipped a Chrome extension that scores resumes against job descriptions client-side, on the user's own AI key — and what the architecture had to look like to make 'no backend' actually true.
Chrome ExtensionManifest V3ClaudeOpenAIPrivacy - 10 minProject
Building ShangXue: a payroll system, a PM, and an AI pair
10 weeks shipping an internal payroll platform for a tutoring company — paired with a PM and Claude Code as my AI pair. The decisions worth defending and what changes about the work when AI sits at the keyboard with you.
InternshipRBACProductionClaude Code - 5 min
GPT-Image-2 is the first image model I'd put near a PRD
Text rendering, instruction following, and inpainting all crossed the threshold at once. Three workflows I'm rebuilding around it.
GPT-Image-2OpenAIDesign - 6 min
RAG is mostly information retrieval
Most 'my RAG hallucinates' bug reports are retrieval bugs, not LLM bugs — and the four levers that actually move the needle.
RAGRetrievalLLMs - 12 minProject
Building DocuMind: a production RAG case study
How v2 cut time-to-first-token from 12 seconds to under 600 milliseconds, and the seven trade-offs I made on the way.
RAGLangChainPineconeExpressReact - 6 min
Agents are tool use, state, and a termination condition
Strip away the framework hype and most 'AI agents' are a for-loop with three problems: tool plumbing, state, and knowing when to stop.
AI AgentsLLMsEngineering