Making niche solutions is the point

Monday, January 26, 2026

I got a 3D printer recently, and got to work using it. When I shared one of the first things I made in a private Discord, someone commented that "This is the most niche thing I've ever seen someone design/print." That, my friend, is the point: that we can make exactly what we need. And that's true for making software just as much as it is for 3D printing.

Upon getting a 3D printer[1], you often start by printing a little boat that's used a benchmark to see if the printer is working right. And after that, you might print out some tools and accessories that are helpful for using your printer: a little scraper to get prints off the bed, a bin to collect waste filament. And then after that... what?

After that you get to choose your own adventure. You can either print things that someone else designed, or you can design something yourself (including modifying someone else's model). I do think it's really cool that we can print things other people designed, and there are so many designs out there that are amazing. The whole Gridfinity organization system is an example of this: you get a modular system that you can use to organize things, and you print just what you need, when you need it.

The thing is, most of the time, that ends up being not much different than ordering an item. You save on shipping costs, and you can usually get it you want much more quickly than if you ordered it. But... it feels in a lot of ways just like it's very fast shipping. You browse a website, click a button, and then a few hours or days later, an plastic widget is in your hands. Convince me that this isn't equivalent to incredibly good shipping. (It does make it sustainable to share extremely niche things that you could not otherwise handle the logistics for. So: extremely good shipping.)

For me, that's a side benefit. If I could only print things that I've designed myself, I'd be happy with my 3D printer still (though, likely, less happy). The main show is being able to get a niche solution that's been tailored to my exact use case. To get a solution that no one else has thought of, because no one else has that exact problem. This is all the same for software. We'll circle back to the software side of things, because this runs into things I see my consulting clients deal with regularly, but let's dive deeper from the 3D printing perspective first.

My first very niche design

The first thing I printed, after the obligatory hello-world Benchy, was to help me with a daily medical procedure. I won't go into details on it here, but part of the recovery from a surgery I had requires me to do physical therapy. A lot of physical therapy. It takes a couple of hours a day, and it involves some equipment.

This is, well, a lot to handle when you're recovering from surgery. Heck, it's a lot to handle even once you're past the initial more intense recovery phase! And if you throw travel into the mix, then it just gets really hard to keep all your supplies organized and tidy and accessible while you're doing your PT.

Enter: designing the most niche thing my friend has ever seen someone design/print.

I made a little station to hold my supplies. It was a simple CAD model, just a rectangular prism with some cutouts. But then, I wanted to add roundovers. And I also wanted to add some ridges around the top of each cutout. And I played around with the arrangement of my supplies until I got something pretty compact, but workable. I sent it off to the printer, and...

A couple of hours later, I had an object I'd designed earlier that day! Less than one day end-to-end to go from opening my CAD program to having a finished object in my hands.

After that, I designed my ergonomic setup. That's pretty niche. But that's not the point now. My point is that this isn't specific to 3D printing.

We can do this with software, too

As software engineers, we're in a really unique position. We're working with a very malleable medium, and we can make it into anything we need. This is the magic of being a maker, sure: as a woodworker, I also make a lot of jigs, and have made a variety of niche solutions for around my house. But it goes further with software engineering.

The magic of being a software engineer is that in writing software, we are able to also make all the tools we use to do that. This is a very unusual arrangement; most professions aren't in the practice of using the things that they make, to make the things they use. But in software, it's so common that we even have a term for it (the not-very-appetizing "dogfooding"; can we change that?).

Outside of the hardware (which is, admittedly, a gigantic caveat), we are responsible for our tools. Browsers, servers, text editors, terminals, operating systems, even down to drivers and firmware. It's turtles software all the way down. And that means that we can make it what we need.

If you're anything like me, you carry around a pile of configuration files and scripts that you use to configure and setup any of your dev environments. And you use code to deploy your other code for people to use. And you probably have custom software that you use daily. I do: we have a web app that I deployed 6 years ago, which takes minimal maintenance, which my family uses regularly. That software was so niche in the requirements, but now it exists and we can use it! If I'd paid for something else, it would have cost quite a bit of money and been a poor fit; and if I'd used something open-source, it would've been a lot more maintenance and also still an imperfect fit.

Instead, I got the joy of making something which fit our needs precisely.

Sometimes, this is a trap

Of course, sometimes you should just get the model, download it, and print it. Or download someone else's code and run it. Designing and making something yourself takes time, and it is in very many ways a privilege to be able to take that time to solve a problem this way. Many people don't have that time, and using someone else's solution is amazing.

It's just the same as with software engineering, where you always do have to make a tradeoff decision of build or buy. It's going to vary, depending on what you are optimizing for and what's important to you.

But... the magic is that we can do this. That we have this choice at all. Making niche things? Oh, that's the whole point.


  1. I like to think that all printers are 3D, unless it's a printer in Flatland.


If you're looking for help on a software project, please consider working with me!


Please share this post, and subscribe to the newsletter or RSS feed. You can email my personal email with any comments or questions.

Want to become a better programmer? Join the Recurse Center!
Want to hire great programmers? Hire via Recurse Center!