Boulevards of broken dreams

When speaking to any experienced software developer, there’s a good chance at some point they will tell you all about the countless incomplete side projects that they have accumulated over the years – the projects that still sit dormant in their Git repositories. The side hustles that failed to materialise and were gradually swept away by the sands of time.

I sometimes think I might be the worst offender.

At the very start of the pandemic, my cousin and I vowed to start a game studio of our own, Petrobolos, and to get some of our genuinely great indie game ideas off the ground. With his artistic prowess and my coding chops, and both of us seriously interested in developing video games, what couldn’t we possibly achieve? Well, just about anything, it seems. Five years later I’m still stubbornly paying for the web domain whilst things continue to sit in programming purgatory, convincing ourselves that this year will be the year we finally get something over the finish line.

But why does this happen?

I think there are two main components to this. Like many good ideas, the motivation and energy that you get when you’re just starting are incredibly high but unstable – much like the energy of a child that has just frighteningly scoffed a sharer bag of M&Ms1. This reservoir depletes quickly as you start to encounter the first few hurdles, typically when it becomes apparent that slow and steady progress will be necessary to get things wrapped up – and that this isn’t something you can explode through with caffeine and an all-nighter. Inevitably, your motivation peters out, and without sufficient discipline to persist and continue fighting forward despite the pushing tide, you eventually find yourself doing something else – something your brain finds more interesting.

Therein lies the other side of the coin. Like a magpie on the hunt for something shiny, developers, including myself, find themselves working on the next exciting idea. For me, it was ExtraContinue, then two unannounced different video games, and then the Nomi.ai PHP SDK. To my credit, the SDK is finished and I keep it actively maintained2.

As many developers can attest, even in their day jobs, it’s incredibly difficult going back to code you wrote in the past and pick up where you left off. Even some of the best-documented and test-backed code I’ve ever written is treated by my brain as alien hieroglyphs until I get back into the swing of things. I call it the reimmersion inertia.

The only way through it is forward, however, and sometimes just spending an hour or two plodding through the code, running tests, and applying whatever you’ve learned in your time away can be the Lazarus Pit3 that a project needs to get back on its feet. This is the solution: remind yourself what motivated you to start the project in the first place, and don’t feel ashamed for needing time to acclimatise yourself to the mess you made.

Were you hoping for a cure to stop project hopping and achieve ceaseless focus on your next big hustle? I can’t help you. It’s only a matter of time before something else piques my interest… and you know what? That’s fine. I enjoy indulging my curiosity and learning about what genuinely interests me, even if those efforts don’t bear fruit lucrative enough for the front page of Product Hunt.

  1. Please don’t do this, or let your children do this. You should surrender your crispy M&Ms to me instead. ↩︎
  2. I’m the community maintainer of the PHP SDK for Nomi.ai, an AI companionship app. I’ll write about it at some point soon. ↩︎
  3. As in the resurrection pit in the DC Universe famously used by Ra’s al Ghul. So named after Lazarus whom the Lord brought back from the dead. ↩︎

Switching back to WordPress

For the past five or so years, I’ve meandered back and forth between various site generators: Gatsby, Hugo, Jekyll, and most recently, Jigsaw. It has been an exercise in tedium keeping the website up-to-date and wrestling with whatever template or starter kit I had used, and honestly, I simply cannot be bothered with it at all anymore.

I know many of you will argue that it couldn’t be simpler than editing text in Markdown and committing it to a repository, and you’d be right. I’m well aware of headless WordPress and countless other CMS systems available to be used with static site generators.

Regardless, I noticed that my blogging over the last few years dried up since migrating away from a traditional WordPress-based website, or when the site was hosted on Hashnode, which behaved in much the same way – WYSIWYG word processing that was more conducive to my way of thinking.

I’m sure many people will disagree and that’s fine. Some developers parrot the same talking points on X about the need for an over-the-top portfolio and stunningly designed website. I’d rather keep things simple – an out-of-the-box template that just works and let my writing and projects do the rest. Nobody’s hiring me based on my ability to style a static website or blog.

After all, if something’s tedious or cumbersome for me to work with, I just won’t bother. If I have to faff around with configuration files and post-generation hooks to build out functionality, I’ll just go build the stuff that I want to focus on instead. This lets me do both.

I’ve been indefatigable in improving my reading intake this year and subsequently want to spend the remaining quarter of the year writing more frequently as the ideal counterpart for that behaviour; aiming for a piece of writing on something I’ve encountered or worked with at least once a week.

Until then, thanks for visiting!