Blog
Lessons from facilitating workshops, leading engineering teams, and building with AI — written up as I go.
Every repo, OneDrive file, and client SharePoint library on my work machine sits under one root — because every folder inside it answers a single question: who's responsible if this disappears?
More than one Claude Code session can end up pointed at the same repo at once. A shared checkout turns that into a race condition on the same .git index — a worktree per task is how I close it.
Trunk-based development tells you to keep branches short. It doesn't tell you how they land on main — and that gap let a merge commit slip into two of my repos on the same day. Squash merge closes it, cheaply.
Decision records aren't just for architecture, and not just for one project. Across every repo I maintain with Claude Code or GitHub Copilot, an ADR is the difference between an agent re-arguing a settled call and reading why it was made.
Five things that fail the same quiet way unless they're checked before the session starts: a mismatched audience, jargon I stopped noticing, group size, license prerequisites, and the venue's own network.