Blog posts
Thoughts on AI, technical writing, and software.
Claude Code beyond prompting
Discovering Claude Code's advanced features beyond basic prompting: hooks, skills, subagents, and custom workflows for technical writing.
Code execution with MCP: separating context from computation
How code execution with MCP reduces token usage by giving AI agents a workspace outside the context window for data-heavy processing tasks.
On agency, abstraction, and AI-assisted coding
Reflections on AI-assisted coding, personal agency, and why working at higher levels of abstraction doesn't mean losing mastery or understanding.
Testing docs IA with AI agents
Building an AI agent to test documentation information architecture by simulating how users navigate docs to find answers.
Can AI help test IA? A Wikipedia game experiment
Using the Claude Agent SDK to play the Wikipedia game as an experiment in testing information architecture with AI.
The Exploratorium boulder: why enthusiasm isn't always contagious
Why enthusiasm for AI tools isn't always contagious, and what I learned about sharing new technologies with skeptical colleagues.
Docs metrics and the stories we tell ourselves
Why documentation metrics are harder to interpret than SRE dashboards, and how to think about measuring docs impact without fooling yourself.
How onboarding a human made my AI smarter
How creating onboarding documentation for a new teammate also improved my AI tools by providing the same context engineering both need to succeed.
Digging into "Your Brain on ChatGPT"
A critical look at the MIT 'Your Brain on ChatGPT' study and why sensationalized AI research headlines make productive conversations harder.
Learn MCP with me, part 2: working with MCP servers and clients
A hands-on guide to connecting MCP servers to AI clients, debugging with curl, and building a multi-source documentation research agent.
Learn MCP with me, part 1: what is this even for?
Why MCP exists and how it helps LLMs use APIs more reliably by providing structured guardrails instead of relying on hallucinated parameters.
We all fall down: notes from an ordinary outage
A detailed post-mortem of a Kubernetes outage where a routine video processing job brought down an entire streaming cluster for five days.