Software Design

In this collection, I write about how software systems are shaped over time, with an emphasis on boundaries, dependencies, and design decisions that hold up under change.

You can subscribe via email or RSS for new essays, or follow along on Mastodon, Bluesky, and LinkedIn.

Engineering Leadership
In this collection, I write about how engineering organizations behave, focusing on systems of people operating under change, incentives, and imperfect information.
Product Engineering
In this collection, I write about how engineering decisions change when software exists inside a business, where incentives, tradeoffs, and pragmatism shape what gets built.
Software Development
In this collection, I write about the day-to-day craft of building software, focusing on tools, workflows, and practical decisions shaped by real-world constraints.

For short-form content, I also share notes and curated links with commentary on external articles.