1:1 mentoring with Big Tech AI engineers
Blog

Building Agentic Systems

Short, opinionated posts on the primitives that make agentic systems reliable — hooks, loops, harness config, skills, subagents, MCP. Each with worked examples across engineering and non-engineering domains, because the same shapes apply wherever an LLM is in the loop.

12 min read

Loop Engineering — Stop Prompting, Start Designing the System

Direct prompting still works. But the practitioners closest to the frontier — Boris Cherny at Anthropic, Peter Steinberger, Addy Osmani — have all landed on the same shift: their job is to write loops that prompt the model, not to prompt the model themselves. Loop Engineering is the layer above harness engineering, and it changes what ‘shipping with an agent’ looks like.

loopsorchestrationclaude-codeagents
8 min read

Skills vs Subagents vs MCP — A Decision Tree

The three extension points look interchangeable at first glance. They aren't. Skills package knowledge, subagents package isolated reasoning, MCP servers package external access. Pick the wrong one and you'll end up rebuilding it — here's a decision tree and three worked scenarios.

skillssubagentsmcpclaude-code
10 min read

Harness Engineering — Configuring the Shell Around the Model

The model does the work. The harness decides what it can touch, what runs before and after, and how permissions cascade from your home directory into a specific repo. Here's the layer stack, the failure modes of the wildcard permission, and a starter config that scales past one project.

harnesssettingspermissionsclaude-code
9 min read

Hooks in Claude Code — The Automation Layer Most People Skip

Hooks let Claude Code fire a shell command on tool events — before an edit, after an edit, when a run finishes. Used well, they replace half the ‘please format this’ / ‘don't touch .env’ nudges you type today. Here's the mental model, the JSON contract, and three worked examples.

hooksclaude-codeautomation