RSSAmplifier

Blog

mtlynch.io

Recent content on mtlynch.io

mtlynch.ioRSS feed ↗137 posts

Latest posts

Refactoring English: Month 20

New here? Hi, I’m Michael. I’m a software developer and founder of small, indie tech businesses. I’m currently working on a book called Refactoring English: Effective Writing for Software Developers . Every month, I publish a retrospective like this one to share how things are going with my book and my professional life overall. Highlights July’s book sales tripled the…

Refactoring English: Month 19

New here? Hi, I’m Michael. I’m a software developer and founder of small, indie tech businesses. I’m currently working on a book called Refactoring English: Effective Writing for Software Developers . Every month, I publish a retrospective like this one to share how things are going with my book and my professional life overall. Highlights Refactoring English had its second-best…

Refactoring English: Month 18

New here? Hi, I’m Michael. I’m a software developer and founder of small, indie tech businesses. I’m currently working on a book called Refactoring English: Effective Writing for Software Developers . Every month, I publish a retrospective like this one to share how things are going with my book and my professional life overall. Highlights I’ve completed all 22 chapters of…

Refactoring English: Month 17

New here? Hi, I’m Michael. I’m a software developer and founder of small, indie tech businesses. I’m currently working on a book called Refactoring English: Effective Writing for Software Developers . Every month, I publish a retrospective like this one to share how things are going with my book and my professional life overall. Highlights I’m torn between focusing on my…

Refactoring English: Month 16

New here? Hi, I’m Michael. I’m a software developer and founder of small, indie tech businesses. I’m currently working on a book called Refactoring English: Effective Writing for Software Developers . Every month, I publish a retrospective like this one to share how things are going with my book and my professional life overall. Highlights I got to the front page of Hacker News…

Claude Code Found a Linux Vulnerability Hidden for 23 Years

Nicholas Carlini , a research scientist at Anthropic, reported at the [un]prompted AI security conference that he used Claude Code to find multiple remotely exploitable security vulnerabilities in the Linux kernel, including one that sat undiscovered for 23 years. Nicholas was astonished at how effective Claude Code has been at finding these bugs: We now have a number of remotely exploitable heap…

Refactoring English: Month 15

New here? Hi, I’m Michael. I’m a software developer and founder of small, indie tech businesses. I’m currently working on a book called Refactoring English: Effective Writing for Software Developers . Every month, I publish a retrospective like this one to share how things are going with my book and my professional life overall. Highlights It turns out that most of Refactoring…

Refactoring English: Month 14

New here? Hi, I’m Michael. I’m a software developer and founder of small, indie tech businesses. I’m currently working on a book called Refactoring English: Effective Writing for Software Developers . Every month, I publish a retrospective like this one to share how things are going with my book and my professional life overall. Highlights A new strategy for finding book readers…

Eversource EV Rebate Program Exposed Massachusetts Customer Data

I recently claimed a rebate for installing an electric vehicle (EV) charger, only to discover that Eversource, my power supplier, was publicly exposing personal information of customers who applied, including: Full names Vehicle registration certificates (including plate number and vehicle identification number) Home addresses Email addresses Phone numbers I’ll include the backstory that led…

My Eighth Year as a Bootstrapped Founder

Eight years ago, I quit my job as a developer at Google to create my own bootstrapped software company. Every year, I post an update about how that’s going and what my life is like as an indie founder. Previously on… I don’t expect you to go back and read my last seven updates. Here’s all you need to know: 2018 - 2020 - Quit my job and created several unprofitable…

Refactoring English: Month 13

New here? Hi, I’m Michael. I’m a software developer and founder of small, indie tech businesses. I’m currently working on a book called Refactoring English: Effective Writing for Software Developers . Every month, I publish a retrospective like this one to share how things are going with my book and my professional life overall. Highlights I added regional pricing for my book…

Refactoring English: Month 12

New here? Hi, I’m Michael. I’m a software developer and founder of small, indie tech businesses. I’m currently working on a book called Refactoring English: Effective Writing for Software Developers . Every month, I publish a retrospective like this one to share how things are going with my book and my professional life overall. Highlights I’m working on a game to predict…

My First Impressions of MeshCore Off-Grid Messaging

When my wife saw me playing with my new encrypted radio, she asked what it was for. “Imagine,” I said, “if I could type a message on my phone and send it to you, and the message would appear on your phone. Instantly!” She wasn’t impressed. “It also works if phone lines are down due to a power outage… or societal collapse.” Still nothing. “If…

Add a VLAN to OPNsense in Just 26 Clicks Across 6 Screens

How many clicks does it take to add a new VLAN to an OPNsense firewall? Nothing fancy. Just your regular, basic VLAN with its own IPv4 range. How many clicks should that take? Maybe two or three? Five if we’re real wild? Every time I add a new VLAN to OPNsense, the process feels strangely tedious, so I decided to measure exactly how many clicks it takes to add a simple VLAN to my firewall.

Refactoring English: Month 11

New here? Hi, I’m Michael. I’m a software developer and founder of small, indie tech businesses. I’m currently working on a book called Refactoring English: Effective Writing for Software Developers . Every month, I publish a retrospective like this one to share how things are going with my book and my professional life overall. Highlights I’m running late on my book. A…

Hold Off on Litestream 0.5.0

Litestream is an open-source tool that backs up SQLite databases to cloud storage in real time. I love it and use it in all of my projects. Litestream is owned by Fly.io , and they paused development on Litestream for almost two years in favor of an alternative project called LiteFS. Two weeks ago, Ben Johnson, Litestream’s creator and lead developer, announced that they were shifting focus…

Read My Blog With JavaScript

You can now read my blog with client-side JavaScript. I’m not sure why you’d want to, but you can. Maybe you want to add a blogroll to your site with a list of recent posts from your favorite blogs, but you don’t want to fetch them server side. If you wanted to use JavaScript to show my five most recent post titles, you’d write some code like this: fetch(…

Refactoring English: Month 10

New here? Hi, I’m Michael. I’m a software developer and founder of small, indie tech businesses. I’m currently working on a book called Refactoring English: Effective Writing for Software Developers . Every month, I publish a retrospective like this one to share how things are going with my book and my professional life overall. Highlights I’m experimenting with…

Get xkcd Cartoons at 2x Resolution

I recently learned a neat trick from Marcus Buffett : xkcd has an undocumented way to get images of the cartoons at double their normal resolution. The _2x trick For example, xkcd #2582 “Data Trap” lists this URL as the direct link: https://imgs.xkcd.com/comics/data_trap.png That leads to this 275x275px image, quite small by today’s standards: But there’s a trick! Add a _2x…

List of 2x-resolution xkcd Cartoons

This is a list of all the xkcd cartoons that are available in 2x resolution, as of today’s date. See the accompanying post, “Get xkcd Cartoons at 2x Resolution,” for an explanation. 1: No higher res available 2: No higher res available 3: No higher res available 4: No higher res available 5: No higher res available 6: No higher res available 7: No higher res available 8: No…

I Once Appeared in The Old New Thing

I’m a pretty humble guy, so most people don’t know this extremely impressive fact about me: Raymond Chen once mentioned me on The Old New Thing , the classic Windows development blog. No, he didn’t mention me by name nor did he provide any way to identify me, but I still deserve credit for how little I boast about this stunning achievement. In 2009, Raymond Chen mentioned me in…

Refactoring English: Month 9

New here? Hi, I’m Michael. I’m a software developer and founder of small, indie tech businesses. I’m currently working on a book called Refactoring English: Effective Writing for Software Developers . Every month, I publish a retrospective like this one to share how things are going with my book and my professional life overall. Highlights I got useful feedback from early readers…

Give Your Spouse the Gift of a Couple's Email Domain

I’ve only been married for a few years, but I have a fantastic marriage tip you won’t hear from any marriage counselor or book: Get a couple’s email domain What’s a couple’s email domain? My wife and I share a .com domain name for email. I’m not going to reveal our real domain name, but pretend it’s this: @shinytable.com Emails to michael@shinytable.com go…

Flash an AirGradient ONE from the Command Line

I’ve purchased two AirGradient ONE indoor quality monitors to measure air quality in my home. AirGradient devices are open-source, so you can flash your own custom firmware and collect your air data locally rather than sending it to AirGradient’s proprietary cloud dashboard. I keep an AirGradient ONE air quality monitor in my office to measure CO2 and pollution. The existing…

Refactoring English: Month 8

New here? Hi, I’m Michael. I’m a software developer and founder of small, indie tech businesses. I’m currently working on a book called Refactoring English: Effective Writing for Software Developers . Every month, I publish a retrospective like this one to share how things are going with my book and my professional life overall. Highlights I find that not every reader who…

Migrating a ZFS pool from RAIDZ1 to RAIDZ2

I recently upgraded my home TrueNAS server and migrated 18 TB of data from a 4-disk RAIDZ1 ZFS pool to a new RAIDZ2 pool. The neat part is that I did it with only three additional 8 TB disks and never transferred my data to external storage. Upgrading from RAIDZ1 to RAIDZ2 without moving data to external storage is tricky because:

Refactoring English: Month 7

Highlights I look for ways to limit the number of half-complete tasks I’m juggling. I brainstorm ways to talk with more of my early readers. I have trouble accepting a design decision in the Gleam language. Goal grades At the start of each month, I declare what I’d like to accomplish. Here’s how I did against those goals: Offer a lower-friction way for users to pre-order my book…

goHardDrive Leaked Personal Data for Thousands of Customers

I recently returned a product to goHardDrive, a merchant that specializes in selling used hard drives. During the return process, I discovered that they were accidentally publishing details about thousands of their customers, including their full names, mailing addresses, email addresses, and order details. The leak When I requested a return from goHardDrive, they assigned me a return merchandise…

My First Impressions of Gleam

I’m looking for a new programming language to learn this year, and Gleam looks like the most fun. It’s an Elixir-like language that supports static typing. I read the language tour , and it made sense to me, but I need to build something before I can judge a programming language well. I’m sharing some notes on my first few hours using Gleam in case they’re helpful to others…

A Simple Example of Calling an Elixir Library from Gleam

I’ve been experimenting a bit with Gleam and Elixir lately as part of my search for a new programming language . One of Gleam’s flagship features is that it can call Elixir code and libraries, but I couldn’t find any examples of how to do that. I wrote a simple example of calling an Elixir library from a Gleam project, based on my beginner’s understanding of the…

Refactoring English: Month 6

Highlights The writing techniques I planned last month helped me publish faster and focus better. I need to find more ways to talk to readers about my book. Goal grades At the start of each month, I declare what I’d like to accomplish. Here’s how I did against those goals: Publish two chapters of my book to pre-order readers Result : Published “You’re Qualified to Write a…

Which New Language Should I Learn for Web Development?

One of my goals for the year is to learn a new programming language. It’s been a while since I learned a new language, and I feel like a lot of the languages I know well (Go, Python, C++) are similar to each other, so I want to try getting out of my comfort zone a bit with a language that feels weird to me. Requirements Here’s what I’m looking for:

Notes from Simon Willison's Interview on Software Misadventures

I just finished listening to Simon Willison’s interview on the Software Misadventures podcast . I learned a lot from the interview, so I wrote up my notes. This is not a summary of the whole interview, just the parts that were new to me or that I’d like to remember. Simon Willison on the Software Misadventures podcast Who’s Simon Willison? One of the co-creators of Django, the…

Refactoring English: Month 5

Highlights Why am I making slower progress than I’d like on my book? I optimize my Asciidoctor write and preview workflow. I’m working on a side project to track Hacker News performance in real-time. Goal grades At the start of each month, I declare what I’d like to accomplish. Here’s how I did against those goals: Write a blog post about lessons from Kickstarter Result :…

My $6k Advance as a Self-Published Technical Author

I just received $5,947 in advance sales for my first technical book, even though it’s only 25% complete, and I’m self-publishing it. The book is called Refactoring English , and it’s a guide for software developers to improve their writing. In March, I ran a three-week pre-sale for the book on Kickstarter . The pre-sale raised $6,551 from 191 customers. After Kickstarter’s…

Don't Marry Your Podcasting Platform: Host Your Own Podcast Feed

Suppose you host your podcast on a platform like Libsyn or Podbean. What happens if you decide to switch podcast platforms? You already gave everyone a RSS URL that pointed to your old platform. For example Libsyn gives your podcast an RSS URL like this: https://feeds.libsyn.com/12345/rss When you submitted your podcast to Apple Podcasts and shared your RSS URL with your listeners, you pointed…

Refactoring English: Month 4

Highlights My book’s pre-sale succeeded (just barely). I wrote a bunch of blog posts, and I was bad at predicting their performance. Now, I need to pick a markup language for writing my book. Goal grades At the start of each month, I declare what I’d like to accomplish. Here’s how I did against those goals: Reach my $5k Kickstarter goal for Refactoring English . Result : The…

My Book's Pre-Sale Just Barely Succeeded

For the past few months, I’ve been working on a book called Refactoring English: Effective Writing for Software Developers . I didn’t want to spend a year writing the book only to find out that nobody wanted to buy it, so at the beginning of March, I ran a one-month pre-sale on Kickstarter. I structured the project so that if I didn’t hit $5k in pre-orders, the project would be…

No Longer My Favorite Git Commit

Six years ago, David Thompson wrote a popular blog post called “My favourite Git commit” celebrating a whimsically detailed commit message his co-worker wrote. I enjoyed the post at the time and have sent it to several teammates as a model for good commit messages. I recently revisited Thompson’s article as I was creating my own guide to writing useful commit messages . When…

Refactoring English: Month 3

Highlights I launched my first Kickstarter project and found Kickstarter surprisingly painless. I’m kind of on track to reach my Kickstarter goal, but I’ll need to get creative in raising the last 2/3rds. I’m soliciting suggestions for fun services to run on my 4x ARM CPU / 24 GB cloud server. Goal grades At the start of each month, I declare what I’d like to accomplish.…

Never Pay the First Bill by Marshall Allen

I enjoy finding ways to exercise my rights as a consumer and push back against corporate abuse, so this was right up my alley. The book was eye-opening and made me infuriated with how corrupt the medical system is in the US and how much it extracts wealth by fleecing the middle class.

My Zig Configuration for VS Code

I finally found a solution that makes VS Code work consistently with Zig, so I’m sharing my setup in the hope that it saves someone else a headache. Zig extension for VS Code working correctly Before I landed on a working solution, I kept running into issues with Zig version mismatches or VS Code completely failing to recognize Zig semantics and failing over to naive autocomplete.

Refactoring English: Month 2

Highlights I’m having doubts about sitting out the AI revolution. I should prove to myself that customers are willing to buy my book before investing more time into it. I’m probably the last person on the planet to discover that RSS is a great way to read blogs. Goal grades At the start of each month, I declare what I’d like to accomplish. Here’s how I did against those…

Install NixOS on a Free Oracle Cloud VM

Oracle is not a very popular cloud hosting service, but they have an unusually attractive free tier offering . You can run the following two VMs for free 24/7: 2 CPU / 12 GB RAM Ampere A1 ARM VM 1 CPU / 1 GB RAM AMD CPU Update (2026-07-04) : When I originally wrote this in 2025, Oracle offered 4 ARM CPUs with 24 GB of RAM. They have since reduced this by half, so it’s not as exciting a deal.…

My Seventh Year as a Bootstrapped Founder

Seven years ago, I quit my job as a developer at Google to create my own bootstrapped software company. Every year, I post an update about how that’s going and what my life is like as an indie founder. I sold my company My most significant professional development of the last year is that I sold TinyPilot , the company I founded in 2020. My wife and I wanted to start a family, and I…

The Cline AI Assistant is Mesmerizing

I tried out the Cline AI assistant yesterday, and then I went into a trance for five hours where I couldn’t do anything but stare transfixed at Cline fixing bugs for me. As a professional developer, it was both enchanting and terrifying. It’s enchanting that AI has reached this level of proficiency. It’s terrifying for the same reason, as I’m not sure what role I’ll…

How to Resolve Local Hostnames in OPNSense

My router runs OPNSense Business. I like having an open-source router, but I have a few gripes with it. My biggest issue is that, by default, OPNsense can’t resolve hostnames on my local network. Why can’t OPNsense resolve local hostnames? For every other router I’ve owned in my life, if there’s a computer on my network named foo123 and I run ping foo123 from my main…

Increase Your Reply Rate on Cold Emails to Me

The term “cold email” refers to emailing someone who you’ve never spoken to before. There are lots of guides on writing cold emails. This one is a bit niche, as it’s about cold emailing a particular person: me. But I guarantee you that it’s the best guide you can find on this hyperspecific topic. I’m publishing my guidelines under the Creative Commons BY-4.0…

Overcoming Gotchas in Samsung Secure Erase

I have a few Samsung SSDs, and I always have trouble remembering the process of secure erasing them, as Samsung Magician software is terrible. Here are my notes for overcoming Samsung Magician’s gotchas in the process of secure erasing a Samsung SSD. You need a Windows or MacOS system with a Samsung SSD attached This requirement drives me crazy, as Samsung Magician is creating a bootable USB…

Refactoring English: Month 1

Highlights I published the first chapter of my book and was happy with the reception. My attempt to hire a book cover designer flopped. I may have figured out how to support large files on PicoShare. Goal grades At the start of each month, I declare what I’d like to accomplish. Here’s how I did against those goals: Finish two chapters of Refactoring English Result : Finished one…