Explorations of engineering strategy, design systems, DX, and content platforms.
August 12th, 2026
I Built an AI Agent That Decides for Itself — Here's the Part That Actually Matters
Most AI in apps is a chatbot that can't do anything. I built a lead-qualification agent that verifies data, checks for duplicates, decides on its own whether to act, and then writes to a database, alerts a team, and schedules follow-ups — built from raw tool-calling primitives, not a framework. Here's how it works and the default-behavior bug nobody warns you about.
Automating Lead Intake with n8n: Speed Is the Feature
On a side project, leads sat in an inbox until I got to them. I automated the entire intake with n8n — enrichment, CRM sync with conditional routing, Slack alerts, and auto follow-ups. Here's the workflow and the one part that actually mattered.
After a year of Claude Code in my daily workflow, here's the honest version of how AI fits into real engineering work — the tasks I hand it without hesitation, and the ones I'll never let it own.
AI ToolsSoftware EngineeringDeveloper ProductivityEngineering Practices
I built a Retrieval-Augmented Generation (RAG) app that answers questions from your documents — and shows the exact passages behind every answer, with match scores. Here's how it works and why retrieval, not the model, is the hard part.
AI Didn't Make Me Write Better Code — It Made Me Finally Write Tests
Most codebases have no tests because writing them is annoying, not because engineers can't. Here's how I used Claude Code and Cursor to go from near-zero to 70%+ coverage — without letting AI replace my judgment.
Your Webhook Will Fire Twice. Design Like It Already Did.
Stripe charged the customer once — but my system recorded it three times. The cause wasn't a bug in my logic. It's that event systems deliver "at least once," not "exactly once." Here's how idempotency fixes it.
The Performance Problem That Isn't in Your Latency Dashboard
Every endpoint was fast, but screens still felt slow. The culprit was over-fetching. Here's how I used Claude Code and Codex to trace it and cut payload size by ~30% — without handing over the decisions.