I'm Gareth, aka. Spirited Snowcat

I specialize in network programming and distributed service architecture

Thanks for taking an interest in my projects! If you’re new to my work, then here’s a little more about my background:

I started teaching myself game server programming as a hobby back in high school after joining the Conquer Online private server community. It was around that time when I decided to drop my acceptance to a four-year university in graphic design and marketing to pursue my interests in programming and computer science.

During my community college years, I made life-long friends with likeminded engineers and professors who helped put a roof over my head, gain self confidence, and become financially independent. The college hired me as a lead tutor and lab administrator after my second year, and I broke into the software industry a year later with a paid internship in industrial automation software. It was at that internship and in that college’s lab where I discovered interests with new friends and now current colleagues.

In early 2017, I graduated from a four-year university with a bachelor’s degree in Computer Science; and not long after started work at Blizzard Entertainment: the company that originally inspired my commitment to game quality and polish.

Now a former Blizzard engineer, I continue my work in game microservices for the game industry. At the end of the day, I couldn’t be happier with my current role and where it’s taking me, and I’m so glad I took the initiative back in high school. I lead each day with a desire to continue learning and brighten the lives of players around the world through software and entertainment.

Picture of Spirited snow leopard looking at the camera over his shoulder, branding a demisexual pride flag on the back of his navy blue sweater. His hand is fiddling with his sweater string. A starry sunset sky in the background.

Some quick info about me...

Pronouns: He/Him (Why this matters)
Species: Snow Leopard
Profession: Senior Software Engineer

Grinding experience

These are the skills I spend time refining professionally and in my free time...

Highly Scalable Microservices

Cloud computing and high availability, scalable microservices are my primary career focuses. Most of my professional and personal projects involve service APIs and game server architecture. Currently, I work on game services professionally in C# and C++, and personally in Go. My services have scaled to serve millions of requests per minute.

Big Data Analytics

Part of by background experience with Business cloud software had me working on big data pipelines for call prediction machine learning using Spark and Hadoop. During this time, I wrote Jupyter notebooks for transforming raw input data from an IoT device ecosystem and extracting structured data into data lake storage solutions.

Database Architecture

Most of my projects in high availability require sophisticated persistent storage solutions for organizing and relating data. Outside of document storage solutions, I use distributed relational databases to partition and index data for critical high concurrency search systems, such as player matchmaking and game server priority queue sorting for admission.

Shell Tooling

Though some of my tools explore graphical interface design, most rely on elegant command-line interfaces for script-ability. Projects posted here are usually command-line to help support graphical tools, such as game map editing. Currently, my tools are written in Go to expand on its robust networking and parallelism constructs.

Got a burning question?

I've got answers! Here are some quick facts about me...

Why the game industry?

Games serve many purposes in modern art and entertainment. They can tell a story, invoke powerful emotions, bridge international communities, and capture a culture. The field itself comes with many challenges: from complex software system architecture to in-game microeconomics. There’s never a dull moment in developing games.

What games have you worked on?

In my previous role at Blizzard, I owned game microservices and worked with game teams on integrating with them. Some of these games included: World of Warcraft, Hearthstone, Diablo II Resurrected, Diablo III, Diablo Immortal, Overwatch, Warcraft III Reforged, Warcraft Arclight Rumble, and a few currently unannounced incubation titles.

How did you get started with programming?

I first picked up the basics using online tutorials, and then dove head first into a game server project by writing NPCs and fixing game feature bugs. The learning curve can be steep, but taking small steps at a time and breaking down problems can help you climb that hill. I eventually took myself to community college to solidify and refine those skills.

What games do you play?

I’m a huge Nintendo fan, and love playing the newest installments of Legend of Zelda, Animal Crossing, Pokémon, Mario Kart, and Super Mario! Portal and The Last Guardian have special places in my heart, but I usually play online games such as Borderlands, Diablo III, Guild Wars 2, and Sea of Thieves with my friends. I’m a very social gamer.

Why snow leopards?

Animals are globally identifiable by their unique traits and characteristics. Snow leopards started as an avatar theme to describe my online presence. Their energetic and bouncy personalities describe my social interactions pretty well. After a decade of using the ghost cat to mask my presence on forums, it became a fun online identity.

What are some of your other hobbies?

As you dig through my projects and posts, you might notice that I have a lot of hobbies. Just to name a few, I love photography, illustration, painting, 3D modeling, video production, computer hardware, gardening, home automation, and of course, playing and making games. Authoring and playing in table top campaigns also falls into that mix.