The case for goofy side projects
It's important to make a distinction between a side project and a side hustle for this article to make sense. When I talk about side project in the following, I exclusively mean programming side projects.
Almost every programmer I know has some sort of side project going on1. If you ask a programmer what they are currently working on, there is a good chance they will tell you about their side project instead of their day job.2
I think there is two reasons for that. First, when you start out people tell you to build things that you can show around to land a job. People in the industry usually don't care about schools and degrees as much as about what you're capable of. And there is no easier way to find out than looking at a project someone did. Second, programmers tend to like programming for the sake of it. A lot of programmers don't want to stop after work or on the weekends, so they start side projects.
So you start out in your career and you go build a side project. Then you open twitter and discover other people and their side projects and one of them is making $10k a month. You decided to check out their friends on twitter and they also all have side projects that pay a lot of money. So you think: This is it. I need to have a side project that generates money and has a lot of users. One that has a purpose. And suddenly, all side projects you do become a job.
I had a few side projects like this. I started them with the intention of having a bunch of users and charge them money (spoiler: none of them ever got any users, nor did they generate any money). I was motivated in the beginning, but over time more and more anxiety crept in until it slowly became something I felt i had to do instead of something I wanted to do. I basically was under constant stress while working on them.
It was time to take a step back and ask myself what I really wanted to get out of a side project:
- Making some money on the side sounds nice, but everything comes with a cost. Generating revenue means having users. And having users means having to address other peoples needs in addition to my own. Needs of people that paid for something. It likely means doing support and fixing bugs even if I don't feel like it. It basically becomes a job, and I already have one of those that I love 3.
- Learn something new: Usually I start a side project because I want to learn. It could be a technology that is not in our tech stack at work or something I'll need in my job in the future and that I want to hit the ground running with. It could also just be pure curiosity: I wonder how X or Y works and try to find out by building it myself.
- Freedom: It's nice to just hack away, like when I first started programming. No worrying about maintainability or tests or clean code. Just mess around and see where it's going.
- Relaxation: My wife doesn't really get this, for her it's doing the same thing I do at work, after work. But it really isn't. Just coding for fun, listening to music or having a video play in the background is deeply relaxing to me.
So here I am, making the case for starting goofy side projects. Projects that have no product market fit. Projects that will not get finished. Projects that will have a $0 MRR for ever. Projects that will likely never be used by anybody. Projects you do just for fun. It's okay to have those. Capitalism has us thinking that we need to be productive, that we need to make money off of everything we do, or else it's wasted time. I'm here to make the case for wasting time.
The next time you want to do a project but catch yourself thinking about how that already exists or how nobody will pay for this, accept that. It's fine. Do it anyways.
I also have the theory that a good chunk of successful side projects start out just like that: As fun things where someone started to think "I wonder what happens if I just try..." and then just start building.
Footnotes
-
Which does not meant it's a necessity. I know great programmers that do nothing on the side. ↩
-
I think that's because a side project is something that is 100% directed by you. You usually choose your day job based on interest, but what exactly you're working on is not your decision alone. ↩
-
We're hiring, btw: https://join.gigs.com/ ↩