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. ↩︎

Software engineering and returning to my roots

My decision to take up a programming job – returning to software engineering – and start climbing the more typical career path for a computer science graduate has been met with an understandable amount of scepticism and confusion from friends and acquaintances who know me.

I was always vocal about my desire to pursue education and academia; from my extensive volunteer and activist acumen developed throughout my time as a student to my eventual enrolment and the recent completion of a PGCE teaching qualification and acceptance onto a PhD programme within the past year. With all that in mind, why the sudden change of heart? How on Earth was I satisfied with a junior position?

Life as an unpaid trainee teacher

It’s complex. From September to December of last year, I was still teaching at Arden. At my own expense. Despite needing to work an extra semester in the wake of nationwide school closures caused by COVID-19, there was no additional government or university financing available to me which placed me under serious financial hardship. Given the hours I was at my placement, it was also impractical to find part-time work. Despite the placement itself being fulfilling and my colleagues being unbelievably fun to work with, I can’t stress how difficult this period was.

Nevertheless, I managed to drag myself through it and hey, I’m a qualified teacher now. Neat!

All the while, I was planning my next steps. I secured a PhD position at the University of Portsmouth, but I wouldn’t be able to start that until at least September because it was self-funded and I needed a chance to put together some cash. Furthermore, computer science teaching positions, especially those in Further and Higher Education were scarce. I knew that I had to rethink my options and that I had to start looking for jobs in the field that I am good at – software engineering.

I was approached by a developer friend about interviewing to join their company in January as a PHP developer – my programming language and ecosystem of choice – and I was immediately interested. Though it would be remote, they have an office in my hometown. The salary and perks are good. There’s plenty of room for learning and progression, and most importantly from my perspective, there’s a warm and close-knit culture that values you. The caveat? I would be entering as a junior.

Don’t think for a minute I got in effortlessly though. I still had to pass a programming challenge and technical interview, both of which went well.

Impostor syndrome or a dose of reality

Was this an absolute deal-breaker for me? Not really. Despite my academic credentials, I know I damn well didn’t have any software engineering experience outside of education, in my six months at Amadeus, or in my personal projects. To me, coming in as a junior is a chance to reacquaint myself with programming on a deeper level. To finally apply the mountains of software engineering literature I had previously endured; all within a safe and risk-free environment.

It didn’t bother me knowing that there are plenty of self-taught, degree-less developers with junior positions such as mine, all the while I have the shiny (and expensive) accomplishments earned during my time in Aberystwyth. Chances are, they will remain in said positions until they have developed the experience, confidence, and programming knowledge to ascend further. By the way, even though this can take a while, you know it’s natural and totally fine. In any case, I knew that I would not be a junior for long. It would be just enough time to sharpen myself into form once again after spending so long cutting the grass.

Now that I’m over four months into my time at Stickee, where do I think that I’m at? Hand on heart, I think that both my technical skills and my more soft skills have skyrocketed, and it’s thanks largely due to the support of my more senior developers who have helped me at each stepping stone. There’s still always so much to learn, and that’s okay. We’re not encyclopaedias. We’ll learn what we need as we go, and whatever is super important will undoubtedly stick around.

So did you meander for no reason?

Learning to teach has been incredibly meaningful and enriching and I don’t regret it for a minute. I learned a great deal about the science of learning and of pedagogy and the impact of these skills is evident in numerous aspects of my work, no doubt. The students were 100% the most rewarding part and I would do it all again.

I understand why many of my friends and acquaintances criticise me for “postponing” just getting a software engineering job instead of spending more time in the Ivory Tower, but I did it for myself. It’s what I wanted to do. There’s so much pressure on graduates to race head-first into their careers. Many of whom spend months, if not years preparing all whilst completing their studies. I wanted to do these things now whilst I’m still young, full of energy, and with a head full of malleable brain matter.

Some quick-fire, tl;dr questions and answers

  • Will you return to teaching/academia/research?
    • Maybe when the time’s right. I love education and teaching, so I won’t rule it out altogether. Not in the foreseeable future though.
  • Do you regret your Master’s degree?
    • Yes and no. Was it challenging and a positive experience? Yes! Was it basically worth it and outvalued by a year or two of real-world experience? Yes again. Unless you’re specialising in something like AI or pursuing academia, I probably wouldn’t bother.
  • What’s it like working at Stickee?
    • Seriously great. No, I’m not at gunpoint! I’ll write a more general blog post soon about my first few months there.
  • What are your ambitions now?
    • Senior code monkey! In all seriousness, I look forward to being experienced and knowledgeable enough to be a senior or lead programmer within software engineering or nearby fields. After that? Who knows.
  • I’m a former student of yours and I’m lurking your website. Do you miss us?
    • Immensely! You’re all incredible and I know you’re capable of anything you set your mind to. Once you’ve finished school, by all means, get in touch.

Conclusions

From programmer, to teacher, to programmer once more, it has been quite the journey. Frankly, I can’t wait for the next chapters and I hope to document them here on my blog.

In case you’re wondering, I migrated back to WordPress from Hashnode (though if you haven’t seen my neat PHP API, go take a look) after being dissatisfied with the platform – it always felt more of a circlejerk of the same authors and I couldn’t be bothered with that anyway.

Thanks for reading, and until next time.