Reading List

The most recent articles from a list of feeds I subscribe to.

TinyPilot: Month 39

New here?

Hi, I’m Michael. I’m a software developer and the founder of TinyPilot, an independent computer hardware company. I started the company in 2020, and it now earns $80-100k/month in revenue and employs six other people.

Every month, I publish a retrospective like this one to share how things are going with my business and my professional life overall.

Highlights

  • I’m trying to work around manufacturer delays.
  • I’ve decided to hang onto TinyPilot’s office for two more months.
  • I’m planning my escape from a miserable seller experience on RapidAPI.

Goal grades

At the start of each month, I declare what I’d like to accomplish. Here’s how I did against those goals:

Per-Project Development Environments with Nix

Nix is a broad product with a steep learning curve. It’s capable of everything from installing a single package to managing every file and application on your OS.

One useful thing you can do with Nix, even as a complete beginner, is manage your dev environments.

Nix lets me have multiple projects on the same system that each have their own independent view of what dependencies are available. I can have one legacy project running Python 2.7 and Node.js 4.x alongside a modern project running Python 3.11 and Node.js 20, and they won’t interfere with each other.

Running NixOS on Proxmox

Compatibility: These instructions work as of Proxmox 8.x and NixOS 24.05.

One of the stumbling blocks I ran into when trying out NixOS was that I couldn’t run it under Proxmox, my preferred virtual machine server.

Through some trial and error, I figured out how to install NixOS as a Proxmox container.

Download the NixOS container image

First, download the latest NixOS x86_x64 lxdContainerImage image. For other hardware architectures, see this GitHub comment.

TinyPilot: Month 38

New here?

Hi, I’m Michael. I’m a software developer and the founder of TinyPilot, an independent computer hardware company. I started the company in 2020, and it now earns $60-80k/month in revenue and employs seven other people.

Every month, I publish a retrospective like this one to share how things are going with my business and my professional life overall.

Highlights

  • I failed to sell recurring TinyPilot license subscriptions.
  • I realized I made TinyPilot way too configurable.
  • I thought I’d been investing poorly into TinyPilot’s development, but writing this retrospective made me realize I’m mostly on track.

Goal grades

At the start of each month, I declare what I’d like to accomplish. Here’s how I did against those goals:

Import from a URL in Nix

I’m still a Nix beginner, and one thing I couldn’t figure out until recently was how to keep parts of my configuration.nix file under source control.

My goal

I’d like for my Nix configuration files to be modular and reusable, so depending on the system or flake, I can pull in only the configuration files I need. I’d like all my Nix configuration files to be under source control so that different systems can depend on different versions of any file so I don’t have to upgrade every system to the latest version of each configuration file at the same time.