If you’re new to this blog, these are the posts I’d start with. They capture the ideas I return to most often when thinking about software and teams.
Delivering Work
How to Deliver Code Every Day - A practical system for consistently delivering work.
On commenting and approving pull requests - A simple default for adding value to colleagues’ work while keeping it moving.
Things I Check Before Opening a PR - My checklist for making pull requests easy to review and safe to merge.
Why Great PRs Are Great: Pull Requests Templates - How a simple template can make pull requests easier to write and review.
“What Would Finishing This Today Look Like?” - A question I use to think creatively, break out of artificial constraints, and increase velocity.
Writing Better Code
Write Boring Code - Why boring code is the best code.
Hard-Won Software Development Habits - A collection of habits that are core to my engineering practice.
Ruby’s Frozen String Literal Comment: YAGNI - A small example of resisting code that doesn’t serve a purpose.
The Joy of JavaScript Absolute Imports - Why simplifying your import paths can make a codebase easier to work with.
Debugging and Problem Solving
All My Best Debugging Tips - A collection of techniques I rely on when debugging.
A Perfect Bug Report - What makes a bug report genuinely helpful to the engineer fixing it.
Don’t Ask for Advice; Ask for a Code Review - A better way to get feedback that helps you grow.
Thinking Clearly About Work
Prioritization for Engineers: Rank Every Work List - A simple technique for making better decisions by forcing prioritization.
Getting It Right the First Time - Why great engineers always seem to get things right on the first try.
First Get It Working, Then Make it Look Good - Why you should prioritize something that works over something that looks good.
Decoupling Design From Engineering - Why you should try to separate your design brain from your engineer brain.
Desire Paths - What software design can learn from how people actually behave.
Career and Community
Take the Big Project - Why the hardest problems are often the best opportunities for growth.
My Daily Programming Routine - A look at the habits that shape my workday.
How I Organize a Meetup - Lessons from organizing developer communities for over a decade.
Product and Process
Acceptance Criteria That Actually Work - How to write acceptance criteria that help engineers, reviewers, and product teams.
If you enjoy these posts, keep reading!