Thinking

Notes from the lab.

Essays, opinions, and technical notes on AI agents, MCP servers, LLM engineering, and shipping software that works.

  1. Build your own briefing agent.

    Wire your calendar, inbox, and Slack to the Claude Agent SDK over MCP, keep it read-only, and ship a daily brief you actually trust.

    Read →
  2. How we set up and configure Hermes.

    How we set up Hermes — a briefing agent over a founder's calendar, inbox, and signals: the config decisions, MCP tool scopes, evals, and deploy.

    Read →
  3. Running MCP servers in production.

    Taking an MCP server from working to production: OAuth scopes, secret isolation, idempotency, versioning, and tracing.

    Read →
  4. Multi-model routing that survives an outage.

    A router that picks the right model per task and reroutes on 429, 529, or refusal mid-request — so one bad provider minute never reaches the user.

    Read →
  5. Evals that catch regressions before users do.

    Build the golden set before the prompt, gate deploys on evals, and feed production traces back so regressions get caught before users do.

    Read →
  6. Observability for agents in production.

    Instrument production agents: loop-shaped traces, per-step and per-tenant cost attribution, alerts that matter, and PII redaction at the boundary.

    Read →
  7. Building your first MCP server.

    A practical guide to building a Model Context Protocol server that gives Claude typed, auditable access to your APIs and databases.

    Read →
  8. How to choose between Claude Code, Codex, and Cursor in 2026.

    Three different tools, three different theories of what AI-assisted coding should be. Here is how to pick the one that fits your team.

    Read →
  9. Claude Code vs. the rest: a working comparison.

    We have used Claude Code, Cursor, GitHub Copilot, and Codex in production. Here is what we actually think.

    Read →
  10. Evals before vibes.

    How do you know your AI feature is working? Most teams go by feeling. The right answer is a small eval set that catches regressions before they ship.

    Read →
  11. Prompts need version control.

    A prompt that worked yesterday can break tomorrow. Without history, you cannot know what changed, what regressed, or how to roll back.

    Read →
  12. Build the thing you wish existed.

    We run our own products first, then take client work with fewer assumptions and sharper opinions.

    Read →
  13. Ship the workflow before the pitch.

    The fastest way to lose a technical client is to demo something that doesn't exist. Ship the workflow as a working prototype first.

    Read →

Have something to build?

Start a project → See the work →