It Was Never About the Title

It took me years to understand why building free side projects felt more rewarding than paid work. This is what I learned.

July 19, 2026
5 min read

For years, something didn't make sense to me.

I could spend an entire week working on production software, get paid for it, and feel satisfied that I had done my job well.

Then I would spend an entire weekend building some random side project that nobody asked for, publish it for free, wake up to find a few people actually using it, and somehow feel happier than I did all week.

It never really made sense to me.

I assumed I just hadn't found the right company. Or the right project. Or maybe I simply wasn't experienced enough yet.

It took me a long time to realize the problem wasn't software engineering itself.

It was what motivated me.


I started programming near the end of 2018.

Like many people, I learned by copying code I barely understood. Stack Overflow was open more often than my editor. Nobody explained how databases worked, how software should be structured, or what "good architecture" even meant.

I just built things. Most of them were terrible. Some of them worked. Every mistake taught me something.

Without realizing it, I also started publishing things as open source around the beginning of 2019. At the time, I wasn't thinking about maintainers, communities, or downloads.

I just liked making things and sharing them.

Most of what I built wasn't designed for anyone else. I was solving a problem I had or chasing something I was curious about. Publishing it was almost an afterthought.

Sometimes those projects stayed personal. Sometimes they unexpectedly became useful to other people.

As I became more experienced, I started working on client projects too.

Those projects taught me a lot. I learned how teams collaborate, how larger systems evolve over time, and why software in the real world often looks very different from software built for fun.

I'm genuinely grateful for that experience.

But there was always a feeling I couldn't quite explain.

Even when I cared deeply about the quality of the work, I rarely felt connected to the project itself. Not because the projects were bad, and not because the people were bad. Simply because they weren't mine.

The problems had already been defined. The roadmap already existed. Most of the important decisions had already been made.

My job was to help bring someone else's vision to life.

There's absolutely nothing wrong with that. In fact, that's how most successful software gets built.

I just realized it wasn't what kept me curious.

What kept me curious were the decisions.

  • Should this API exist at all?
  • Can this abstraction disappear completely?
  • Is this the simplest interface I can give another developer?
  • Would I still be happy maintaining this two years from now?

Those are the questions that make hours disappear without me noticing.

For a while, I assumed the goal was to keep climbing the career ladder: become a senior engineer, maybe staff one day, move to bigger companies, earn more money.

The funny thing is, none of those goals ever motivated me as much as solving a problem that interested me.

Over the years, my open source projects have accumulated millions of all-time downloads on npm.

I'm proud of that, but those numbers aren't what I think about.

What stays with me are the moments when I discover people building things I never expected. An AI tool using one library. An image editor using another. A developer solving a problem I didn't even know existed with something I happened to publish.

Most of those people have no idea who I am. I don't know who they are either.

Yet somehow our paths crossed through a few thousand lines of code.

That's still one of the most rewarding parts of programming for me.

This isn't a post about open source being better than corporate work. It isn't. Businesses need software. Client work matters. Great engineers build incredible products inside companies every day.

I just learned that I'm happiest when I get to explore my own ideas. When I get to decide what to build. When I get to obsess over API names for an hour because they don't quite feel right. When I get to redesign something simply because I think another developer will smile when they use it.

I still build most things this way. I find a problem I have, or a question I want answered, and I build my way into the answer.

Whether anyone else uses it has never been the reason I start. Somehow, it often becomes the reason I keep going.

Looking back, I don't think I was ever chasing titles. I wasn't trying to become a senior engineer or an architect.

I was chasing the same thing that got me into programming in the first place.

Curiosity.

It just took me a few years to recognize it.