refactoringenglish.com
The Most Popular Blogs of Hacker News in 2025
With 2025 wrapped up, I can finally answer a question I’m curious about every year: who were the most popular bloggers of Hacker News ? Who counts as a blogger? I explain more in my methodology page , but it’s basically anyone who blogs as an individual rather than as part of a company or a team. For example, John Graham-Cumming blogged while he was the CTO of Cloudflare, so I count his personal blog but not his posts to the Cloudflare company blog .
What Makes the Intro to *Crafting Interpreters* so Good?
One of my favorite programming books is Crafting Interpreters by Bob Nystrom. It teaches you how to build a programming language from scratch. Along the way, you learn about text parsing, data structures, virtual machines, and several other skills that make you a stronger developer. I was re-reading the book recently and realized that its introduction is delightfully effective. Developers are terrible at writing introductions , so it’s worth studying what makes the Crafting Interpreters in...
How to Get Meaningful Feedback on Your Design Document
You’ve spent weeks carefully writing a design document for your software project, but what happens next? How can you get useful feedback about it from your teammates? How do you prevent your design review from dragging on for months? I’ve been through many design reviews in my career as both the author and reviewer, and I have a special fondness for effective reviews. Through trial and error, I’ve learned techniques that help the review process move smoothly and yield material ...
The Software Essays that Shaped Me
I started reading software blogs before I got my first programming job 20 years ago. At this point, I’ve read thousands of blog posts and essays about software, but only a small handful stuck in my mind and changed the way I think. “The Joel Test: 12 Steps to Better Code” by Joel Spolsky (2000) “Parse, don’t validate” by Alexis King (2019) “No Silver Bullet - Essence and Accident in Software Engineering” by Fred Brooks (1986) “Choices” ...
Adam Gordon Bell on Attracting Customers through Blogging
Adam Gordon Bell is a developer, blogger, and the host of the software engineering podcast, CoRecursive . I interviewed Adam about writing and his success at attracting customers through his blog posts when he worked at Earthly. We talk about: How Adam consistently wrote blog posts that reached the front page of Hacker News Discovering blog topics that attract potential customers Techniques Adam used to strengthen his writing The value of writing respectfully about your competitors Transcript Ge...
Reader Feedback about my Chapter List
For the past eight months, I’ve been working on my book, Refactoring English: Effective Writing for Software Developers . I’m publishing the book incrementally as I write, which means readers give me feedback about the book in real time. I started writing the chapters I felt most confident readers would like, but now that I’m about 50% complete, I want to make sure the remaining chapters are things my readers actually want to learn.
Underused Techniques for Effective Emails
blockquote { font-style: normal; } .pm-email blockquote { border-left: 4px solid purple !important; } .good-email blockquote { border-left: 4px solid #02c700 !important; h3 { margin-top: 1rem; font-size: 1.6em; font-weight: bold; } } .bad-email blockquote { border-left: 4px solid red !important; } p img { margin-top: 3rem !important; margin-bottom: 1rem !important; } For software developers, there’s tremendous value in writing effective emails. Good emails save time, reduce misunderstandin...
How to Write Compelling Software Release Announcements
A release announcement showcases how the user’s experience is better today than it was yesterday. That sounds obvious, but most release announcements seem to forget that there’s a user at all. So many release announcements just enumerate new features in a way that’s totallly divorced from how real people use the software. The announcement is essentially just a changelog with better writing. For example, here’s a “changelog” style of announcing a new feature:
How to Write Blog Posts that Developers Read
I recently spoke to a developer who tried blogging but gave up because nobody was reading his posts. I checked out his blog, and it was immediately obvious why he didn’t have any readers. The developer had interesting insights, but he made so many mistakes in presenting his ideas that he was driving everyone away. The tragedy was that these errors were easy to fix. Once you learn to recognize them, they feel obvious, but some bloggers make these mistakes for years.
HN Popularity Contest
What counts as a personal blog? I count a site as a personal blog if: the site contains written content (not just an app or a video) the site is authored by a single person A blog still counts as a personal blog even if the blogger is a professional journalist (e.g., Brian Krebs ) or blogging on their company’s website (e.g., Raymond Chen ). Social media (Twitter / Mastodon) doesn’t count as a personal blog. Podcasts websites count as blogs if they’re hosted by a single person ...
How to Write Useful Commit Messages
Effective commit messages simplify the code review process and aid long-term code maintenance. Unfortunately, commit messages don’t get much respect, so the world is littered with useless messages like Fix bug or Update UI . There’s no widespread agreement about what makes a good commit message or why it’s useful, so I’m sharing my thoughts based on my 20 years of experience as a software developer. An example of a useful commit message What’s the point of a commit ...
Can You Spot the Passive Voice?
This exercise tests your ability to recognize the passive voice in the context of developing software. For each sentence, click: Active ⚡ if the sentence has no passive voice (active voice only) Passive 😴 if the sentence contains passive voice Start Does this sentence contain passive voice? Passive 😴 Active ⚡ Next Question Accuracy: 0 %
Passive Voice Considered Harmful
Your high school English teachers probably warned you that passive voice is dangerous and forbidden. Then, when you were an adult, some guy in a leather jacket told you that passive voice is cool and should be used whenever it’s desired. Well, the tide has turned again. If you’re a software developer, stop using the passive voice. Wait, what’s passive voice? In English, sentences can have one of two structures: passive voice or active voice.
Can You Spot the Passive Voice?
This exercise tests your ability to recognize the passive voice in the context of developing software. For each sentence, click: Active ⚡ if the sentence has no passive voice (active voice only) Passive 😴 if the sentence contains passive voice Start Does this sentence contain passive voice? Passive 😴 Active ⚡ Next Question Accuracy: 0 %
Rules for Writing Software Tutorials
Most software tutorials are tragically flawed. Tutorials often forget to mention some key detail, preventing readers from replicating the author’s process. Other times, the author brings in hidden assumptions that don’t match their readers’ expectations. The good news is that it’s easier than you think to write an exceptional software tutorial. You can stand out in a sea of mediocre guides by following a few simple rules. Rules Write for beginners Promise a clear outcome ...
Sample Blog Editing Notes
The notes below are my blog editing notes for the first draft of Tyler Cipriani’s article, “The future of large files in Git is Git.” I worked with Tyler to: Reach a clearer understanding of his target audience Focus the post on practical lessons the reader can apply Find a structure that feels clear and intuitive Tyler’s finished article enjoyed a strongly positive reception: Reached the #1 position on Hacker News with 550+ upvotes Reached the #1 position on Lobsters Rea...