Personal projects are my bane

Morning. Just like any other weekday, you delve into your usual routine, getting ready to head to the office.

But today’s different.

Today, while in the shower, you were thinking about that new front-end framework someone mentioned in the slack channel yesterday, and it hits you. An idea, a brilliant idea (at least, that’s how your brain sells it to you). You can already see the finished product in your mind’s eye, a beautiful, functional, well-animated piece of work.

Five minutes later, you’re still in the shower mapping out all the different tools and frameworks and design principles and coding languages.

Ten minutes later, you’re imagining yourself starting your own company after your app becomes wildly successful.

Fifteen minutes later, you’re still in the shower, thinking about how much of your fortune to leave to your third great-grandchild. And that’s when reality rudely butts into your sublime fantasy, and you chuckle at yourself for thinking something like that would ever happen.

Still, the idea sticks.

Throughout your day at the office, the idea continues to whisper sweet nothings at you from that little nook in the back of your head. During your lunch break, you share your thoughts with a coworker who nonchalantly nods his head. Unfazed, you continue on with your work, while gears continue to turn in your brain’s back room, slowly developing the sapling of an idea into a realized concept.

That evening, you excitedly rush home, mouth foaming at the thought of finally beginning work on your million-dollar idea.

It’s 8:00 PM. As you lay out the plan your mind tried to subconsciously construct throughout the day, you begin working on setting up the environment on your home computer. You order pizza. You battle for a while between using a generator vs setting it up yourself, eventually going with the generator because ain’t nobody got time for boilerplate.

8:30. Your pizza arrives. You’re still setting things up. You finally got the generator working after toying around with the config for way longer than you’d expected, but now there’s some weird dependency issue. Fifteen minutes later, you realize that your environment was outdated and causing all sorts of problems.

9:00. After way too much time spent on setup you can finally start on your app… wait, no you can’t, because you have no plan. Brilliant ideas rarely come with a goddamn plan in the box. You consider yourself a formidable software engineer, and so you decide to approach this personal project the same way you would a work project. Careful planning, well-thought out code. You start brainstorming on how you want to build the app from a high level. Your pizza is half-finished.

1:00 AM. It’s suddenly four hours later, but you have a prototype… sort of. Your code is a clusterfuck of logic; it all works fine, but in serious need of refactoring. “Silly me for thinking this could actually be up to par with professional software”, you mumble to yourself. Nevertheless, you take some to time to clean up your code. A single slice of pizza remains.

3:00 AM. You’ve been tinkering with css for like, a million years, trying to get that one div positioned just right. Oh, wait what, it’s 3 AM? Shit…

10:30 AM. You wake up, asleep at your desk instead of your bed that was two feet away. You scramble your way back to the office to make it in time for standup, tired, but happy that you built something that works. During lunch break, you show your friend the prototype, who feigns nonchalance but secretly, you can tell that he’s actually pretty impressed by it. This carries you through the rest of the day, and you’re looking forward to continuing working on it that evening.

8:00 PM. You rush home, but this time, your mouth isn’t foaming. You look through your code and start working at it. A little feature here, a little button color there, nothing too big. You have a working prototype, but somehow, you’re not brimming with excitement. The rush that was there the first day is gone.

Weeks pass by; you work on your project less and less until one day, you stop entirely. It’s not that the code has become difficult to maintain; it’s not even that your idea wasn’t as great as you once thought it was. You just… lose interest. And then, one morning, while in the shower, you have yet another revelation. Another brilliant idea that’s going to fund your great-grandchildren’s secondary education. This time, for sure, you’ll see it through…

This is a battle that I have been fighting for years now. I’ve been coding since 2009, and I have yet to actually finish a personal project. The above story, while a bit satirical in tone, is a pretty accurate representation of my life. My passion is a mistress of diminishing returns, never sticking around long enough for me to see something to completion.

There is one silver lining here, though. Sure, I might have scrapped dozens of projects over the years, but I’ve learned something from every single one of them. Whether it was a new framework or a new design philosophy or even a new programming language, knowledge was obtained even if the project itself didn’t see fruition. In today’s ever evolving tech scene (especially front-end), tech stacks come and go faster than fashion trends and memes, so a constant input stream of new knowledge is more or less required to stay relevant in the industry.

So, maybe someday, I’ll finish one of my side projects. Maybe I won’t. What matters is that I’ll know more about something than I did before.

And that’s totally fine with me.