As far back as I can remember I have always been intrigued by technology. As a kid I had this insatiable curiosity to figure out how things worked and often this mean't taking things apart much to my parents distress.
It was 1983 and my best friend had just received a Commodore 64 as a gift. It was my first exposure to what I would come to know as a personal computer and I was hooked. I can remember sitting in his room for days on end, staring into a tiny monitor as we painstakingly typed each line of the code which we copied from a code book. I remember how intense the concentration was as each line of code had to be perfect otherwise our program would not run. It's funny but not much has changed since then, except now we use smart editors and IDE's with highlighted language syntax, code prompts and linting.
It has been a while since then and many iterations as a software developer. I started to take software development seriously around 2007 and spent hundreds of hours honing my craft. I was fresh out of a tech startup as co-founder and managing director and was looking for a career challenge, I could see the tech industry was moving online and I wanted to be a part of it. I was hungry and I poured hundreds of hours into my education learning everything about software development that I could find.
It was still early days, PHP was new and popular for web development. Ruby in Rails was launched in 2004 but it only hit my radar in 2008 and I spent months working through the framework building mini projects and launching websites for SME's and a couple of large clients. The work was time consuming and often slow as many of the tools we use today to speed up development were not available yet.
I worked as a developer throughout my children's secondary and tertiary education and I'm proud to say both my children have achieved degrees, my daughter, an honorary degree in environmental science, a cause close to my heart, and my son, a masters degree in mechatronic engineering. Today he programs and automates robots, it's pretty cool stuff and something that makes me super proud.
As a software developer you soon learn that the subject is by no means static. I think it is innate in our nature as humans to innovate. This leads to what I call "skill creep" which is my version of "scope creep" but for skills development (project management scope creep refers to changes, continuous or uncontrolled growth in a project's scope). In simple terms it means your education is never done. As a software developer, especially someone who is entering the field as a fresh grad student, you soon realise the sheer scope of what you need to know is mind boggling. Every month you learn something new, maybe a new development tool, a new automation process, a new programming language like Rust for example. Either way, there is always something new and this means if you want to stay ahead you need to be learning and practising all the time.
With tight deadlines you are constantly under pressure to get the work done. This leads to coding for long hours with intense concentration. There have been times when I started coding at 7am and stopped when I realised it is 5am the following day and I hadn't slept. It is not so much that you are trying to be some kind of super human, you simply lose track of time and get caught up in the process. Developing applications requires an intense focus, lot's of reading and tests, yes, lot's of tests.
When I first started noticing symptoms, I ignored them, I pushed through, there was work to be done. It started as a kind of head rush, a feeling of light headedness, I ignored it and pushed on. The symptoms overtime got worse, I noticed when I was coding with intense concentration, I would shallow breath, it felt like holding your breath as you code. It's like something you do in the grip of fear, the feeling was strange and overtime, it just got worse. The feeling gave me a head rush, made it difficult to breath and made it hard to focus. The symptoms got so bad that my head would buzz, I would feel dizzy and my eyes would water from the pressure.
I was struggling, my work performance was suffering and I had grown to fear the symptoms which made me anxious and only served to increase the severity.
You can think of it like this. Your brain develops a fear, or over response to something excessive that you are doing. It's like standing at your front door fumbling for your keys while Freddy Kruger comes up behind you. You find yourself holding your breath and panicking while you rush to unlock the door. I had unknowingly conditioned myself into a kind of automated stress response to bad work habits and I was taking a pounding for it.
I nicknamed it the 'Freddy Kruger effect'. It took me years to figure out that I had conditioned my brain into triggering an anxiety response to excessive learning and coding without proper care for myself and taking time out.
It is not until I watched a video on Youtube by Brad from Traversy media "Taking a Break, Guest Creators" that I decided I would share my thoughts and my experience. In his video, Brad went on to say "I have been going through some tough physical and mental issues at this point in my life and I can't keep going at the rate I have been for all of these years." We had different symptoms but I could totally relate to what Brad was saying.
As developers we tend to push hard, and maybe when you are younger you can take it, but as you get older you soon realise that you need to be good to yourself. You realise that you need your sleep, you need time out, you need to exercise, eat well and more importantly limit the time you code to shorter sessions with breaks in between.
So, would I become a software developer again knowing what I know and knowing how hard being a software developer can be? Absolutely! There is something incredible about creating applications that can transform the world and improve the way we do things.