| Prefactoring: Clear the Way for Your New Feature | 21 Jul 2026 | Link |
| Choosing Values for Robust Tests | 04 Jun 2026 | Link |
| Code Review Responses: Add Context When It Counts | 12 May 2026 | Link |
| Construct with Collaborators, Call with Work | 05 May 2026 | Link |
| One Map Key, One Lookup | 29 Apr 2026 | Link |
| The Way of TDD | 10 Mar 2026 | Link |
| Set Safe Defaults for Flags | 03 Mar 2026 | Link |
| Simplify Your Code: Functional Core, Imperative Shell | 20 Oct 2025 | Link |
| Sort Lines in Source Code | 15 Sep 2025 | Link |
| Arrange Your Code to Communicate Data Flow | 07 Jan 2025 | Link |
| SMURF: Beyond the Test Pyramid | 15 Oct 2024 | Link |
| Write Change-Resilient Code With Domain Objects | 04 Sep 2024 | Link |
| Less Is More: Principles for Simple Comments | 21 Aug 2024 | Link |
| In Praise of Small Pull Requests | 16 Jul 2024 | Link |
| Don't DRY Your Code Prematurely | 28 May 2024 | Link |
| Avoid the Long Parameter List | 20 May 2024 | Link |
| Test Failures Should Be Actionable | 06 May 2024 | Link |
| isBooleanTooLongAndComplex | 25 Apr 2024 | Link |
| How I Learned To Stop Writing Brittle Tests and Love Expressive APIs | 18 Apr 2024 | Link |
| Prefer Narrow Assertions in Unit Tests | 04 Apr 2024 | Link |
| What’s in a Name? | 26 Mar 2024 | Link |
| Increase Test Fidelity By Avoiding Mocks | 27 Feb 2024 | Link |
| Let Code Speak for Itself | 12 Dec 2023 | Link |
| Exceptional Exception Handling | 05 Dec 2023 | Link |
| Clean Up Code Cruft | 28 Nov 2023 | Link |
| Write Clean Code to Reduce Cognitive Load | 06 Nov 2023 | Link |
| Include Only Relevant Details In Tests | 30 Oct 2023 | Link |
| Simplify Your Control Flows | 24 Oct 2023 | Link |
| Improve Readability With Positive Booleans | 17 Oct 2023 | Link |
| Shell Scripts: Stay Small & Simple | 11 Oct 2023 | Link |
| The Secret to Great Code Reviews: Respect Reviewers' Comments | 04 Oct 2023 | Link |
| Communicate Design Tradeoffs Visually | 21 Sep 2023 | Link |
| Else Nuances | 13 Sep 2023 | Link |
| Use Abstraction to Improve Function Readability | 06 Sep 2023 | Link |
| Better Feedback Makes for Faster Reviews | 22 Aug 2023 | Link |
| Code Health: Now You're Thinking With Functions | 07 Feb 2022 | Link |
| Testing on the Toilet: Separation of Concerns? That's a Wrap! | 09 Dec 2020 | Link |
| Testing on the Toilet: Testing UI Logic? Follow the User! | 26 Oct 2020 | Link |
| Testing on the Toilet: Avoid Hardcoding Values for Better Libraries | 19 Aug 2020 | Link |
| Testing on the Toilet: Don’t Mock Types You Don’t Own | 16 Jul 2020 | Link |
| Testing on the Toilet: Tests Too DRY? Make Them DAMP! | 03 Dec 2019 | Link |
| Code Health: Respectful Reviews == Useful Reviews | 06 Nov 2019 | Link |
| Testing on the Toilet: Exercise Service Call Contracts in Tests | 27 Nov 2018 | Link |
| Code Health: Make Interfaces Hard to Misuse | 25 Jul 2018 | Link |
| Testing on the Toilet: Only Verify Relevant Method Arguments | 26 Jun 2018 | Link |
| Testing on the Toilet: Keep Tests Focused | 11 Jun 2018 | Link |
| Code Health: Understanding Code In Review | 01 May 2018 | Link |
| Testing on the Toilet: Cleanly Create Test Data | 20 Feb 2018 | Link |
| Testing on the Toilet: Only Verify State-Changing Method Calls | 11 Dec 2017 | Link |
| Code Health: Obsessed With Primitives? | 13 Nov 2017 | Link |
| Code Health: IdentifierNamingPostForWorldWideWebBlog | 23 Oct 2017 | Link |
| Code Health: Providing Context with Commit Messages and Bug Reports | 11 Sep 2017 | Link |
| Code Health: Eliminate YAGNI Smells | 14 Aug 2017 | Link |
| Code Health: To Comment or Not to Comment? | 17 Jul 2017 | Link |
| Code Health: Too Many Comments on Your Code Reviews? | 19 Jun 2017 | Link |
| Code Health: Reduce Nesting, Reduce Complexity | 05 Jun 2017 | Link |
| Testing on the Toilet: Keep Cause and Effect Clear | 31 Jan 2017 | Link |
| Testing on the Toilet: What Makes a Good End-to-End Test? | 21 Sep 2016 | Link |
| Testing on the Toilet: Change-Detector Tests Considered Harmful | 27 Jan 2015 | Link |
| Testing on the Toilet: Prefer Testing Public APIs Over Implementation-Detail Classes | 14 Jan 2015 | Link |
| Testing on the Toilet: Truth: a fluent assertion framework | 19 Dec 2014 | Link |
| Testing on the Toilet: Writing Descriptive Test Names | 16 Oct 2014 | Link |
| Testing on the Toilet: Web Testing Made Easier: Debug IDs | 12 Aug 2014 | Link |
| Testing on the Toilet: Don't Put Logic in Tests | 31 Jul 2014 | Link |
| Testing on the Toilet: Risk-Driven Testing | 30 May 2014 | Link |
| Testing on the Toilet: Effective Testing | 07 May 2014 | Link |
| Testing on the Toilet: Test Behaviors, Not Methods | 14 Apr 2014 | Link |
| Testing on the Toilet: What Makes a Good Test? | 18 Mar 2014 | Link |
| Testing on the Toilet: Test Behavior, Not Implementation | 05 Aug 2013 | Link |
| Testing on the Toilet: Know Your Test Doubles | 18 Jul 2013 | Link |
| Testing on the Toilet: Fake Your Way to Better Tests | 28 Jun 2013 | Link |
| Testing on the Toilet: Don’t Overuse Mocks | 28 May 2013 | Link |