
I was born in 1982. I was 5 when I played Super Mario Bros. for the first time – holding the controller withs hands just big enough to hit all of the buttons. By the time the Super Nintendo and Genesis came out, my hands had grown with the controllers.
For me, that was the Golden Age of video games. I’d spend countless hours playing the original Zelda (NES) all the way through over and over. Some weeks I’d scour every inch of A Link to the Past‘s (SNES) levels, looking for areas I shouldn’t be able to access at different points in the game. I’d challenge myself to beat all the bosses in Mega Man 2 (NES) using only the Mega Buster. I’d go throug…

I was born in 1982. I was 5 when I played Super Mario Bros. for the first time – holding the controller withs hands just big enough to hit all of the buttons. By the time the Super Nintendo and Genesis came out, my hands had grown with the controllers.
For me, that was the Golden Age of video games. I’d spend countless hours playing the original Zelda (NES) all the way through over and over. Some weeks I’d scour every inch of A Link to the Past‘s (SNES) levels, looking for areas I shouldn’t be able to access at different points in the game. I’d challenge myself to beat all the bosses in Mega Man 2 (NES) using only the Mega Buster. I’d go through Donkey Kong Country (SNES) to hit 101% – finding the secret room inside the other secret room.
Looking back it seems like I spent years playing these games, but it was likely only weeks or months on each of them. For a time I wanted to create video games. I loved the idea that people were enjoying something I poured my heart into – even without them even knowing who I was.
There was one game that captured my heart unlike any other: SimCity 2000 (Macintosh).
From Player to Creator
SimCity is a city-building game – the first of it’s genre. SimCity Classic was released in 1989, and followed up with SimCity 2000 in 1993 for Windows and Mac.
Here’s how it works:
Image from How to Start a City
You start with a blank slate of land that’s randomly generated. You can roll the dice and have it generate terrain with more mountains, forests, rivers, an ocean or tweak it tile by tile.
Once your map is decided, you have free reign to build your city. You don’t do this by placing individual building like you might think. You do this by zoning areas as residential (green), commercial (gray) or industrial (yellow), giving them power and water, and then waiting for people to magically move in.

It was the first time I remember building something for myself and hoping people would love it.
As more people join, your population increases – as does your tax revenue. With those funds you can build more services to entice more emigration. Police stations and fire stations to keep people safe; schools and colleges to continue education; parks and marinas for people to have fun; and roads, highways, railways and subways to help people travel.

As your city grows, there’s always a bottleneck to fix. Density spikes and you need more police. Buildings go abandoned because there aren’t enough jobs or workers. Taxes are too high so people flee to other cities. Pollution, crime, commute times and other factors can drive population change. If you ignore those issues your city suffers.
When Paper Was My First IDE
I took to SimCity 2000 with an obsessive addiction. I’d play during every waking minute, even leaving our family computer on overnight so I’d have plenty of money (& growth) when I woke up to check it before school.
I was in eighth grade at the time, I and remember prototyping SimCity maps on college ruled paper and pencil on the bus to school. It was the first time I ever prototyped.
When I made it home, I’d transfer my paper design to my city, seeing it take the shape I had in my head.
It was satisfying in a new way that I’d never experienced before.
The Day I Stopped Playing SimCity
*Spoilers ahead for SimCity 2000’s endgame. *

After a few months playing, I’d reached the point where almost every square I could use was taken up by arcologies (short for architectural ecology). Arcologies were a late game addition that allowed you to build a futuristic structure that housed 70,000 people in a small 4×4 area.
One morning I woke up to check on my city before school like I did every day. To my complete shock, my city was gone! In it’s place were hundreds of craters where my arcologies used to be. After my panic subsided, I realized this was the end game. My arcologies had blasted off into space – the next step on the their journey.
This was in the days before Chat GPT (or even Google), so my only way to learn what happened was to find a site on Yahoo! that explained the ending.
From Games to Game Websites
In college I got really into Dance Dance Revolution. I started a website with a bunch of DDR stats and a phpBB forum that became the goto community for players in the southeastern US (DDR was a very social game).

The code for this site is available on GitHub. It’s bad. It’s “I didn’t know SQL had an ORDER BY clause so I’d pull back everything and sort it in PHP” kind of bad.
But there was something about building this site that gave me a similar feeling to playing SimCity 2000.
In both cases I’d build out paths for people to take without my input. It felt exciting to see some organization of data and experiences into a route that users actually took!
Creating these experiences hooked me. Since then I’ve built quite a few projects, and in every one of them I aimed to recapture that SimCity 2000 feeling.
Enter Ruby on Rails
Back in 2005 I heard about and started learning Ruby on Rails. It sped up my development in a way nothing else has (at least, not until recently with Claude Code, but that’s another blog post).
Since then, Ruby on Rails has been my goto tool in my toolbox enabling me to recapture that feeling of being a world builder.
I’m still building worlds 20 years later. Most recently that’s building paths for people to listen to audiobooks at Libro.fm by day, and creating paths to discover books at Hardcover by night.
SimCity as a Systems Design Primer
The same skills that were honed playing SimCity are directly applicable to web development – even if I didn’t realize as a middle schooler.
Choosing a terrain for your city is like picking your underlying architecture. For me that’s been Rails as my starting point.
Sketching your city in a notebook is, of course, prototyping your application. You’re making a plan to implement.
Deciding on zoning for your city is similar to picking out your features. You’re making choices for your users what they’ll be able to do and where.
The newspaper you receive each year is your product feedback. Ignore this at your peril, or follow it to stay on course with what your users want.
Power plants are your infrastructure. Without them the lights will be out. When this goes wrong, it’s all hands on deck.
Roads, subways and highways are your information architecture. This is how your users will get around. If you mess this up, everyone will be stuck.
Water and sewage are your background jobs and async processes. They’re out of sight and out of mind – at least when they’re working.
Tax rates are your product pricing. Set them too high and people will leave en mass.
Police, firefighters and hospitals are your error tracking, alerting and observability that ensures things are running smoothly.
And of course disasters are disasters. 🔥
Your Decisions Matter
For both SimCity 2000 and software development, no single decision is going to reward you with instant success. It’s orchestrating each of these many decisions so they work together that creates something harmonious.
In every system there’s going to be a bottleneck. For most of my projects that’s been getting people to give it their attention in the first place. Whether you’re playing SimCity or building for millions of users, if you can understand what your systems needs and focus on that, your system will grow – if you give it time.