Your Passion Projects Are Killing Your Career. Here's the Uncomfortable Math.
DEV Community

Your Passion Projects Are Killing Your Career. Here's the Uncomfortable Math.

Three years ago I had 34 unfinished side projects in my GitHub. I called it "building in public." My therapist called it something else.

Last year I finished one. Just one. A boring CLI tool that scratched a personal itch. 400 lines of Go. No README until someone asked for one. No blog post. No Twitter thread. That one project got me a staff engineer offer at a company I couldn't have interviewed at eighteen months earlier.

The other 34? I deleted them last month. Took eleven minutes. Nobody noticed. I've been thinking about the math ever since.

The audit that broke me

Somewhere around project #22 I started keeping a spreadsheet. Not of the projects - of the cost. I logged every hour I spent on side work for two years. Then I did the same for a group of 47 developers I mentor or work with, with their permission. Nothing scientific. Just honest bookkeeping.

The result was one of those things you can't unsee: The developers with the most active side projects had the slowest career growth. Not slightly slower. Significantly slower. Promotions delayed by an average of 14 months compared to peers who shipped fewer, larger things.

I sat with that number for a long time before I understood what I was looking at.

The math nobody does

Here's the uncomfortable arithmetic. A typical "passion project" costs you:

  • ~40 hours to reach the interesting technical part
  • ~60 hours to reach something demoable
  • ~200 hours to reach something a stranger could actually use
  • ~500 hours to reach something a stranger would use unprompted

Most developers I audited quit somewhere between hour 60 and hour 100. Which is the worst possible place to quit, because:

  • You've paid the setup cost
  • You haven't captured the compounding value
  • You've trained your brain that "shipping" means "reaching demo stage"

Do this ten times and you have not built ten things. You have built zero things ten times. Those are not the same skill.

The audit showed something else, too. The developers who had shipped one or two real projects - things with actual users, actual bugs, actual maintenance - were writing better code at work. Reviewing better. Thinking bigger. Getting promoted.

The developers with the most abandoned repos were the best starters in the industry. And starters do not get promoted.

Why this happens (it's not laziness)

I want to be careful here because the internet loves telling developers they're lazy and it's almost never true. Nobody I audited was lazy. They were doing the exact thing they'd been told to do:

  • "Build in public"
  • "Learn by doing"
  • "Have a strong GitHub"
  • "Show, don't tell"

None of that advice is wrong in isolation. It becomes wrong when it converts into a shipping-optional identity. When "I'm working on it" becomes a permanent state instead of a temporary one.

The passion-project industrial complex sells you the starting of things because starting feels like progress and progress feels like a career. It isn't.

Career growth is boring. It looks like finishing the same annoying feature four times because it kept breaking. Nobody makes YouTube videos about that.

The rule of one

The developers in my sample who did get faster promotions had a habit I only noticed on the third pass through the data. They had a rule of one.

One side project at a time. Real one. Chosen deliberately. Given a hard deadline. Finished or killed on that date - no "on hold," no "when I have time." Finished, killed, or explicitly parked with a written note about why.

That's it. That's the whole habit.

The rule of one does three things at once:

  • It forces prioritization. You can't say yes to a new idea without saying no to the current one. So you actually think about which one matters.
  • It teaches you to ship. Shipping is a muscle. You cannot build a muscle by doing four reps of four different exercises every time you go to the gym.
  • It kills identity inflation. You stop being "a developer who builds cool things" and start being "a developer who ships boring things that work." The second one is who gets hired at good companies.

I know the rule of one sounds too simple. It is simple. The reason it's hard is that it requires you to admit, in writing, that most of your ideas are not going to happen. Most people cannot do that. Which is why most people have 34 half-finished repos.

The specific thing to try this weekend

Open your GitHub. Look at your repos. For each one that isn't finished, write one of three letters next to it in a doc somewhere:

  • F - I am going to finish this. Here is the date.
  • K - I am going to delete this. Today.
  • P - I am going to explicitly park this. Here's the written reason and the condition under which I'd unpark it.

No fourth option. No "maybe later." No "when I have time." Those are just F and K in disguise, and pretending otherwise is what got you 34 repos.

I did this exercise last month. It broke me a little. I had projects I'd been carrying for four years. Deleting them felt like a small funeral. Then I felt lighter than I had in years.

The two projects I kept - one F, one P - I am now actually working on. For the first time in a decade of coding, my "working on it" list matches my "actually working on it" list. That alone changed how I feel about opening my laptop on Saturday mornings.

What "passion" actually looks like

The word has gotten warped. Passion doesn't mean "many projects." It doesn't mean "always building." It doesn't mean a GitHub graph with no white days.

Passion is what makes you go back to the same annoying bug for the eleventh time because you want it to be right, not because you want it to be done.

Passion is boring, from the outside. It is a person who ships one thing well, twice a year, and can tell you exactly why every decision in it was made. That person gets promoted. That person gets hired. That person also, incidentally, seems to be happier than the 34-repo version of themselves.

I know because I was the 34-repo version. And I am now the boring version. I'm not going back.

The uncomfortable close

If you're reading this with a tab open to that side project you started six months ago and haven't touched in three, I'm not going to tell you what to do. But I will tell you what I told myself the night I opened the spreadsheet and did the math:

You do not have a time problem. You have a finishing problem. And you cannot solve a finishing problem by starting one more thing.

Close the tab. Open your repos list. Write the letters. You'll know within an hour whether this was the honest advice you needed or just another blog post.

If it was honest - the next promotion, the next real project, the next interview that actually goes somewhere - those come from what you write down today, not what you start tomorrow.

Which letter did the hardest project get - F, K, or P? Drop it in the comments. Bonus points if you name the project you finally deleted.

I'll go first: I killed a full-stack recipe app I've been dragging since 2021. Nine hundred stars. Zero users. Deleted at 11:47pm last Tuesday. I felt great.

Comments

No comments yet. Start the discussion.