The reading list
Essays, tech notes, and the in-between.
- technical-notes·3 min read
Why uv Exists: The Pre-uv Python Tooling Mess, and What Astral Consolidated
Before uv, a working Python project needed five tools and a working knowledge of how they fail at the seams. uv collapsed them into one Rust binary because the seams were the problem.

- Product·3 min read
Making Discovery a Habit: CDH Alongside Shape Up, OKRs, and Agile
Six weeks in, Donut CRM's tree almost died — not from bad discovery, but from a launch crunch. The habit, not the artifact, is the product. This closing module builds the weekly cadence that survives a real delivery calendar, shows where JTBD, Lean Startup, OKRs, and dual-track agile plug into the tree, runs the honest CDH-versus-Shape-Up comparison, and ends with your first six weeks, week by week.

- Product·3 min read
Assumption Mapping: Experiments That Test the Riskiest Thing First
The auto-drafted follow-up email looked obviously good — which is exactly when a team stops asking questions. This module turns one build decision into a list of testable guesses: surfacing assumptions from the happy path, sorting them on the importance-vs-evidence 2×2, and running the smallest test that could change your mind. Two fully specified experiment cards included, plus what Donut CRM's concierge test actually found.

- Product·3 min read
From Opportunities to Solutions: Ideating Alone and Together
Your first idea is almost always a category cliché, and your team's first shared idea is usually whatever the most senior person said out loud. This module covers picking ONE target opportunity, generating real solution variety solo, and running two Liberating Structures — 1-2-4-All and 25/10 — that beat groupthink with facilitation scripts you can copy. Then you put three solutions on your own tree.

- Product·3 min read
Running Discovery Sessions: Recruiting, Outreach, and No-Shows
One customer conversation a week, forever — that's the habit. This module is the operational half nobody teaches: where interviewees actually come from, the internal asks that get sales and CS to hand you conversations, outreach emails that get replies, scheduling mechanics that cut no-shows, and what to say on the call when someone demands a roadmap commitment. Templates for all of it.

- Product·3 min read
Finding Opportunities: Interviews, JTBD, and the Opportunity Space
An outcome with an empty opportunity space under it is a guess wearing a metric. This module covers the craft of filling that space: story-based interviews that produce evidence instead of polite yeses, one-page interview snapshots, the Jobs to Be Done lens for keeping opportunities solution-agnostic, and how to grow a flat list of pains into a structured two-level opportunity space — shown end to end on Donut CRM.

- Product·3 min read
Opportunity Solution Trees: The Shape of Good Discovery
A roadmap meeting where the loudest request wins is not prioritization — it's an auction. This module introduces the opportunity solution tree: one outcome at the root, customer needs in the middle, solutions and experiments below, so every priority argument happens on a shared picture instead of in the air. You'll leave with your own product outcome written and your last five feature requests decompressed into the needs underneath them.

- Product·3 min read
Avoiding AI Slop: Writing User Stories a Team Will Actually Build
AI slop in a backlog is worse than an empty backlog, because it's plausible enough to survive triage and hollow enough to fail in sprint. The series finale: how to recognize slop in product artifacts, the grounding rules that starve it, and the user-story craft — INVEST, vertical slices, testable criteria — that matters more now that drafting is free and judgment is the bottleneck.

- Product·3 min read
Commands That Write User Stories and PRDs with Real Context
A prompt you retype is a workflow you can't improve. This post turns the repo's two highest-frequency jobs — drafting user stories and drafting PRDs — into versioned command files: what context they load, what questions they must ask, what format they emit, and the guardrails that make their output reviewable instead of just plausible. Full command files included, copy-paste ready.

- Product·3 min read
A TRIZ Session: How to Guarantee Your Launch Destroys the Company
A ready-to-run Liberating Structures TRIZ workshop built on the Sonos May 2024 app launch. In 45 minutes, your team designs the disaster from scratch — immovable date, big-bang rewrite, no rollback — then discovers how much of the recipe they already practice, and commits to stopping one piece of it. Full facilitation script, answer key, and debrief included.
