PORTFOLIO
Blog

Longform notes

Explorations of engineering strategy, design systems, DX, and content platforms.

July 20th, 2026

What I Let AI Write, and What I Never Will

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
Read article

July 11th, 2026

Recall: A RAG App That Shows Its Receipts

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.

RAGAI EngineeringLLMPostgresNext.js
Read article

July 8th, 2026

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.

AITestingSoftware EngineeringDeveloper Tools
Read article

July 7th, 2026

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.

BackendSystem DesignDistributed SystemsStripeReliability
Read article

June 30th, 2026

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.

GraphQLAPI DesignWeb PerformanceAI ToolsBackend
Read article

May 20th, 2026

Full Stack, Frontend, or Backend? How I Think About Role Fit

Five years moving across the stack, here is how I think about whether a role is a Full Stack Developer, Frontend Developer, or Backend Developer fit.

CareerFull Stack DeveloperFrontend DeveloperBackend Developer
Read article

April 15th, 2026

Instrumenting Production Apps: Mixpanel, Sentry, and Cypress in Practice

A practical setup for knowing what users actually do, catching errors before users report them, and trusting your own deploys.

TestingObservabilityDX
Read article

March 10th, 2026

Keeping APIs Non-Blocking: Celery, Redis, and Async Score Calculations

How offloading GHIN/USGA handicap score calculations to Celery + Redis kept a Django REST API responsive under load.

DjangoCeleryRedisBackend
Read article

February 5th, 2026

Shipping the Give a Gift Flow on a Live Next.js + GraphQL Platform

What it actually took to ship a new flow, a full UI rebrand, and a chatbot integration on a production Next.js + GraphQL platform with active users.

Next.jsGraphQLProduction
Read article