Building My First Homelab Server Rack

Seven years ago, I built my first home server. It made my software development work faster and more enjoyable, so I’ve gotten more into the home server scene. I built a custom storage server, another development server, and a dedicated firewall. At some point, my wife gently obse … | Continue reading


@mtlynch.io | 27 days ago

Why does a extraneous build step make my Zig app 10x faster?

For the past few months, I’ve been curious about two technologies: the Zig programming language and Ethereum cryptocurrency. To learn more about both, I’ve been using Zig to write a bytecode interpreter for the Ethereum Virtual Machine. Zig is a great language for performance opt … | Continue reading


@mtlynch.io | 1 month ago

My Sixth Year as a Bootstrapped Founder

Six years ago, I quit my job as a developer at Google to create my own bootstrapped software company. For the first few years, all of my businesses flopped. The best of them earned a few hundred dollars per month in revenue, but none were profitable. Halfway through my third year … | Continue reading


@mtlynch.io | 2 months ago

Aardvark'd: The Fog Creek Documentary, 18 Years Later

In 2005, Joel Spolsky’s software company, Fog Creek, filmed a documentary about their summer internship program. The film is called Aardvark’d: 12 Weeks with Geeks, and it follows four college interns as they design, implement, and launch a completely new software product. That’s … | Continue reading


@mtlynch.io | 7 months ago

Installing NixOS on Raspberry Pi 4

Nix is a tool that allows you to define your software environment from code. Nix has several components to it, and one of the most interesting to me is NixOS, which lets you use Nix tooling to define your entire OS configuration using plaintext files. I only recently started expe … | Continue reading


@mtlynch.io | 9 months ago

Deploying Syncthing on a Fly.io Cloud Server

I recently discovered Syncthing, an open-source tool for syncing files across multiple machines. Setting up Syncthing on my personal devices was easy, but I went on an interesting journey deploying it to a cloud server. Why run Syncthing in the cloud? Syncthing synchronizes files … | Continue reading


@mtlynch.io | 11 months ago

My Fifth Year as a Bootstrapped Founder

Five years ago, I quit my job as a developer at Google to create my own bootstrapped software company. For the first few years, all of my businesses flopped. None of them earned more than a few hundred dollars per month in revenue, and they all had negative profits. Halfway throu … | Continue reading


@mtlynch.io | 1 year ago

On Migrating from Cypress to Playwright

Cypress is an open-source tool for testing web applications end-to-end. I first saw Gleb Bahmutov demo Cypress at a 2018 web dev meetup in New York, and I was blown away.I’ve been using Cypress since I saw it demoed at a dev meetup in 2018.Before discovering Cypress, I … | Continue reading


@mtlynch.io | 1 year ago

Fixing Memory Exhaustion Bugs in My Golang Web App

Using profiling tools and debugging techniques to improve performance of PicoShare. | Continue reading


@mtlynch.io | 1 year ago

Back Up Encrypted ZFS Data without Unlocking It

I recently built my first home TrueNAS server. I use it to store the bulk of my personal and work data, so I’ve been learning how to make the most of TrueNAS and its filesystem, ZFS. Today, I want to tell you about backing up encrypted data. My homelab TrueNAS server One of the n … | Continue reading


@mtlynch.io | 1 year ago

Tinypilot Month 23 – Oh Boy, the Redesign

The eight-month redesign is finally complete! | Continue reading


@mtlynch.io | 1 year ago

Building My First Home Storage Server with 22 TB of Capacity

How I chose parts, built, and configured my first custom home storage server. | Continue reading


@mtlynch.io | 1 year ago

My Fourth Year as a Bootstrapped Founder

Four years ago, I quit my job as a developer at Google to create my own self-funded software company. For the first few years, all of my businesses flopped. They all operated at a loss, and none of them earned more than a few hundred dollars per month in revenue. Halfway through … | Continue reading


@mtlynch.io | 2 years ago

I Stole Your Siacoin (2017)

A lesson in Sia wallet seed safety | Continue reading


@mtlynch.io | 2 years ago

TinyPilot: Month 11

How do I increase TinyPilot's profit margins? | Continue reading


@mtlynch.io | 2 years ago

How Litestream Eliminated My Database Server for $0.03/month

Here’s a riddle. My web app keeps all of its data in a SQL database. I can spontaneously tear it down, deploy the code to a different hosting platform, and the app will still serve all the same data. Running my app in production costs $0.03 per month. How is this possible? That’s … | Continue reading


@mtlynch.io | 3 years ago

Guidelines for Freelance Developers Working with Me

I provide this document when advertising dev jobs, and I pay freelancers to read it when they begin working with me. | Continue reading


@mtlynch.io | 3 years ago

TinyPilot: Month 8

My growth streak had to end somewhere. | Continue reading


@mtlynch.io | 3 years ago

My Third Year as a Solo Developer

Today is the third anniversary of me quitting my job at Google to build my own software business. I posted updates at the end of my first and second years, so it's time for another update. | Continue reading


@mtlynch.io | 3 years ago

An Unexpected Reset Month

I'm safe and healthy, but my businesses have taken a tumble. | Continue reading


@mtlynch.io | 3 years ago

Effective Practices for Working with a Code Reviewer

Best practices for code review when you're the author. | Continue reading


@mtlynch.io | 3 years ago

My Eight-Year Quest to Digitize 45 Videotapes

My journey to create a YouTube of memories from my family's old home videos. | Continue reading


@mtlynch.io | 3 years ago

Building a Homelab VM Server

I built a home server to host my development VMs and went a bit overboard. | Continue reading


@mtlynch.io | 3 years ago

I Collected a Debt from an Unscrupulous Merchant

Within two emails, a merchant went from blatant dismissal to full payment, and I owe it to The Organized Professional Method. | Continue reading


@mtlynch.io | 3 years ago

Show HN: TinyPilot – Build a KVM over IP for Under $100 Using a Raspberry Pi

Using only a Raspberry Pi and an $11 video capture dongle, you can create your own KVM over IP device, allowing you to send keyboard input to a remote computer and capture its display. | Continue reading


@mtlynch.io | 3 years ago

Show HN: KeyMimePi – Turn a Raspberry Pi into a remote keyboard

Using the Pi as a USB gadget, I can impersonate a keyboard and make it type whatever I want through the web browser. | Continue reading


@mtlynch.io | 3 years ago

My Eight-Year Quest to Digitize 45 Videotapes

My journey to create a YouTube of memories from my family's old home videos. | Continue reading


@mtlynch.io | 3 years ago

My Eight-Year Quest to Digitize 45 Videotapes (Part Two)

In part one, I described my arduous journey to capture my old home movies in digital format and divide them into individual scenes. After processing all the clips, I wanted the experience of exploring them to be as simple as looking up clips on YouTube. Because these videos are m … | Continue reading


@mtlynch.io | 3 years ago

Stripe Responded to My Concerns about User Tracking

Stripe has made several significant, positive changes to its user tracking and privacy policies in the last week. | Continue reading


@mtlynch.io | 4 years ago

Stripe Is Silently Recording Your Movements on Its Customers' Websites

An investigation into how Stripe tracks your users and what you can do to prevent it | Continue reading


@mtlynch.io | 4 years ago

My Second Year as a Solo Developer

Two years ago, I quit my developer job at Google to build my own software business. A year later, I posted an update about my finances, happiness, and lessons learned. Today marks the end of my second full year, so it's time for another update. | Continue reading


@mtlynch.io | 4 years ago

Pursuing a Business I'll Love

Two of my businesses had record-setting months, and I'm finally building the app I've always wanted. | Continue reading


@mtlynch.io | 4 years ago

I Quit Google to Work for Myself (2018)

For the past four years, I’ve worked as a software developer at Google. On February 1st, I quit. It was because they refused to buy me a Christmas present. | Continue reading


@mtlynch.io | 4 years ago

A Simple Pre-Rendered Web App Using Vue + Nuxt

In this post, I’ll show you how to pre-render pages using Vue and Nuxt. This method combines the convenient development experience of Vue without forfeiting critical features like social sharing or search engine optimization. This tutorial assumes no experience with Vue or Nuxt. … | Continue reading


@mtlynch.io | 4 years ago

Eliminating Distractions from Social Media, Email, and StackOverflow

Simple techniques for managing your apps instead of allowing them to manage you. | Continue reading


@mtlynch.io | 4 years ago

Hiring Content Writers: A Guide for Small Businesses

A complete walkthrough of how I find freelance writers, screen them, and train them to work with me. | Continue reading


@mtlynch.io | 4 years ago

The Dumbest Task I Ever Outsourced

I derive immense satisfaction from outsourcing my chores, even when it causes me to pay $96 to clean a $39 keyboard. | Continue reading


@mtlynch.io | 4 years ago

Staying Motivated by Sending Status Updates to Nobody

Writing short entries in a plain textbox bolstered my motivation and miraculously made status meetings interesting. | Continue reading


@mtlynch.io | 4 years ago

How to Grow Quickly and Never Turn a Profit: A Postmortem

A eulogy for my failed online business. | Continue reading


@mtlynch.io | 4 years ago

End-to-End Testing Web Apps: The Painless Way

Create an end-to-end test for your web app in under 30 minutes (no software installation required). | Continue reading


@mtlynch.io | 5 years ago

How to do code reviews like a human

Lately, I’ve been reading articles about best practices for code reviews. I notice that these articles focus on finding bugs to the exclusion of almost every… | Continue reading


@mtlynch.io | 5 years ago

My First Year as a Solo Developer

Exactly one year ago, I quit my job at Google, so it’s time to reflect on how the decision has affected my finances, lifestyle, and happiness. | Continue reading


@mtlynch.io | 5 years ago

What I Learned About Upwork from a Bumbling Scammer

How I solved the mystery of the worst scammer I’ve ever encountered. | Continue reading


@mtlynch.io | 5 years ago

Retrofitting Apps for Cloud Storage with Zero Code Changes

An exercise in integrating Docker, Google Cloud Storage, and the gcsfuse utility. | Continue reading


@mtlynch.io | 5 years ago

Why Good Developers Write Bad Unit Tests

The standard techniques of good development can lead you astray if you don’t adjust them for unit tests. | Continue reading


@mtlynch.io | 5 years ago

How I Tricked Myself into Shipping Too Late

I’ve heard dozens of stories of founders failing because they shipped too late. It seemed like an easy fate to avoid until I made the same mistake. | Continue reading


@mtlynch.io | 5 years ago

Resurrecting a Dead Library: Rehabilitation

How I used safe techniques to refactor a legacy codebase and minimize the risk of regressions | Continue reading


@mtlynch.io | 5 years ago

Why a Freelance Editor Was a Gamechanger for My Blog

Investing in lifelong writing skills paid dividends immediately. | Continue reading


@mtlynch.io | 5 years ago