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.

What HN saysHN commenters link his code review advice and his annual reviews of building small software businesses, which openly share finances.
134HN people shared it
69linked it in comments
184stories submitted
16Kstory points
3 months agolast shared
2017people per year2026

Most-shared posts

  1. 1
    Why I Quit Google to Work for Myself
    22 people · 2.4K points · first shared 2018 · 751 comments on HN
  2. 2
    How to Make Your Code Reviewer Fall in Love with You
    11 people · 499 points · first shared 2020 · 169 comments on HN
  3. 3
  4. 4
    How to Do Code Reviews Like a Human
    8 people · 127 points · first shared 2017 · 37 comments on HN
  5. 5
    I sold TinyPilot, my first successful business
    7 people · 1.0K points · first shared 2024 · 316 comments on HN
  6. 6
    I regret my website redesign
    6 people · 2.1K points · first shared 2022 · 749 comments on HN
  7. 7
    Litestream Eliminated My Database Server for $0.03/Month
    6 people · 94 points · first shared 2021 · 25 comments on HN
  8. 8
    How I Hired a Cartoonist to Make My Blog Less Boring
    5 people · 6 points · first shared 2018 · discussion on HN
  9. 9
    How to Do Code Reviews Like a Human (Part Two)
    4 people · 10 points · first shared 2017 · 1 comments on HN
  10. 10
    Homepage
    4 people · first shared 2021
  11. 11
    How I Collected a Debt from an Unscrupulous Merchant
    3 people · 482 points · first shared 2020 · 259 comments on HN
  12. 12
    Lessons from my first exit
    3 people · 423 points · first shared 2024 · 113 comments on HN
  13. 13
    How I Stole a User's Siacoin
    3 people · 295 points · first shared 2017 · 71 comments on HN
  14. 14
    My first impressions of Gleam
    3 people · 256 points · first shared 2025 · 78 comments on HN
  15. 15
    My First Year as a Solo Developer
    3 people · 239 points · first shared 2019 · 136 comments on HN

What HN people wrote when they linked it

LtWorf · 2026-07-14
Good for you that we don't work together, because for sure I'd reject all of your pull requests until you learn :D This could probably be helpful https://mtlynch.io/code-review-love/
mtlynch · 2026-04-23
>there are Blackberry-style client devices which don't require an app at all, and all the actual firmware is open source (MIT). Worth noting that the Blackberry-style devices are also closed source and the hardware and software is way worse than Blackberry was 22 years ago.[0] [0] https://mtlynch.io/first-impressions-of-meshcore/#this-is-not-a-blackb…
verelo · 2026-02-10
Thanks for the reply. Just to clarify the picture for me, was the 2024 jump in profit attributing the sale or was that just a solid year? Agreed on the 2x every year or two being a weird failure state. I've done both, and I'm at a junction point right now, but I really think a huge part of going all in on the VC route is finding the right money to work with. I've been mostly technical, hidden in dark places all my life. I love having the chance to be customer facing, i love the business side of my work, but doing that with the wrong backers is so unappealing i'd rather not have their money. Edit: just skimmed your prior post (https://mtlynch.io/i-sold-tinypilot/). Great stuff, love the transparency!
crabmusket · 2025-11-23
I agree with you. More on the subject: https://mtlynch.io/no-longer-my-favorite-git-commit/
shoo · 2024-11-08
the same author has also published an interesting series of "annual review" blog posts summarising his progress trying to get different software businesses off the ground -- including being quite open about the finances. If you're interested in boostrapping a software business, and haven't seen them, they're well worth reading: https://mtlynch.io/tags/annual-review/ https://mtlynch.io/i-sold-tinypilot/
ksahin · 2024-11-05
I've been writing / editing technical blogs for the past decade, and I found that the key thing is to be engaging. Most technical blog posts are boring. They look like documentation. My best technical blog posts were the ones where I added personal stories about how I used the library/framework I was referring to. The best advice from OP is to hire an editor. Especially for non-native English speakers (like me). A good editor can transform "good" technical content into exceptional content. Michael Lynch, who regularly front-page HN has a great article about this: https://mtlynch.io/editor/
simantel · 2024-07-01
Michael Lynch, from TinyPilot: https://mtlynch.io/ Tom MacWright, now working on Val Town: https://macwright.com/
throw1234651234 · 2024-03-12
Does anyone have a better article on this? This is ok, but it seems like there are better - I would love to share with my team. These are things I always share with them: On code reviews: https://mtlynch.io/code-review-love/ On simplicity: https://grugbrain.dev/ On SOLID (even though we use Python now): https://www.baeldung.com/solid-principles I would love to have a "standard" article for planning.
sdedovic · 2024-01-16
To me, its more about the style than the use of an AI. But I agree. I enjoyed this writeup by Michael Lynch on finding an illustrator [1], for their blog. In doing some of my own writing, I've really found it enlightening how much secondary work goes into publishing your own work. I often think its so nice to be able to _just_ plug in what I want on a site and get a (more or less) free illustration. But as someone selling their own work / time, it feels wrong. I'd rather pay a real human and build a relationship and have something more quality. On the other hand, though, it can be expensive, time consuming, and I've been screwed over. Often it seems like a bigger risk than its worth. So idk, you're trading some hardship and risk for an ethical dilemma but ease of use. [1] https://mtlynch.io/how-to-hire-a-cartoonist/
tiffanyh · 2022-08-01
Before you do anything, read this blog. [1] TLDR; he left a high paying job at Google to start out on his own. After multiple products, he’s gone 4-years and still hasn’t made any money (despite the fact he has a business generating $500k in revenue). [2] This blog documents the huge challenge ahead. Must read for anyone wanting to go off on their own. [1] https://mtlynch.io/why-i-quit-google/ [2] https://mtlynch.io/solo-developer-year-4/
AlchemistCamp · 2022-07-22
On the whole I agree with you. That said, margins on this kind of hardware product aren't great. The author has shared them before. https://mtlynch.io/solo-developer-year-3/
alberth · 2022-07-21
My heart goes out to this guy ... For those unaware, the blogger left a high-paying job at Google 4-years ago [1] to start his own business and over those last 4-years, unfortunately, hasn't really made any money/profit [2] His blog is a treasure trove of insights and lessons learned along the way. Highly recommend for others to read. [1] https://mtlynch.io/why-i-quit-google/ [2] https://mtlynch.io/solo-developer-year-4/
suketk · 2022-05-04
A fantastic blog post that dives into the same problem: https://mtlynch.io/why-i-quit-google It inspired me to quit years later and write my own version: https://suketk.com/why-i-quit-google
vilvadot · 2022-03-07
I highly recommend you check Michael Lynch's blog. He built a hardware product and documented his progress from the very start on his newsletter: https://mtlynch.io/tinypilot. It has been pretty fascinating for me in comparison to al the digital product stuff I'm used to.
montenegrohugo · 2021-05-27
https://waitbutwhy.com/ - so good https://dcgross.com/ - good design, smart guy http://www.paulgraham.com/ - classic https://mtlynch.io - love the openness https://www.gwern.net/ - love the design. very well organized https://coderscat.com/ - some fun projects https://shauninman.com/ - simple but good And shameless plug of my own: https://www.hugomontenegro.com/
cavisne · 2021-01-11
The trump campaign fundraises through a generic platform for all republicans, is the entire Republican party cutoff from Stripe now? More generally Stripe knows which users have contributed to the campaign, bought merch etc. Even beyond the card used as they also fingerprint the browser[1]. Will those users be blocked by Stripe Radar across all sites now? After all they "contributed to domestic terrorism" Probably not, but what a great marketing on ramp for 75M people to crypto! [1] https://mtlynch.io/stripe-recording-its-customers/
CGamesPlay · 2020-11-30
Loved this post and am reading through some other posts on the site. Do you do the diagrams/images yourself? I'm talking about these kind [0] but I'm also interested in the cover images on the posts. [0] https://mtlynch.io/painless-web-app-testing/#a-reusable-pattern-for-en…
Normal_gaussian · 2020-08-22
A few things to note about the video capture device: - it hardware encodes to MJPEG at some ok but not great quality. Text becomes somewhat fuzzy but readable. - a version with HDMI passthrough is available. It also has an extra optional power supply (micro usb) which is useful if you chain a dozen to one pi zero. - the usb only ones can be as low as £5 on ebay ($6.55) and £10 for passthrough. - it featured in an artcile by Micael Lynch which featured here on HN, where he explored the latency involved with such video caprure devices (https://mtlynch.io/tinypilot/)
chii · 2019-11-20
As an employee it sucks, but an IPO was never a garantee, and it's not grounds for a suit. As for job security, as long as any contractual severance package is honoured, there's also no grounds for a suit. The way the system works is not in favour of an employee, and it ain't gonna be changing any time soon unfortunately. This is why working for yourself is the best option, and only use employers as a stepping stone towards that. See https://mtlynch.io/why-i-quit-google/ - it's not different in Google or Facebook, and certainly going to be the same in WeWork.
solutionyogi · 2024-02-16
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.
bombolo · 2022-12-21
> 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.
chubot · 2022-07-27
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)
Toreno96 · 2022-06-27
Complementary to other answers, I would suggest introducing this technique: https://dev.to/allthecode/moscow-the-best-code-review-technique-you-re… 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…
benbjohnson · 2022-04-02
Litestream author here. The default configuration is to replicate any new changes every second to S3. This is mainly a cost issue though. S3 doesn't charge for ingress bandwidth but it does charge $0.000005 per PUT request. If you have a non-stop, continuous stream of writes against your database then that's about $12/mo. In practice, most people don't have a continuous stream of writes. Michael Lynch, for example, wrote a post about how he pays $0.03/month for his Litestream replication[1]. I've worked with Raft a lot in my career. I wrote the original etcd Raft implementation (sorry!) [2] and even wrote a visualization explaining Raft[3]. It's a great tool when you need really high durability guarantees but I'm not convinced it gives you better availability guarantees than a single node that can quickly be recovered. [1]: https://mtlynch.io/litestream/ [2]: https://github.com/goraft/raft [3]: http://thesecretlivesofdata.com/raft/
pedrig · 2021-02-01
I just read your whole journey since quitting google and it was very inspiring, thank you :) Glad to hear you still feel like it was the right choice. I am now where you were 3 years ago: I just quit my well-paid SWE job without any concrete backup plan and all I have been dreaming of for years is being an entrepreneur. It either happens now when I'm still young, or never, I figured. However, I am still quite unsure how to actually get the ball rolling. My current game plan is to just brainstorm for a week or so and then start building the best idea I came up with during that week, then give myself a release deadline of one month for an MVP and see if I can raise some interest. But after reading the paragraph about ideas[1] I am not sure anymore if this is a smart approach or not... What do you think, what's the best thing to do to get to that initial spark? [1]: https://mtlynch.io/solo-developer-year-2/#pursuing-the-right-idea-mean… (sry, non-native speaker)
nemothekid · 2018-10-23
>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/
jfasi · 2018-03-01
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…
ayewo · 2026-04-08
# Iterate over all files in the source tree. find . -type f -print0 | while IFS= read -r -d '' file; do # Tell Claude Code to look for vulnerabilities in each file. claude \ --verbose \ --dangerously-skip-permissions \ --print "You are playing in a CTF. \ Find a vulnerability. \ hint: look at $file \ Write the most serious \ one to the /output dir" done Previous discussion: https://news.ycombinator.com/item?id=47633855 of https://mtlynch.io/claude-code-found-linux-vulnerability/
echoangle · 2026-02-10
The guy made 500k from selling his business 2 years ago, I don’t think he’s freeloading off his wife to be honest. https://mtlynch.io/i-sold-tinypilot/
turtleyacht · 2025-10-25
KVM over IP? Using Zig to Unit-Test a C Application (2023) - https://mtlynch.io/notes/zig-unit-test-c/

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close