16th April 2025
I once wrote an article entitled "Why you should make your own site". How clever I was to talk about content ownership and
using side projects to learn...
Fast forward a decade or more and I'd given myself a long term code and design maintenance project to progressively narrate over the years via various blogs and social media posts...
[1], [2], [3], [4],
[5] (to name but a few).
This site was originally built in .NET 3.5 WebForms, moving through a .NET 4 MVC app, multiple abandoned attempts to rebuild it in .NET Core 2.2, 3.1, .NET 5, 6, 8 and finally now 9.0. There was even a short lived diversion into a NodeJS version. But it's done... it's alive! The site is now running on .NET 9.0. It's even dockerized (though hosted temporarily on a windows server still under contract).
It's been quite the journey... and a change of approach from the classic introspective solo dev "how best to do this" slow progress to a "this needs to work and time available is poor so let's get it done".
The eventual main driver to migrate it was to be able to move to cheaper Linux hosting - while maintaining some form of self hosted web presence. But finally getting there has also given me pause to reflect on why it took so long and what happened to my original energy around the project and self publishing.
Between these two photos has been house moves, role changes, a child, a global pandemic, the passing and ill health of the generation above me (and a lot of greying hair).
When the first photo was taken Windows Phone was still a player in the Mobile space and the most the world knew about AI was the soon to be released, and some may say darkly prophetic, "Her". Now, with the second photo taken, we're seeing companionship rank number one in Generative AI use cases and the heralding of the end of programming as we know it.
What the above confirms is the universal truth of technology and software engineering. The sands are always shifting, the horizon is always moving forward and we must do our best to keep apace - keep learning and keep challenging ourselves. But we must take into account the human aspect.
This is where a recent Stack Overflow blog really struck a chord with me:
"But for many developers, these aren't the biggest context-switching challenges they face. They're also parenting young children while simultaneously taking care of their aging parents. These are the developers in the sandwich generation." Stack Overflow blog
As my career in technology has progressed I've been involved in mentoring, hiring and ultimately line managing developers at all levels. If nothing else this has reinforced the old adage that Technology is Easy, People are Hard. And getting the best out of a team involves individualised context awareness - including of yourself.
I knocked together this high quality, accurate graph to visualise some of this and some of the topics touched on in the aforementioned blog.
In the early parts of your career you may have low responsibility at work but an abundance of time and energy to kick start your knowledge, and play with ideas. As you progress, the increase in your work responsibilities and becoming a parent puts a huge squeeze on that. For many people as they move into their forties the impact of parenting may be replaced by the impact of caring for the previous generation as they age - so that original energy may never quite reach its early peak again.
Moving into leadership positions can also mean a change of modes at work. From long periods of focussed individual contribution to interruptive, multi-modal ways of working across many contexts. This can be a more complicated and energy draining world to navigate.
My argument here isn't to excuse my, or others, lack of side project effort as they age and progress in their career. And certainly many people, including some of my brilliant colleagues past and present, show you can do it all. The point is to be aware of these individual contexts and take best advantage of them while alleviating constraints.
This means really nailing a goal driven, output led focus in your time management. It also means formulating teams that benefit from the mix of age and experience, delegating and empowering those early in their careers, allowing the more experienced heads to act as guides. All the while being aware that new ideas and innovations may be more likely to come from those with less tenure.
It also means taking advantage of technology, systems and processes. The current era of AI and productivity tools can provide a huge accelerator. Both for the time poor but heavily experienced and battle scarred old hats to contribute better than ever before; and for the juniors and mids - able to learn, progress and transfer their knowledge more seamlessly between projects.
It goes without saying that the timeline I sketched out is a generalisation based on my experiences. I've certainly met and worked with people with wildly different charts who excel while carrying all kinds of additional personal responsibilities. As always your mileage may vary... As for me, I'll be trying to post a bit more here now that it's finally running on an up to date stack.
Having not made the trip down to Bournemouth for re:develop 1 or 2 it was great to be in attendance for it's third incarnation.
Making games over a weekend... competitively... and we chose a dead technology... why the hell not!
Hack Days are awesome. How could they not be? you get to make stuff with like minded people with no bosses, no client deadlines, no point but the love of it.
It's been a while since I posted. I'd like to say that's because a lot's been going on. In reality I got lazy and now I just happen to have something to write about that can make it sound like a lot has been going on.
My first smashing coding article is now available! It's main aim is to convince people that .NET isn't all bad.