Sign in

Michael Lynch

@mtlynch.io
875 followers 184 following 283 posts

Bootstrapped founder. Lover of unit tests. One successful exit. ex-@google, ex-@microsoft.

PostsRepliesMedia
Michael Lynch @mtlynch.io · 14/09/2026
My article "How to Write an Effective Software Design Document" is on the front page of Hacker News today. I tried submitting this myself 4x a couple months ago, and it flopped every time, so I'm excited to see this hit #1.
Screenshot of Hacker News with "How to Write an Effective Software Design Document" listed at #1
050
Michael Lynch @mtlynch.io · 20/07/2026
Today is the last day to buy my book, Refactoring English, at its 40% early access discount. The book is for any software developer who wants to improve their writing, from emails to design docs to blog posts. refactoringenglish.com/early-access/
Cartoon of Steve Jobs announcing the iPod by calling it, "A plastic and metal rectangle, right in your pocket." Audience looks confused. Caption is "Before Steve Jobs landed on '1,000 songs, right in your pocket.'"
011
Michael Lynch @mtlynch.io · 13/05/2026
Darn! Forgot to take this bet.
Hacker News comment from May 10, 2026: "But you know, I'm willing to bet that in 10 years from now WhatsApp and Slack will be both dead..."
130
Michael Lynch @mtlynch.io · 06/05/2026
I bought parts for my last PC on Black Friday 2024. I bought 64 GB of RAM for $209.99. Price today for the same exact sticks: $979.99
171
Michael Lynch @mtlynch.io · 30/04/2026
AI has good suggestions for bad writing but bad suggestions for good writing.
AI can help you become a good writer, not a great writer

AI can be improve your writing, but it's important to recognize its limitations.

AI can't accurately predict the responses of real readers. AI has seen many examples of good writing, and it does an impressive job at pattern matching your writing to other examples, but you know your readers better than AI does.

As an experiment, I asked an AI agent to offer feedback on a recent essay written by Paul Graham, a popular and influential software writer. Here was the AI assistant's first note:

> “An essay has to tell people something they don't already know” may feel too rigid. [...]
>
> A softer version might be:
>
> - “A good essay usually tells readers something they didn't already fully know.”
> - “An essay has to add something to the reader's understanding.”

The AI's feedback is basically, “You have a strong point of view. Why don't you water it down?”

The feedback for Graham's essay is typical of AI. An AI assistant does not want to adopt bold stances or take risks. AI wants to sound like everyone else.

If Paul Graham let an AI assistant revise all of his writing, he would not be popular or interesting because AI would filter the exact qualities that make Graham stand out.

AI can help you reach the 60th or 70th percentile of writing ability, but not beyond. An AI assistant will never say, “Gosh, that's better than I can write, so I'll leave it alone.” If you show it 90th percentile writing, AI will drag it to the 70th percentile with needless edits.

To grow beyond AI's limitations, you need to follow your intuition. If AI tells you to change something, think carefully about whether the AI assistant “gets” what you're trying to do and whether you agree with its feedback.
220
Michael Lynch @mtlynch.io · 19/04/2026
I teach writing to developers, and I use your WannaCry blog post as an example of effective storytelling despite superficial writing issues
150
Michael Lynch @mtlynch.io · 25/02/2026
Me, two days after discovering I can purchase remote nix builds as a service
000
Michael Lynch @mtlynch.io · 10/02/2026
I'm on Hacker News today! I wrote about my eighth year as a bootstrapped founder.
152
Michael Lynch @mtlynch.io · 12/01/2026
Keri Russell's face acting in this scene alone brings the season up to a minimum of three stars
100
Michael Lynch @mtlynch.io · 12/01/2026
@jmduke.com can you update your site's repo so I can submit a PR to fix this *egregious* bug in your review of The Diplomat?
100
Michael Lynch @mtlynch.io · 07/01/2026
Looks like my fix worked
150
Michael Lynch @mtlynch.io · 06/01/2026
Oh, they're indexing every possible view of the HN popularity contest
120
Michael Lynch @mtlynch.io · 06/01/2026
Got a notification that I was using 600x my normal CDN credits. I checked it expecting an aggressive LLM scraper. But nope, just Google, downloading the same 3 MB file from me every three seconds.
140
Michael Lynch @mtlynch.io · 03/01/2026
My article about the HN's top bloggers of 2025 is on the front page of HN. Honestly, I'm quite relieved after it flopped yesterday. I don't mind pandering to HN, but it's embarrassing when even that fails.
030
Michael Lynch @mtlynch.io · 02/01/2026
You were at #1 for a while!
120
Michael Lynch @mtlynch.io · 29/12/2025
Yeah, I don't know what could have originated this wild rumor
1141
Michael Lynch @mtlynch.io · 18/12/2025
I just added discounted regional pricing based on purchasing power parity for my book. You can pay in your local currency based on your PPP. refactoringenglish.com/early-access/
021
Michael Lynch @mtlynch.io · 14/11/2025
They feel like they mean something, but when you delete them, the sentence is no different.
For example, these two sentences differ slightly:
I discovered a very useful feature of Linux.
I discovered a useful feature of Linux.
The difference in meaning above is so small that it’s easy to delete “very” for brevity. The
same is true with similarly bland modifiers like “really,” “pretty,” and “much”:
The code feels much cleaner now that we have consistent conventions.
The code feels cleaner now that we have consistent conventions.
We’ve had really promising results with SQLite.
We’ve had promising results with SQLite.
110
Michael Lynch @mtlynch.io · 14/11/2025
One of the simplest ways I've improved my writing is deleting words like "very" and "much" that add virtually no meaning.
I refer to the following words as "`easy deletes,`" as they rarely add enough value in any sentence to justify their existence:

* very
* really
* pretty
* much
* just
* actually
* own
131
Michael Lynch @mtlynch.io · 02/10/2025
This appeared on a web payment form I was filling out. For a second, I thought, "Wait, how are they getting my desktop's local LAN IP?" And then I realized they're just logging their reverse proxy's IP.
2120
Michael Lynch @mtlynch.io · 12/09/2025
I interviewed Adam Gordon Bell, blogger and host of the CoRecursive podcast about how he consistently reaches the front page of Hacker News, what blog post topics attract customers, and how Adam improved his writing refactoringenglish.com/blog/intervi...
010
Michael Lynch @mtlynch.io · 08/09/2025
New achievement: I repaired a CPU with bent pins! I bought a used AMD Ryzen 7 5700G CPU for my home NAS because my old Athlon 3000G was choking on 4K video. The new CPU arrived with bent pins. Thought about returning it but managed to repair it myself with a utility blade.
050
Michael Lynch @mtlynch.io · 10/07/2025
A quote from Refactoring English made it to LWN's development quote of the week. lwn.net/Articles/102...


    A release announcement should never include the phrase, "various improvements and bugfixes." You might as well boast that the team proudly breathed air throughout development and used the latest version of the Internet.

    If you can't articulate how a change benefits your users, don't highlight it in your release announcement. Save the exhaustive list of changes for your release notes, but even there, please leave out "various improvements and bugfixes."

— Michael Lynch
010
Michael Lynch @mtlynch.io · 16/06/2025
Based on this CO2 graph, can you guess the point in the weekend I was playing with dry ice?
000
Michael Lynch @mtlynch.io · 02/06/2025
One of my favorite pieces of advice about writing educational books and products comes from Write Useful Books by Rob Fitzpatrick.
In fact, it’s so rare for a book to deliver on its promise that readers will adore
you for doing just that one thing. I’ve heard plenty of people recommend a
messy-but-effective book by saying:
Listen, it’s terribly written and full of typos and has a cover that
appears to have been drawn by a distracted toddler, but it’s got
something inside that’s just too important to miss. It’s going to
change your life. You’ve got to read it. Trust me.
But I’ve never heard even a single person recommend a problem-solver with the
inverse argument of:
This book is a real zero-impact way to spend thirteen dollars and
three hours. But you can tell that the author is super smart, the
cover is gorgeous, and there’s not even a single typo. You’re going to
love it.
020
Michael Lynch @mtlynch.io · 25/05/2025
It actually decayed off yesterday but the moderators seem to have bumped it back up around 9 AM ET this morning
120
Michael Lynch @mtlynch.io · 01/05/2025
I'm now famous enough that people remember vague, disconnected details about me
Litestream is really cool! I'm planning to use it to backup and restore my SQLite in the container level, just like what that ex-google guy who started a startup of a small KVM and had a flood in his warehouse while on vacation did. If I'm not mistaken. I would link here the perfect guide he wrote but there's 0 chance I'll find it. If you understand the reference please post the link.
060
Michael Lynch @mtlynch.io · 04/04/2025
My DIY book cover vs. a professional designer's version.
440
Michael Lynch @mtlynch.io · 04/04/2025
I played around more with the Hacker News Popularity Contest site and now you can view stats for your domain. refactoringenglish.com/tools/hn-pop...
000
Michael Lynch @mtlynch.io · 03/04/2025
What's the angle here? In two days, I got two different PRs on my open-source projects from two distinct but mostly fresh Github accounts adding Traefik as a layer in front of my app. The style of writing and code seem very AI-generated.
100
Michael Lynch @mtlynch.io · 29/03/2025
Kickstarter goal met! I get to write this book! Thanks so much to everyone who contributed!
Screenshot showing Kickstarter project at 105% funded
030
Michael Lynch @mtlynch.io · 28/03/2025
My blog post about writing blog posts that appeal to Hacker News is on the front page of Hacker News
1160
Michael Lynch @mtlynch.io · 26/03/2025
Hacker News fickleness strikes again! I submitted my tool to figure out HN's favorite bloggers twice as Show HNs, and it flopped both times. But then someone just submitted it, and it's on the front page.
020
Michael Lynch @mtlynch.io · 22/03/2025
Yep, I think that should fix it. Doing that should also set your rel="canonical" tag the way Google wants, as you currently have it set to "/" developers.google.com/search/docs/...
000
Michael Lynch @mtlynch.io · 14/03/2025
The most popular year for my blog was 2020, where I ended up at #9 overall. Take that, @jeffgeerling.com (#22) and @simonwillison.net (#32)! Although, they both went on to crush me every subsequent year. refactoringenglish.com/tools/hn-pop...
120
Michael Lynch @mtlynch.io · 03/03/2025
I got one of the free 4x CPU / 24 GB servers from Oracle Cloud. I installed Woodpecker CI on it, but most of the day, it just sits idle. Any ideas for what to install? Tor relay wouldn't work, but I'm looking for something kind of like that. I'd run ArchiveTeam Warrior, but they don't support ARM
110
Michael Lynch @mtlynch.io · 21/02/2025
Is there a way to tell SSH to do strict checking *only* if I'm connecting to a host with a hostname (e.g., abc.example.com) and just shut up if I'm connecting to a host by IP (e.g., 1.2.3.4)? I don't want to disable StrictHostKeyChecking globally, but I don't see a way to limit it to named hosts.
220
Michael Lynch @mtlynch.io · 15/02/2025
I just found out that @kagi.com summarizer works on YouTube videos. I tried it on one of my long videos, and it did well at summarizing the important points.
040
Michael Lynch @mtlynch.io · 31/01/2025
I've worked with a lot of people who agree that passive voice is bad, but they have trouble recognizing it when they see it. So, I created this exercise to help you recognize the passive voice. refactoringenglish.com/exercises/re...
Can You Spot the Passive Voice?
Your Results

Correct answers: 8 ✅

Incorrect answers: 0 ❌

A score of 100% was achieved on this passive voice quiz (by you).
340
Michael Lynch @mtlynch.io · 08/12/2024
Oh, I guess that's kind of high, but it doesn't seem unreasonable to me. Especially because I just checked the /new queue, and there's just not much else there to choose from, so if HN wants to mix in newer stories, there's going to be some that are low-voted
100
Michael Lynch @mtlynch.io · 06/12/2024
Anyone have a recommendation for a home thermostat that isn't terrible but also isn't cloud-dependent? Bonus for one that's hackable. Super-bonus for open-source (but pre-made and available for purchase)
Photo of my Honeywell Home thermostat
110
Michael Lynch @mtlynch.io · 04/12/2024
Unexpected SEO result. A few weeks ago, I added a postscript to a guide I wrote in 2022 about how the guide worked out for me, and readers from Google search doubled. Cool that there's incentive to go back and update old posts like this.
300
Michael Lynch @mtlynch.io · 22/11/2024
All I changed was my website's font, and it made a huge difference in how much I enjoy looking at the pages.
Screenshot of refactoringenglish.com using the Lato and Harriet fontsScreenshot of refactoringenglish.com using the Concourse and Heliotrope fonts
040
Michael Lynch @mtlynch.io · 15/11/2024
My evil plan is working
This is funny but nice. I read through the tutorial, and I really liked the tone of it. I got down to the end to find out he has also written a book on technical writing. If this is an example of what the book teaches, I am going to check that out.
030
Michael Lynch @mtlynch.io · 11/11/2024
I've been hoping that readers of my blog will sign up for updates about my book. It's been slow going for a few months, but this weekend, someone submitted one of my old posts to Hacker News, and a ton of new readers signed up!
Graph of subscribers to my ebook. 12 in September, 17 in October, 95 in November
050
Michael Lynch @mtlynch.io · 27/08/2023
I finally took some time this weekend to use Go's embed.FS so that I can compile PicoShare down to a single binary where the static HTML/CSS/JS is embedded in the binary. As a bonus, I also automated publishing the binaries from CircleCI. github.com/mtlynch/pico...
020