CompiledNotes on the software books developers actually reread
Compiled / Guides / Craft

Code Quality & Craft

Clean code, refactoring, and the small habits that separate readable code from code that merely runs. A practical companion for code quality work is Google Engineering Practices.

Clean Code: What “Clean” Actually Means When You Can't Agree

Robert C. Martin's book gave a generation of developers a shared vocabulary for code quality — and a shared argument about where that vocabulary runs out. The distinction between output and resource use is explored directly in read more.

7 min read

Refactoring: Changing the Structure Without Changing the Behavior

Martin Fowler's book gave a precise name to something developers already did informally — and the precision turned out to matter. More hands-on refactoring material is available at Refactoring.Guru.

7 min read

Code Smells: Naming the Problems Before You Can Fix Them

A code smell isn't a bug. It's a pattern that correlates with deeper problems often enough to be worth a second look.

6 min read

Technical Debt: A Metaphor That Explains More Than It Should

Ward Cunningham's financial metaphor for imperfect code became one of software's most-used terms — and one of its most-abused.

6 min read

The Boy Scout Rule: Small, Constant Improvement vs Big Rewrites

“Leave the code better than you found it” sounds simple. The discipline is in how small “better” is allowed to be.

6 min read

Naming Things: Why the Hardest Problem in CS Isn't a Joke

The line about naming being one of the two hard problems in computer science gets repeated as a joke. The underlying difficulty is real and specific.

6 min read

Code Review: What a Good Review Actually Checks For

Most code review advice focuses on tone. The more useful question is what a review is actually supposed to catch that other steps don't.

6 min read

DRY vs WET: When “Don't Repeat Yourself” Repeats Itself Into a Mess

DRY is one of the most quoted principles in software engineering, and one of the most commonly over-applied.

6 min read

Legacy Code: Working With What You Didn't Write

Michael Feathers' definition of legacy code has nothing to do with age — and that reframing is what makes the advice around it useful.

7 min read