Every night before I go to sleep

For the past year, I've done something every time I got back home from school (or now work). I've scaled down our servers.

And then, every night, right before I'm about to go to bed, I scale the servers back up.

Why? After salaries, server costs is our largest expense. The number of people using Gimkit at 10am on a Thursday is much different than 8pm on a Monday. Because of that, I scale the servers manually so that we aren't be charged for a bunch of server resources we don't need.

Manually scaling up and down our servers has two major cons.

  1. It's annoying

  2. I'm making guesses about how much usage Gimkit will have

It's annoying

I'll keep this one short, because it's just about me. But yeah, scaling servers up and down is annoying. It's not tedious, it's more I just want to go to bed at 11pm and not scale the servers up. Yep, that's it.

I'm making guesses about how much usage Gimkit will have

This one is a larger deal. When I scale manually, I'm really making a guess about how much usage Gimkit will have the next day. Sure, I can scale manually throughout the day, but that's being reactive. We're either paying for too much server resources (which I'd prefer) or we're not paying for enough and it's causing a degraded experience in slowness or disconnections.


Because of this, over the last few weeks, I've been working on something called a matchmaking service. It does all this work I was doing before, but without me, and more importantly...better than me.

This new matchmaking service is responsible for all the stuff that happens with our game servers. It creates new ones when needed, shuts down old ones. When a student types in a game code, it matches them with the correct server. All the complexity of managing a group of game servers, it handles!

Working on this project was challenging. There's a lot of moving parts to making this work, but it's ready now and live!

So what this means for you is one thing: better network reliability!

Now that the matchmaker scales up and down the servers, I don't have to anymore. This means I don't have to guess about how much usage Gimkit will have. The good news is that the matchmaker doesn't guess either. Instead, it looks at how many people are using Gimkit and scales enough servers appropriately.

There have been times where there was more usage than I was anticipating, so servers got crowded and students got booted/kicked out. That shouldn't happen anymore! The matchmaker will make sure that no server is getting too much usage, and if necessary, create new servers to ease the load.

Reliability is really important — it's super frustrating when all of your students are in a game, and a few of them just randomly get disconnected. This new matchmaker ensures we've done all that we can, so the only remaining variables are devices and networks.

Because of this, all games in Gimkit should be much more reliable now! From the games you play in class to the assignments students complete as homework.

As we've grown, it's felt like we were doing stuff just get something to work. This step feels good and different in a way because it's not just about getting something to work right now, but getting it to work in the future.