Notes on shipping AI that actually works.
Essays on AI architecture, agents, RAG, evals, and the boring middle of getting AI into production.
Top articles & recent

AI agency vs. in-house vs. fractional: how to staff your AI work
The real trade-offs between hiring an AI agency, building an in-house team, and bringing in a fractional AI lead — and which fits your stage.

How to add AI to your SaaS (without a rebuild)
A practical sequence for shipping your first real AI feature into an existing product — what to build first, what to skip, and how not to break what already works.

What does an AI consultant cost in 2026?
Real 2026 pricing for AI audits, builds, retainers, and fractional leads — what drives the number, and how to avoid overpaying.
Read more from the archive

What is an AI architect (and when you actually need one)?
The honest definition of an AI architect, how the role differs from an AI or ML engineer, and a straight answer on whether you need to hire one.

The shape of an AI architect
What separates AI-native builders from prompt tinkerers — and the seven decisions I make in the first days of almost every project.

Shipping Claude Code for real work
A field report from running Claude Code on production codebases — the patterns that scale, the failure modes that look like success, and the rituals I keep.

Websites that grow with the brand
The modular system that lets non-technical teams ship pages without breaking the design — and why that discipline is what makes the AI I build ship clean.

From design to deploy in 48 hours
The 48-hour sprint I run with founders to ship a high-fidelity landing page without cutting corners on accessibility or performance.

Why I still reach for Webflow
Webflow, Next.js + Sanity, or AI-generated full-stack? The decision isn't about technical purity — it's about who owns the site six months after launch.

Building AI agents that don't hallucinate
Retrieval, guardrails, and human-in-the-loop patterns — plus three architectures I've shipped that stay grounded even when the model is unsure.
