How I Became a Programmer and Hobbyist Game Dev
When I was a teenager, I was fascinated by video games and often tried to imagine how these things worked, but I didn't start learning to code until fall term of my senior year of high school. They asked us to look to our futures and make a career plan. Of course, I wanted to get into developing games like so many others my age. Knowing that my talents lay more in math than in art, I set my sights on becoming a game developer, which in my mind meant technical work to make them functional. Over the course of my senior year, I crammed in and completed all four programming classes my school offered (HTML I & II, Java, Visual Basic) and even one online class (Basic). My teacher allowed me to complete two full-term classes per term in order to fit them into my already tight school schedule. By the time I was done with the first couple classes, I knew that I had hit on something that grooved with the way my brain works and that the act of programming was fun in its own right.
Wanting to develop games of my own, I managed to turn a couple of the final projects in my classes into game creation opportunities. I implemented Tic-Tac-Toe in my Java class and made a simple text adventure game based on the epic of Beowulf for my Basic class. That project doubled as my English final. During a career planning class, I was encouraged to contact people working in game development. I got in touch with some local game developers over email and received advice about becoming a game dev from the programming side. Following that advice and avoiding the siren call of game-specific degrees, I applied for and was accepted into the Software Engineering program at Oregon Institute of Technology (OIT).
The summer before I started OIT, I got an internship at a local company called My Little Salesman doing development work for their big-rig classifieds website working in C#, ASP.NET, and getting my first glimpses into Postgres. My mentor there also introduced me to Linux for the first time.
Over my four years at OIT, I learned a lot of C++ and excelled in my program related coursework. I studied algorithms, data structures, database design, and foundational computer hardware. I also snagged an opportunity to work for Amazon Music (A2Z) down in San Francisco the summers before junior and senior years as a web dev intern. There I worked on the store catalog for the Amazon Music app. We worked mostly in JavaScript with some Backbone.js.
My career was shaping up differently than I had originally planned. I was becoming a web developer, because that was the focus of all my internships so far. This trend also surfaced in my schoolwork. During junior project at OIT, which was team based, I worked on the web server for our team's project. Trying to get back on track for games during my senior project, I started working on a racing game in Unity. However, I entrenched myself further in web dev by adding a top-scores web server because I understood that mode of networking best and I needed to satisfy a networking component requirement.
During those final months at OIT, I started applying for every game dev job I could find that might let a newbie in, but nothing came of it. I accepted a web developer job at Emberex in Eugene, Oregon in order to be close to my parents while I got my feet under me. There I learned and refreshed my knowledge of several technologies both old, new, and seminal, including XSLT, React, and Java.
After six years at Emberex, moving in with my then-girlfriend, and getting married, I was pretty tired of web dev and still harbored the hope that I could get into the games industry. Unfortunately I had let my game development hobby die in the interim, so I had nothing to show potential game industry employers. Coping with some burnout, I desired to reconnect with game dev as a hobby. That summer, I dove in and started reading several books at my local library on the theory of game design. With my wife, who is a fantastic artist, we started competing in small game jams here and there when we had the wherewithal.
The next year, we bought a house in the middle of the pandemic. Recovering from my burnout with a change of scenery and a reignited passion for programming, I decided to take my career to the next step and started applying for jobs. Over the next few months, I searched around and applied to several places, eventually landing with StackSource, who I was with until this June, almost exactly nine years after I graduated from OIT. At StackSource, I was able to put my skills to the test by helping them convert over to TypeScript from a custom JavaScript derivative, writing performance critical micro-services in Rust, adding new testing practices, learning Kubernetes, and doing prod deploys as the sole responsible party.
I would still be with StackSource today, but unfortunately due to turbulent times in the real estate investment world, they could not keep me on any longer. While this came as a bit of a surprise, it is not completely unwelcome as it has reinvigorated me and allowed me a moment to rest before heading into the Game Maker's Toolkit game jam this year.
Look forward to seeing what we do next as Cloud Puppy Games in this year's jam!
Update, we finished our jam game. Upstart Dungeon, where YOU are the game master! Shepherd the CPU player through an adventure of your own design.