Using Nix to Fuzz Test a PDF Parser (Part Two)
More from Posts on mtlynch.io
There’s an excellent Go testing pattern that too few people know. I can teach it to you in 30 seconds. Instead of writing Go tests like this: // The common, unrefined way. username := GetUser() if username != "dummyUser" { t.Errorf("unexpected username: got %s, want: %s", username, "dummyUser") } Write your tests like this, beginning each...
In April of this year, I sold TinyPilot, the bootstrapped hardware company I founded and ran for four years. I wrote a post in May that told the story of the sale, but I’d like to share more about the practical lessons I learned from the experience. In this post, I’m sharing what went well, what I want to improve in the future, and what surprised...
Fuzz testing is a technique for automatically uncovering bugs in software. The problem is that it’s a pain to set up. Read any fuzz testing tutorial, and the first task is an hour of building tools from source and chasing down dependencies upon dependencies. I recently found that Nix eliminates a lot of the gruntwork from fuzz testing. I created...
My first two years as a bootstrapped founder went poorly. I could barely find any paying customers, and all of my businesses lost money. I began questioning my decision to quit my cushy Google job. In mid-2020, yet another of my businesses had flopped, and it was only kind of COVID’s fault. Desperate for a distraction, I made a little contraption...
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 observed that my office was filling with unsightly wires. “What?” I...