Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K

    Michael Lynch

    mtlynch.io · Personal blog · on HN since 2017

    Michael Lynch, a developer who left Google, writes about bootstrapping software businesses, code review, and the TinyPilot KVM device.

    Visit blogRSSHN submissions
    StartupsProgrammingCareer & Work
    What HN says

    HN commenters link his code review advice and his annual reviews of building small software businesses, which openly share finances.

    Stats for nerds
    134HN people shared it
    184linked in comments
    16Kstory points
    Jul 2026last shared
    2018people per year2026

    Top posts on HN

    1. 1
      Why I Quit Google to Work for Myself
      22 people · 2.4K points · first shared 2018 · 751 comments on HN
    2. 2
      I regret my website redesign
      6 people · 2.1K points · first shared 2022 · 749 comments on HN
    3. 3
      Stripe records user movements on its customers' websites
      2 people · 1.1K points · first shared 2020 · 388 comments on HN
    4. 4
      My sixth year as a bootstrapped founder
      2 people · 1.1K points · first shared 2024 · 321 comments on HN
    5. 5
      My Second Year as a Solo Developer
      2 people · 1.1K points · first shared 2020 · 374 comments on HN
    6. 6
      I sold TinyPilot, my first successful business
      7 people · 1K points · first shared 2024 · 316 comments on HN
    7. 7
      Show HN: TinyPilot – Build a KVM over IP using a Raspberry Pi
      8 people · 756 points · first shared 2020 · 279 comments on HN
    8. 8
      Show HN: GreenPiThumb – A Raspberry Pi Gardening Bot
      1 person · 537 points · first shared 2017 · 181 comments on HN
    9. 9
      How to Make Your Code Reviewer Fall in Love with You
      11 people · 499 points · first shared 2020 · 169 comments on HN
    10. 10
      How I Collected a Debt from an Unscrupulous Merchant
      3 people · 482 points · first shared 2020 · 259 comments on HN

    What HN people wrote when they linked it

    • Toreno96Jun 2022

      Complementary to other answers, I would suggest introducing this technique: https://dev.to/allthecode/moscow-the-best-code-review-technique-you-re-not-using-2b0e However, share this w/ the reviewee first!

      I know some devs that are anxious if they don't fix _every_ single comment in their PR, even if I'm just suggesting something as "nice to have".
      This helped to mark which comments are actual priority.

      Also, make sure you're using code formatter in your CI, to avoid reviewing the code style, as this can start some unnecessary wars and frustration.

      Also, I suggest sharing this article https://mtlynch.io/code-review-love/ with your colleagues, especially step 8:

      > As the author, you ultimately control your reaction to feedback. Treat your reviewer’s notes as an objective discussion about the code, not your personal worth as a human.

      To some degree, as a reviewer you can keep your tone friendly, but ultimately _every_ sentence can be took as personal attack, and you can't really do anything about that. Keep that in mind, don't focus _too much_ on the tone, and don't let that prevent you from giving a comprehensive review.

      One other thing I personally do, because I'm famous for giving _really_ thorough reviews, is to make sure from time to time that the other person is fine w/ that. Simple DM "I hope you don't feel too overwhelmed by my CR?" helps, especially that often people respond that they actually approve I'm so thorough. If you worry people get offended, it is easy…

    • jfasiMar 2018

      Downvote me if you want, but I work at Google and I can offer a counterpoint to the process presented in the article that blew up yesterday:

      https://mtlynch.io/why-i-quit-google/

      As always, this is my single-sample personal view, so please don't mistake this for anything beyond that.

      It's true, we do place a lot of importance on complexity and impact, which are fuzzy metrics, potentially inconsistently defined, and can be subject to circumstance. Yes, engineers do suffer the temptation to game things by releasing their work prematurely and not committing themselves to supporting it. And yes, not all managers know how to set expectations appropriately, occasionally resulting in disappointment and confusion for their employees.

      However, that's the individual's perspective. Promotions serve the institution first, and the individual second, and I'd like to offer the institutional perspective.

      Promotion to senior engineer is a big freaking deal. Once you are Senior, you've effectively been given the keys to the kingdom. It's the industry equivalent of tenure. Want to transfer to a team? No problem, your manager knows they're going to get someone who's been through hell and is able to deliver. Want to join another company? Great, "Senior Engineer, Google" is an indisputable mark of quality, you'll at least get an interview.

      If there's one thing I've learned in my time here, it's that false positives are way more costly than false negatives. Hire someone who can't do the…

    • chubotJul 2022

      What's missing in all these replies -- it depends on who you are :)

      If you have experience and specialized skill, it can be worth it to go to Google / big tech. You can apply your skills (for considerable profit), and learn from others with different specialized skills. You can work on highly technical things that are difficult to find elsewhere.

      If you're inexperienced or fresh out of college, I would say it's not worth it. You'll probably have a bad experience (and I've talked to multiple young people who this has happened to).

      Google was good for inexperienced hires when I joined (2005), but it isn't anymore.

      You'll learn more elsewhere in 2022. In fact, I'd strongly suggest that you'll learn the WRONG lessons at big tech. The real problem in those jobs is learning to navigate bureaucracy, rather than learning how to build things.

      I talked to people who basically didn't get to build anything that anybody used for the first 5 years of their career, which IMO is basically a death sentence for an engineering career. They just shifted among cancelled projects and didn't learn anything. All their work was thrown away.

      Good blog post about that:

      https://mtlynch.io/why-i-quit-google/

      https://news.ycombinator.com/item?id=16483241

      (and the author was apparently experienced, so these bad jobs aren't limited to fresh college hires)

    • solutionyogiFeb 2024

      Michael,

      You are an inspiration. I have been following your journey since your post about quitting Google hit the HN front page. And what a wild ride it has been.

      You tried many projects (https://mtlynch.io/projects/), and it took a while for you to find your winning idea. And I have read each of your retrospectives on TinyPilot (https://mtlynch.io/retrospectives/) and know that it wasn't easy.

      Your journey shows how hard it is to build a business (especially hardware-based), but with discipline and perseverance, it's definitely possible to create one as a solo founder.

      I also have a business idea that I would like to work on, but I am not ready to quit my full-time job yet. I have a few questions for you:

      1. Have you always been so disciplined in life? If not, how did you improve it? 2. As you shared here (https://mtlynch.io/solo-developer-year-1/), doubts are natural when you haven't succeeded yet; how did you keep going? Did you ever come close to giving up and going back to corporate America? 3. I believe you have a partner; how did this affect your relationship with your partner? 4. Knowing what you know now, what would you do differently?

      If you are ever in NYC, please hit me up; I would love to buy you a drink and chat more in person.

    • nemothekidOct 2018

      >As long as engineers are paid based on salary/wages this will always be the case, and has been the case in every company I've worked with.

      I don't think this is 100% true, and the problem you are describing doesn't necessarily follow the cause you put forth.

      Problem: Engineers do not work through tasks quickly because they aren't rewarded for completing tasks.

      Solution (hypothetical): Reward engineers for completing certain tasks.

      Problem: How do you value how much a task or feature is worth?

      Solution (hypothetical): A task's value is correlated with the impact on the business's bottom line.

      Anyone who's worked at a large SV tech firm can see the problem coming - engineers will only want to work on valuable, front facing tasks, and maintenance and technical debt tasks never get cleaned up. For example, Google[1], ties their promotion system to the value of the tasks you have done at Google - which obviously leads to a lot of gaming the system to increase your worth. So while I agree there might be a motivation problem, I don't think it's clear cut that the compensation model is the solution.

      https://mtlynch.io/why-i-quit-google/

    • bomboloDec 2022

      > A human might add one or two items to a list, decide it's now too long, and make 1 line into 10 lines.

      At which point I tell him to split formatting and actual changes into different commits (see https://mtlynch.io/code-review-love/).

      > I get that you don't like using black - and that's fine! I don't use black on my project either.

      Well according to this comment, it's because we are noobs: "the people that disagree just haven't figured out that they're wrong yet"

      > But it seems like you're trying to find some other reason to reject black, and constructing hypotheticals that don't make any sense.

      After the n-th time I have to re-setup the entire virtual env on a different branch just to re-run black and isort to backport a fix to a release branch… it does get tiring.

      I presume most people here just do websites and don't really have a product that is released to customers who pay to support old versions for years, so black changing syntax is a 1 time event rather than a continuous source of daily pain.

      But it seems the commentators here don't have the experience to know there might be a use case they didn't think of.

    Related

    Signal v. Noisesignalvnoise.com941 people

    The open-plan office is a terrible, horrible, no good, very bad idea

    Signal v. Noise
    Company · last shared 2026
    37signals37signals.com1k people

    Two big announcements

    37signals
    Company · last shared 2026
    Ryan Kulpryanckulp.com18 people

    Why I’m Leaving San Francisco: Meta study

    Ryan Kulp
    Personal · last shared 2025
    Adam Wilkinsonmedium.com/@awilkinson43 people

    Berkshire Hathaway of the Internet

    Adam Wilkinson
    Personal · last shared 2021
    Software by Robsoftwarebyrob.com110 people

    How to detect a toxic customer

    Software by Rob
    Personal · last shared 2016
    Pieter Levelslevels.io138 people

    What happens when you're #1 on Hacker News for a day

    Pieter Levels
    Personal · last shared 2026
    jwzjwz.org880 people

    Watch a VC use my name to sell a con

    jwz
    Personal · last shared 2026
    Steve Blanksteveblank.com649 people

    Startup Stock Options – Why a Good Deal Has Gone Bad

    Steve Blank
    Personal · last shared 2026