My journey to Senior Software Engineer
The Beginning Ever since I was a little boy, I have always been fascinated by technology and games. My first introduction to the world of gaming was the Sega Megadrive, where I played classics like Sonic the Hedgehog and The Lion King in my mum's old bedroom at my Grandmother's home. Around my 9th birthday, we got our first Gameboy Advance SP Tribal edition (yes, we were those cool kids) along with my favorite Pokémon game, Pokémon Ruby. I spent countless hours playing it in my younger years and still emulate it to this day on my Steam Deck. The Introduction of MMOs In school, I had a friend named Greg who introduced me to various MMOs, which quickly consumed my whole life. I had experience playing popular ones that my siblings were also into, like Club Penguin and Habbo Hotel, which is still going strong to this day. However, they didn't come close to the addictive power of other MMOs my friends got me into, such as World of Warcraft, Conquer Online, and most notably Endless Online, where I spent most of my time. Endless Online may be the least known name on this list, but something about its 2.5D isometric graphics, simple controls, and the ability to run on almost any computer with dial-up internet back when I was 11/12 really drew me in. Endless Online Endless Online had a significant impact on my teenage years. If I had to guess, I think my total time spent in this virtual world likely topped 2,000 hours, playing with a mix of "in real life" (IRL) friends and friends I made in the game. You could create virtual avatars, collect weapons, slay monsters, gain experience, level up, and distribute stat points. The concept is timeless, harking back to the days of Dungeons & Dragons and similar games. I heard that the original developers of Endless Online were inspired by an existing game called Dark Ages, and you can see the similarities. Around 2008, when I was about 14, the developers stopped putting out any meaningful updates to the game, calling it a day at version 29 until eventually, the servers went offline, and the game became inactive. EOSERV Just before Endless Online went inactive, a hacker/programmer named Sausage was an active participant/owner of an online community called EOHax. This community was created to discover and publish (some) exploits in the game and generally reverse engineer the protocol that Endless Online used to communicate between server and client. Once all the servers had gone offline for what we called "Main" back in the day, Sausage, aka Julian Smythe, set up another online community called EOSERV, where he published his own recreation of the Endless Online server software (Endless Online Server Emulation - EOSERV). It started off with simple features like logging in, talking, and moving around, eventually becoming more sophisticated and as feature-complete as the main game, including guilds, monsters, levelling up, and all the same items. This all seemed really cool, and eventually, I had a go at making my own server, which would be my first real experience with any kind of programming or code. The small detail here is that this software was written in C++, which is quite a steep jump into software engineering. I spent a lot of time googling things and browsing the EOSERV forums to see what others were doing and looking at guides to build my own version of this software. Eventually, I got to grips with it enough to compile something and put it on the internet for others to play, which felt really cool. However, I was still mostly just copying and pasting things and trying to compile until it worked. I did this from around 14 or 15 years of age until I was about 16 or 17. This experience led me to want to study Computing at my local college, where I had my first official lessons in programming and software engineering. Looking back, these lessons weren't that in-depth, using a language called Pascal, but it was a good start. My First Apprenticeship After I finished college, I found myself in the situation that every 18-year-old in the UK faces. Do you go to university and potentially have £50,000+ worth of debt, or do you enter the working world? I found myself in the latter group. I started working for Waitrose as floor staff until I could secure myself a role at a software company where I had my first official training as a professional programmer. This was using C# making a desktop application that can automate tests very similar to tools like Cypress or Playwright. In theory I think apprenticeships are a very good idea, training and working at the same time should lead to good learning outcomes. I think the downfall of this particular apprenticeship was that they had me signed up to a general college on a general qualification where, at times, I taught the teacher more than they were teaching me. Not to sound big headed, but the most advanced it got was basic database design. It was not the one! Anyway, eventu

The Beginning
Ever since I was a little boy, I have always been fascinated by technology and games. My first introduction to the world of gaming was the Sega Megadrive, where I played classics like Sonic the Hedgehog and The Lion King in my mum's old bedroom at my Grandmother's home. Around my 9th birthday, we got our first Gameboy Advance SP Tribal edition (yes, we were those cool kids) along with my favorite Pokémon game, Pokémon Ruby. I spent countless hours playing it in my younger years and still emulate it to this day on my Steam Deck.
The Introduction of MMOs
In school, I had a friend named Greg who introduced me to various MMOs, which quickly consumed my whole life. I had experience playing popular ones that my siblings were also into, like Club Penguin and Habbo Hotel, which is still going strong to this day. However, they didn't come close to the addictive power of other MMOs my friends got me into, such as World of Warcraft, Conquer Online, and most notably Endless Online, where I spent most of my time. Endless Online may be the least known name on this list, but something about its 2.5D isometric graphics, simple controls, and the ability to run on almost any computer with dial-up internet back when I was 11/12 really drew me in.
Endless Online
Endless Online had a significant impact on my teenage years. If I had to guess, I think my total time spent in this virtual world likely topped 2,000 hours, playing with a mix of "in real life" (IRL) friends and friends I made in the game. You could create virtual avatars, collect weapons, slay monsters, gain experience, level up, and distribute stat points. The concept is timeless, harking back to the days of Dungeons & Dragons and similar games. I heard that the original developers of Endless Online were inspired by an existing game called Dark Ages, and you can see the similarities. Around 2008, when I was about 14, the developers stopped putting out any meaningful updates to the game, calling it a day at version 29 until eventually, the servers went offline, and the game became inactive.
EOSERV
Just before Endless Online went inactive, a hacker/programmer named Sausage was an active participant/owner of an online community called EOHax. This community was created to discover and publish (some) exploits in the game and generally reverse engineer the protocol that Endless Online used to communicate between server and client. Once all the servers had gone offline for what we called "Main" back in the day, Sausage, aka Julian Smythe, set up another online community called EOSERV, where he published his own recreation of the Endless Online server software (Endless Online Server Emulation - EOSERV). It started off with simple features like logging in, talking, and moving around, eventually becoming more sophisticated and as feature-complete as the main game, including guilds, monsters, levelling up, and all the same items. This all seemed really cool, and eventually, I had a go at making my own server, which would be my first real experience with any kind of programming or code. The small detail here is that this software was written in C++, which is quite a steep jump into software engineering.
I spent a lot of time googling things and browsing the EOSERV forums to see what others were doing and looking at guides to build my own version of this software. Eventually, I got to grips with it enough to compile something and put it on the internet for others to play, which felt really cool. However, I was still mostly just copying and pasting things and trying to compile until it worked. I did this from around 14 or 15 years of age until I was about 16 or 17. This experience led me to want to study Computing at my local college, where I had my first official lessons in programming and software engineering. Looking back, these lessons weren't that in-depth, using a language called Pascal, but it was a good start.
My First Apprenticeship
After I finished college, I found myself in the situation that every 18-year-old in the UK faces. Do you go to university and potentially have £50,000+ worth of debt, or do you enter the working world? I found myself in the latter group. I started working for Waitrose as floor staff until I could secure myself a role at a software company where I had my first official training as a professional programmer. This was using C# making a desktop application that can automate tests very similar to tools like Cypress or Playwright. In theory I think apprenticeships are a very good idea, training and working at the same time should lead to good learning outcomes. I think the downfall of this particular apprenticeship was that they had me signed up to a general college on a general qualification where, at times, I taught the teacher more than they were teaching me. Not to sound big headed, but the most advanced it got was basic database design. It was not the one!
Anyway, eventually this particular company had me working on ASP.NET code that was very foreign to me, and the support was just not there from the college either. Eventually I found myself getting burnt out at the apprenticeship and wanted to move on to some more official education which is where I applied to university in 2013 to start my studies in September 2014.
The first graduate role
After University, I started my first graduate role in 2018 having just moved in with my mother and father in law temporarily. Living with them was honestly fantastic, coming home to a cooked meal every day. The commute sure did suck a bit, 3~ hours a day on a bus, but it was only temporary until myself and my now wife found a place to live nearer my work.
It was a development house creating software for the police in the UK and vehicle recovery services in C# / VB.NET, so familiar territory. The role itself had an incredible graduate programme, introducing concepts such as the SOLID principles and Dependency Injection. I was tasked with making a few little practice projects that were reviewed and commented on until I could create code of a satisfactory standard and then I was assigned to a team. This team in particular looked after software that would help the police force in the UK manage reports of missing people in the UK. Even to this day, this was perhaps one of the most fulfilling roles I've had, where I could get feedback such as "That feature you worked on recently, has saved me hours of work" which feels amazing. I am yet to find another workplace that allows that same sense of fulfilment.
Mentoring
I went between a few different places after the graduate role, mostly focusing on individual contributor roles, gaining some 5-10% payrises along the way until I got to work for a startup. I joined this startup at the end of 2020 where I was given the task of mentoring someone who was completely new to software engineering, when I had two years of professional experience. This was a fun experience for me being able to help someone else grow professionally and laid the foundations for how I would eventually find my path to senior software engineer.
When I break it down, I think these are the main qualities of a senior engineer: