Blog

Thoughts on engineering, AI, and building products

Building AI Agents That Actually Work in Production8 min read
Nov 20, 2025
Building AI Agents That Actually Work in Production

Most AI agent demos look great until they hit real data. Here's what I learned shipping agents at scale — retry logic, fallbacks, and knowing when to punt to a human.

AIAgentsProduction
Read More →
Why I Stopped Using Redux (And What I Use Instead)6 min read
Sep 5, 2025
Why I Stopped Using Redux (And What I Use Instead)

Redux is powerful but it's also 200 lines of boilerplate for a shopping cart. A pragmatic look at Zustand, Jotai, and server state after 3 production migrations.

ReactState ManagementFrontend
Read More →
Next.js App Router: 6 Months In10 min read
Jul 12, 2025
Next.js App Router: 6 Months In

Honest retrospective on migrating a 40k-line codebase from Pages Router to App Router. What's genuinely better, what's a footgun, and what we'd do differently.

Next.jsTypeScriptLessons
Read More →
Prompt Engineering Is Still Engineering7 min read
May 28, 2025
Prompt Engineering Is Still Engineering

Treating prompts as throwaway strings is how you end up with a broken product at 3am. Version control, testing, and rollback strategies for LLM prompts.

LLMPrompt EngineeringAI
Read More →
From 0 to Seed: What I Actually Spent Time On12 min read
Mar 14, 2025
From 0 to Seed: What I Actually Spent Time On

A month-by-month breakdown of building ProductA.ai from first commit to seed round. Spoiler: it wasn't coding. Distribution, user interviews, and founder therapy.

StartupIndie HackingSaaS
Read More →
TypeScript Patterns I Wish I Knew Earlier9 min read
Jan 8, 2025
TypeScript Patterns I Wish I Knew Earlier

Not generics 101. The patterns that actually matter in large codebases — discriminated unions, template literal types, branded types, and satisfies.

TypeScriptPatternsDeveloper Experience
Read More →