Writing
Notes on engineering, leadership, and the craft.
Series

Forward Deployed Engineering
Field notes on turning customer ambiguity, access constraints, rollout pressure, and implementation work into reusable product leverage.

Agent Operating Notes
Short operating notes from redacted Claude and Codex sessions: boundaries, prompts, failure modes, and team practices for AI-assisted engineering.

Building a Slack Engineering Agent
How a multi-tenant Slack agent turns an @-mention into a pull request: the end-to-end path, the Postgres-backed task queue, the single policy gate that keeps an autonomous agent safe, and the ports-and-adapters spine that holds it together.

A Home for AI Artifacts
The internal platform where the team publishes AI-generated artifacts to durable, authenticated URLs instead of external services: what it does, how it's built on one small box, and the serverless start we walked back.

A spare MacBook as a home server
How I turned a spare MacBook into the most useful infrastructure I own: how I reach it with no public address, the background jobs that run my week, the media stack and what I deleted, one dashboard that makes it usable, and the local model, monitoring, and backups that let me trust it.

Building a school-assignment assistant for my daughter
Building a private school-assignment assistant for one child: scraping a portal with no API, an LLM that learns to discard, cached summaries, a small agent, and knowing what it costs.

Building Press
How I built Press, the editorial engine that writes from my work. One boundary of the system per part.
Posts

Discovery Baselining When Nobody Owns the Whole System Map
Jul 2026·Discovery baselining turns fragmented system knowledge into a shared map, so scope and estimates stop hiding integration risk.

Turning a Pilot AI Platform Into an Operable Service Contract
Jul 2026·An AI service contract turns a working internal AI pilot into an operable service with owners, dependencies, and fail-closed gates.

When Verification Schemas Drift From Runtime Reality
Jul 2026·Verification schema drift happens when agent output schemas and runtime validators diverge. Make the contract executable before live runs.

Gate default model changes with golden sessions
Jul 2026·Golden sessions give AI runtime model default changes a regression contract across prompts, profiles, approvals, CI, and live evidence.

Consolidating AWS Delivery Without Losing the Runtime Boundary
Jul 2026·AWS deployment pipeline changes can break old runtime paths. Keep CDK, CodeBuild, Ansible, and server entry points separated.

Mining Huge AI Session Transcripts Without Drowning in Them
Jul 2026·AI transcript mining needs evidence-first search, narrow excerpts, and claim labels before large agent logs become source material.

When Editorial Quality Scores Stopped Being the Right Sort Order
Jul 2026·AI editorial workflow boards should separate freshness, quality, and actionability so reviewers see new candidates first.

Choosing Real-Time Commit Story Mining Over Bulk GitHub Indexing
Jul 2026·Commit story mining works better when agents observe intent in real time instead of indexing every repository change first.

Typed Intent Routing Before an Agent Touches the Broker
Jul 2026·Typed intent routing makes model-assisted agent routing usable only when scope, schema, approval, and audit evidence gate execution.

Teaching an AI Reviewer to Disprove Itself Before It Comments
Jul 2026·AI review false positives fall when do-not-flag policy, falsification checks, and trace reporting ship as one system.