Jamie Dumont

Software Developer

October 21, 2024

Returning to software development

After two years away from software, it's time to come back

It was August 2022 that I pushed my last commit, on my last professional contract. At the time I didn't know whether I would ever be returning to writing software, but there was little ceremony to the moment. I was ready for the break. Ready for some time away from software.


This hard break from development came about through a chain of coincidences. At the end of 2021, I had spent a day helping a friend on a paid photo shoot. It was only going to be a one-off, but I had been spending more and more time with a camera in hand and I was enjoying it. The prospect of being paid for this kind of fun was enticing.

At a point when I was quite disillusioned with writing software - after almost ten years - the contrast was striking. A few months later I was again commissioned to document an ultra marathon. This time I was earning more per-day than I was writing code. This really got me thinking...

In July 2022, my longstanding client approached me asking to reduce the hours in my contract. They had cash flow issues.

They proposed the change would begin September, the same month my wife would be returning to full time work. We had been juggling both our careers since our son had been born; sometimes struggling but always managing. Hers can be quite inflexible at times, so I was always looking for more margin in mine to accommodate. Despite this, all my past contracts required that I keep regular office hours, and there was no concessions around school holidays. With my wife now working full time again, it was going to be a problem.

Instead, if I could find more photography work like the ultra marathon project then I could be on a similar income; but able to choose when I worked. A confluence of events all seemed to point to stepping away from software and making a bid as a professional photographer.

This was a cut-throat industry - beset on all sides by shrinking budgets and the rise of social media and smart phones meaning everyone was now a photographer - but I was excited by the challenge it presented.

The client was surprised when I countered their proposal with my notice, but I was past negotiating. Mentally I had already made the leap from "developer" to "photographer". I wrote my handover documents, extensively commented my projects, pushed my change to git and quietly turned my back on my career.


Photography turned out to be a wonderful cure for the isolation and cynicism that had grown in me during the years since COVID. I began working from home in 2016, long before "working from home" was the norm. But after the lockdowns lifted, very little changed for me. I was only interacting with colleagues online and rarely getting out.

By contrast, the photography projects I took on thrust me into the real world again, spending prolonged periods with interesting people, slowly pulling me out of myself. It was refreshing and I felt better for it.

I decided to not use social media to promote my photography. I feel that platforms like Instagram are harmful at both the industry and individual user level, and I wanted no part of it. However, living in Cornwall I was also outside of the usual commercial photography spheres. This made networking and finding new clients hard. I managed primarily through word-of-mouth, but it left me with gaps of time to fill.

Despite turning my back on software, writing code had never really gone away. The pressure had been removed and I almost immediately started experimenting with languages and frameworks I had never used before.

First was Swift, where along with SwiftUI I learnt the fundamentals of iOS development - an area of software that had long interested me but had been too much of a leap professionally. I rebuilt my website whenever I had downtime, tinkering with different platforms, generators, etc. It served as a kind of productive-procrastination. A way to keep my hand in without too much stress.

My ability to write code was still brittle however. Whenever I encountered a problem - be it a dependency issue or a bug requiring an obscure workaround - I lost interest. I enjoyed writing software; but only when it was straightforward.

It wasn't until earlier this year that things started to click again - with Rust of all languages!

I had enjoyed the strong typing of C# during my last job - quite unexpectedly as Elixir was my language of choice at the time - and Swift helped demonstrate the utility of enums. Having stumbled upon a video about data modelling with Rust types I was sold and shortly worked through The Book.

Surprisingly I didn't experience the steep learning-curve that Rust is reknowned for even in my burnt-out, brittle state. Sure, the syntax was overwhelming at times and I spent plenty of time being politely told by the compiler that I was an idiot; but the language itself and compiler errors were wonderfully explicit. It was all there on screen - no Googling required. There was very little implicit magic that you had to understand. It was verbose, but expressive and the compiler guided me towards better and better code. I felt productive in the language quite quickly.


So, was it Rust that convinced me to return to professional development? Partly. I've been using Ghost for my photo-centric newsletter since April this year, and after reading 'Zero to Production in Rust' I started tinkering with an application that could perhaps replace Ghost when my annual renewal came up.

I spent more and more time writing code and less and less taking photos. It wasn't a conscious decision, more an organic shift in my attention.

Much like my journey into photography was a confluence of events, my return to software feels the same. I still love picking up my camera and making images, but I don't feel a distinction between paid work and personal. I enjoy them both greatly. But with software, I miss the rigour of writing code professionally alongside a team all working towards a goal.

If I wanted to continue with both, it made sense that development be the focus of my attention and photography become a hobby once more.

The plan now is to spend the next six weeks getting back up to speed, and start applying for jobs in January 2025. There's still a few photography jobs to wrap up but the focus will be brushing off the skills I'll need to land a job.

Nothing moves on quite like software, however it's not like I've been totally deaf to the industry. Thankfully, the fundamentals like setting up a Linux server and writing SQL will barely be different, but I want to get a flavour of software development in late 2024.

I've seen React and Next.js crop up in quite a few job listings, and I last used React extensively in [checks notes]...2017! It will be interesting to see how that ecosystem has matured. Likewise, Tailwind was just at the start of it's up-swing in popularity, and although I used it a little, I had more experience with it's spritual predecessor; Tachyons.

I don't yet know what kind of job I'll be looking for come January. I'm under no illusions that I'll be able to find a job writing Rust - they are exceedingly rare and fought over.

It makes sense to rely on my skills that won't have aged quite so aggressively and benefit from the ten years experience I have; such as SQL, architecture and the fundamentals of web development (HTML/CSS/JS). But of course I'll probably need to play at least a little resume bingo to land an interview! Throughout this reskilling process, I'll be blogging about what I'm learning, re-learning and perhaps where things are obscure now that I have a small degree of objectivity again.

Thanks very much for reading! Feel free to follow along as I rediscover software development.


Previous The Last Straw