Skip to content

Blog

Notes from inside real systems

No listicles. Things I learned while something was on fire, written down so you don't have to learn them the same way.

Architecture9 min read

Start with a modular monolith. Earn your microservices.

Most teams adopt services to fix a code problem and inherit an operations problem. Here is the boundary test I use instead.

AI11 min read

You cannot ship an AI feature you cannot measure

Build the evaluation harness before the prompt. A practical rubric-first workflow that survives model upgrades.

Laravel8 min read

Laravel queues at scale: idempotency, backoff, and dead letters

The three patterns that separate a queue that works in staging from one that survives Black Friday.

Startups7 min read

The MVP conversation founders should have with their engineer

Scope is not a list of features. It is a list of things you have agreed to be bad at, for now.

System Design10 min read

Partitioning Postgres before it hurts

How to size partitions and rollups for event-heavy workloads without over-engineering day one.

Cloud6 min read

The economics of edge caching for free tools

Cache key design decided our unit economics. A breakdown of serving millions of runs for tens of dollars.

Business7 min read

What a fractional CTO should actually do in month one

Not a roadmap. A risk register, a hiring plan, and one architectural decision the team has been avoiding.

React9 min read

Drawing state boundaries in large React apps

Server state, URL state, and component state have different lifetimes. Treating them the same is why apps rot.

Taking on 2 new partnerships for Q4

Get new essays as they're published

Occasional, long-form, and only when I have something worth your time. Send a note to subscribe or book a call to skip straight to the conversation.