Reading Code You Didn't Write

You’ve been handed a codebase. Maybe it’s your first week at a new job. Maybe you inherited a service from a team that no longer exists. Maybe you’re contributing to an open source project for the first time. Either way, you’re staring at thousands of files written by people who aren’t around to explain them. Reading unfamiliar code is one of the most common activities in software engineering, and one of the least taught. Most developers develop their own coping strategies — grep around, find main(), start clicking through imports. It works eventually, but it’s slow and you miss things. ...

April 8, 2026 · 7 min · Patrick Selamy

Why I Write Specs Before Prompts

If you want reliable work from AI systems, the spec matters more than the prompt. A prompt is a request. A spec is shared reality. That distinction changed how I build. Most AI coding advice obsesses over prompts. Wording. context size. model quirks. That matters a little. It matters less than having a clear unit of work. The bottleneck is usually not model intelligence. It is ambiguity. A weak prompt can still work on a small task with a strong reviewer. But once work spans multiple files, tools, sessions, or handoffs, prompts get lossy fast. The agent improvises. The human re-explains. Review slows down. Rework stacks up. ...

April 6, 2026 · 4 min · Patrick Selamy

The Dispatch Pattern: How I Shipped 25 PRs in One Night Without Touching the Code

I kept hitting the same ceiling. One repo was manageable. Two was annoying. Three or four active codebases meant my time disappeared into context switching. Open a branch. restate the task. wait for CI. switch repos. lose the thread. repeat. So I stopped trying to code faster and built a dispatch layer instead. The core idea is simple: one orchestrator assigns work, isolated coding agents execute it in parallel, and the system treats failures as normal operating conditions. ...

April 1, 2026 · 6 min · Patrick Selamy