10 years in - Part 1

Table of Contents

While I started playing with code around the age of 13, this year (2025) marks the 10-year anniversary of my professional career in software engineering. I’m a sucker for nostalgia, so it feels like a great excuse for me to do some reflecting. I look forward to coming back and reviewing this after another decade passes. While writing this, it started getting pretty long, so I decided to break it up into a few parts.

Part 1

Prologue

I was fortunate to grow up in a household where my dad was interested in technology, and thus we usually had some form of computer available to play around with. I was obsessed with “playing on the computer”, where I would jump between playing video games, surfing IRC channels, and downloading music and movies.

It was in an IRC channel for a text based MMORPG called Planetarion that I acquired the source code for a clone of the game. It was written in PHP and used MySQL and with the help of a friend of a friend, I was able to get it setup on a server. I was hooked. I spent countless hours tweaking the game and learning the source code by trial and error. We eventually acquired a domain name, deployed it, and then spammed links in various IRC channels to get people to play. At one point we had a couple hundred people playing in some rounds. This was my first exposure to scripting languages, databases, web servers, graphic design and html. We ran the game for a couple of years and had several spin-offs. In general, it was a really fun way for me to enter into the world of code.

The game worked by running a “tick” script every minute or so, which would update all the positions and stats and
control the speed and pace of the game. I remember not having any idea what a cronjob was, so instead I downloaded a web browser called opera that had a feature to refresh a web page on some timer. I would leave my computer on all night with the browser refreshing the game page every minute to keep it running. Very “high tech”.

From there I built dozens of projects and websites for fun, and by the time Myspace rose to popularity, I was a pro in html and basic scripting.

The college years

I did not study computer science or programming of any kind at college, but I did build a few projects during those years. I wrote a few hacky applications (“photocropyourfriends.com”) and started some freelance work building basic websites for some friends. It was during this time that it did occur to me that coding would have been a fun career to have embarked on, but there was so much to learn, it felt a little daunting.

Switching careers (2014)

I went to college for audio engineering and music production, and after graduation I spent a year interning at Zing Recording Studios in Westfield, MA. After running out of money and burdened by high student loan payments, I ended up moving home and eventually opened my own recording studio, The Bears Den. I operated this business while working other jobs for about 5 years. I continued building websites and applications on the side, and I was continually hacking on something code related. Around 2014 I started to feel like a career in audio engineering might not be the best investment of my time. Technology was advancing quickly and it was becoming easier and easier for people to create recordings with free software. I was also working nonstop between the studio and my other jobs. I was burnt out.

I decided to close the studio and double down on switching careers. I started replacing my evenings of recording with evenings of taking various online courses, studying and building small projects.

My first internship (2015)

I was extremely lucky to quickly find an internship opportunity through a friend shortly after officially closing down my recording studio at the end of the summer in 2015. It was with a video production company that had some internal custom software they used for managing projects that they were looking to have an intern work on part-time. The project was written in PHP and I had some (hacky) experience with PHP, so I wasn’t starting completely from scratch. The CEO of the company was a programmer and had written the software himself, so I worked directly with him on getting started, and then the expectation was that he would give me tasks and I would figure them out as I went. I learned a ton from this experience. It helped me focus my self-guided studies on tangible concepts that I could then immediately apply to real world problems, and it gave me a lot of confidence in my ability to learn and adapt to new things.

It took me a while to wrap my head around the idea that part of my billable time could be devoted to learning. In the beginning, I would stop the clock when I needed to take a detour to learn something new about JQuery or whatever I was hacking on. Eventually the CEO assured me that it was okay to bill for that time, and that it was part of the process of writing software. My mind was blown.

This job was cool because I had a lot of autonomy to explore different ways of solving things, and the CEO was patient and supportive. I got my first exposure to working with AWS services, and got to build some really cool pipelines to transcode video files into various formats, along with an entire web based application to manage them. It was my first introduction to things like MVC patterns, asynchronous javascript, and experimentation with frameworks like jquery, angular, and vue.

I continued doing work for this company for a little over 2 years, and I am eternally grateful for the opportunity
they gave me. It really helped me get my foot in the door to get some real world experience under my belt, and taught me how to approach ambiguous problems on my own.

It was during this time that I really solidified learning into my daily routine, and building the muscles needed to approach problems that I had no idea how to solve. I was still working a full time non-developer job, so I was only able to dedicate part of my time to progressing. My next goal was to land a full-time position writing code.

My first full-time coding job (2016)

About a year after I started my internship, I was really leaning in, studying and learning as much as I could, to the point where I began to feel like I was ready to take on a full-time role. I started applying to jobs, without knowing too much about what I should be looking for. I interviewed at a few small companies, mostly small web development agencies, and eventually landed an offer at the end of 2016.

I had been consuming all kind of new types of content around software engineering, including following some people on twitter, and tuning into the various podcasts around the Laravel ecosystem. I was shifting from just referencing documentation, to starting to stay up on trends and learning new things by watching videos of others write code. Listening to and watching these engineers leverage different development methodologies and testing practices was really inspiring to me, and led to me exploring a lot of new things.

Much of what I learned from these podcasts then had a direct impact on me landing my first job. One of the companies I interviewed at was using laravel for some of its more complex sites and was looking to hire someone with experience. During the interview process I was able to talk at length about the framework and some of the projects I had been experimenting with it on. This knowledge and my ability to talk about it ended up having a direct impact on their decision to hire me. This was another “aha” moment when I could quantify the value of the time I had spent learning and experimenting on my own. This was a powerful positive reinforcement that I was on the right path.

That gig involved working on dozens of wordpress and laravel based sites. It was in this job that I really started leveling up my javascript skills and got exposure to maintaining web servers for all kinds of stacks. It was a small team (3 developers) and was the first time I was working day in and day out alongside others. I was fortunate that the two people I worked with were great, and they taught me a lot. While the sites we were building were really not interesting, and I was not fond of the client facing aspects of the job, I was so excited to be working full time as a developer.

Up next

In the next installment, we’ll move from web development into the world of “software engineering”, followed by my path into the realm of SRE.