Start here
New here? This is the curated path through my work — the pieces I'd point you to first, grouped by what they're about rather than when I wrote them.
Agents & long-running execution
Making capable models stay coherent across long, multi-session work.
- Case study Long-Running Coding Agents: A 6,000-Line Migration Completed a 6,000-line Python-to-TypeScript migration with an AI coding agent by treating the model as a stateless executor and myself as the planner — using an external progress file to hold state across sessions.
- Essay Staying Sane on a 6,000-Line Refactor with Claude Code As large language models become more capable, it's tempting to rely on them for increasingly complex engineering tasks. Tools like Anthropic's Claude Code…
- Essay Claude Code: The Hidden Testing Ground for AI Agents I've been using Claude Code daily since it launched for general use. After months of working with it, I've developed a theory about what's actually…
- Case study AI Workflow Kit A portable skill format and integration-abstraction layer — one markdown skill runs identically across Claude Code, Cursor, and Codex and binds to any calendar/notes/chat vendor at setup, not in code. The shipped library automates the recurring non-coding parts of an engineer’s day.
Evaluation & reliability
How you know an AI system actually works — feedback loops, reward design, measurement.
- Case study Adaptive Prompt Selection & Evaluation A design for moving beyond static prompts: retrieve candidate prompts by context, select with a multi-armed bandit, handle cold start, and close the loop with multidimensional evaluation and reward design.
- Essay Reward Engineering and Evaluation: Making Your System Learn What Matters This is the third post in our series on probabilistic prompt pipelines. In our first post, we explored why static prompts become bottlenecks. The second…
Retrieval & prompt selection
Choosing the right context and the right prompt, adaptively.
- Essay Why Static Prompts Fail and How Probabilistic Selection Solves Real Problems This is the first post in a four-part series on building production-ready probabilistic prompt pipelines. By the end of this post, you'll understand why…
- Essay Building the Selector: Retrieval, Bandits, and Cold Start Solutions This is the second post in our series on probabilistic prompt pipelines. In the first post, we explored why static prompts become bottlenecks and saw a…
- Essay Enhancing Retrieval-Augmented Generation with XML Prompting In my current role, I’ve been working on a Retrieval-Augmented Generation (RAG) system designed to provide safe, reliable personal finance guidance. Given…
Developer tooling
Tools and workflows that make AI assistants useful on real work.
- Case study MCP Tooling & Tool-Boundary Design Model Context Protocol servers built on one principle — narrow, scoped tool surfaces over generic passthroughs — so AI assistants can safely act on real systems. The harder work is the tool-boundary design: scope, error handling, and where a human stays in the loop.
- Essay I Built 50 AI Skills for the Parts of My Day I Never Got Around To The biggest productivity gap isn't code — it's context gathering, note-taking, and status updates. I built 50 AI workflow skills to make those 15-minute tasks actually happen every day.
- Essay Use /insights to Improve Your Claude Code Setup I ran /insights in Claude Code and walked through what it found — friction patterns I hadn't noticed, CLAUDE.md rules I should have written weeks ago, and what changed after I applied the suggestions.
Or browse everything: all writing · all work · notes.