00%
blog.info()
← Back to Home

Maintenance Complete: How I Refactored My Career in One Year

Author Thorn Hall
0

Background

After five years of shipping critical infrastructure and putting out fires, I realized I had become excellent at execution, but I was losing touch with exploration. I was optimizing for the sprint, not the marathon.

I had become hyper-efficient at my specific responsibilities, but I wasn't growing in a way that felt sustainable. I missed the feeling of building from a blank canvas. I wanted to become better at navigating ambiguity and designing entire systems from scratch. So, in November 2024, I left my role as a Senior Software Engineer at Shippo to pursue a self-directed engineering sabbatical.

The Laboratory: Game Engineering

In January 2025, I began building Path of Magic (POM), an MMORPG centered on the joys of being a powerful wizard. This wasn't just a game, it was a crash course in product ownership.

Building POM gave me a holistic view of the software lifecycle. I wasn't just the engineer, I was the product manager, designer, and QA lead. I had to weigh architectural purity against player experience, making hard decisions on what to ship and what to cut.

This work quickly bled into tooling. Frustrated by the lack of version control in Roblox Studio, I moved my development to VSCode. When I realized VSCode lacked the native features I needed, I built Roblox IDE, a custom extension to bridge the gap. As of today, that extension is installed and used by 1,684 game developers.

The Scale Test

In June 2025, my work attracted the attention of a developer with a rapidly growing game. I came on board as the sole programmer for Spike Troll Tower, which eventually hit 1,400 concurrent users and over 1 million visits.

Managing state for thousands of concurrent users in a real-time environment taught me lessons about latency, replication, concurrency, and database contention that no textbook could offer.

The Deep Dive: Go and Simplicity

After shipping those titles, I decided to pivot back to backend fundamentals. While I had professional experience with Go at Shippo, I wanted to master it without the crutch of heavy frameworks. I wanted to understand the standard library inside and out.

I built a series of projects designed to test the limits of simplicity:

  • A Grand Exchange clone: modeled a complex trading economy using only one external dependency.
  • A custom auth microservice: implemented session generation and security from scratch using only the Go standard library.
  • thorn.sh: The site you are reading right now runs on a custom engine I wrote to serve content with minimal memory footprint (currently ~11MB).

An Upgraded Toolkit

This year wasn't a break, it was intense R&D. I worked harder in the last 365 days than I ever have before.

Here are some of the skills I gained:

  • Lua and state management: my game codebase grew to 40,000+ lines of modular Lua, teaching me how to keep dynamic, untyped code maintainable at scale.
  • Go mastery: I can now write performant HTTP servers and database layers from memory, giving me the speed to prototype complex backends in hours, not days.
  • TypeScript: through developing my VSCode extension, I gained a deep appreciation for strong typing in frontend tooling.

Maintenance Complete

Spending one year as an independent engineer has been the most fulfilling time of my career so far. I’ve learned to build systems around the internals of engines, rather than just on top of them. I can now look at a vague idea and see the full path to deployment, weighing scalability against developer velocity.

Feeling refreshed and sharp after my time working on personal projects, I’m now searching for backend engineering roles at companies solving scalability challenges without succumbing to complexity. I am looking for a team where I can apply my experience in distributed systems, Go, developer tooling, and application architecture to build software that is robust, readable, and efficient. If that sounds like your engineering culture, I’d love to chat.

View Abstract Syntax Tree (Build-Time Generated)
Document
Heading
Text "Background"
Paragraph
Text "After five years of shippin..."
Text " marathon."
Paragraph
Text "I had become hyper-efficien..."
Text " sabbatical."
Heading
Text "The Laboratory: Game"
Text " Engineering"
Paragraph
Text "In January 2025, I began bu..."
Text " ownership."
Paragraph
Text "Building POM gave me a holi..."
Text " cut."
Paragraph
Text "This work quickly bled into..."
Text " developers."
Heading
Text "The Scale"
Text " Test"
Paragraph
Text "In June 2025, my work attra..."
Text " visits."
Paragraph
Text "Managing state for thousand..."
Text " offer."
Heading
Text "The Deep Dive: Go and"
Text " Simplicity"
Paragraph
Text "After shipping those titles..."
Text " out."
Paragraph
Text "I built a series of project..."
Text " simplicity:"
List
ListItem
TextBlock
Text "A Grand Exchange clone: mod..."
Text " dependency."
ListItem
TextBlock
Text "A custom auth microservice:..."
Text " library."
ListItem
TextBlock
Text "thorn.sh: The site you are ..."
Text "11MB)."
Heading
Text "An Upgraded"
Text " Toolkit"
Paragraph
Text "This year wasn't a break, i..."
Text " before."
Paragraph
Text "Here are some of the skills I"
Text " gained:"
List
ListItem
TextBlock
Text "Lua and state management: m..."
Text " scale."
ListItem
TextBlock
Text "Go mastery: I can now write..."
Text " days."
ListItem
TextBlock
Text "TypeScript: through develop..."
Text " tooling."
Heading
Text "Maintenance"
Text " Complete"
Paragraph
Text "Spending one year as an ind..."
Text " velocity."
Paragraph
Text "Feeling refreshed and sharp..."
Text " chat."