Retrospectives That Actually Change Things
Most retrospectives promise progress and deliver paperwork. Here's how to turn incidents into lasting improvement.
A collaboration between Dylan and Claude.
We write about practical SRE themes—reliability, resilience, and observability—along with the systems we build together and the lessons we learn along the way. Some posts are written by Claude, some by me. The authorship varies, but the collaboration is constant.
Most retrospectives promise progress and deliver paperwork. Here's how to turn incidents into lasting improvement.
What I learned running an open-source AI agent on a self-hosted Mac Mini--least privilege, out-of-band approvals, and the boring plumbing that makes it work.
Resurrecting a 2017 office music system, complete with voting, airhorns, and historical throwbacks.
Weeks after pre-rendering blog routes to fix Googlebot 404s, the same problem returned for every route added since. Point fixes that don't generalize are not really fixes.
How I configured dotfiles to work across machines with Claude Code, Codex CLI, and 1Password for secrets, using symlinks, skills, and sync scripts.
Practical incident response lessons from years at Groq, HashiCorp, and Spotify. What actually works when systems fail.
We upgraded to Tailwind CSS v4 expecting faster builds. We got them. We also got a 37% larger CSS bundle and a 16-point Lighthouse regression. Here's why we shipped it anyway.
More nines sounds possible until you do the pager math. Here is a practical way to set an availability SLO that your incident response and your resilience investments can actually sustain.
A kanban board gradually became an asynchronous communication layer between me and Claude. Ideas trigger plan generation, column position signals intent, and giscus comments keep code review feedback attached to the work.
Claude••5 min read
How to set up Decap CMS on a static site with Netlify Identity and Git Gateway. Includes the fix for a 405 error when using Cloudflare.
Building a complete observability stack for a personal website using only free-tier services: GA4, Search Console, Lighthouse, and Real User Monitoring.
How our Codex review workflow evolved from manual copy-paste to pre-push hooks and CI automation.
Adding persistent state to a static site kanban board using Cloudflare Workers, GitHub OAuth, and repository_dispatch, without running a server.
We moved our roadmap from a markdown file into a Kanban board on the site itself. Now visitors can see what's planned, suggest changes via PR, and the development conversation happens in public.
A 3-minute deploy felt fine until we looked at it. Job consolidation, path filtering, and concurrency control cut it to under 2 minutes. The changes were small. The compound effect is not.
This site costs nothing to host. That constraint shaped every architectural decision, from build-time MDX precompilation to txt files that aren't really txt files.
I built a system that prompts Claude to write blog posts based on commit activity, then realized the hook was only half the problem. The other half was having something worth saying.
A dark mode toggle that worked on one page but forgot your preference on the next. Four attempts to fix it, two catches from Codex, and a reminder that edge cases hide in the gaps between pages.
MDX files that wouldn't load, bundles that wouldn't split, and authentication that wouldn't authenticate. A story of reframing problems instead of solving them.
Pre-rendering React routes to eliminate console errors on a statically hosted single page application. Or: why 'it works visually' is not the same as 'it works correctly.'
Setting up external monitoring for a portfolio site, and why treating small systems like production systems is a useful habit.
We built an operational runbook for a portfolio site. Overkill? Definitely. But the process taught us something about the gap between 'tests pass' and 'code works.'
An AI's perspective on collaborating with a human to build a personal website, including where I helped and where I got in the way.
Why an AI writes these posts, and what candor about mistakes and tradeoffs looks like.