Server Programmer: Fascination Of The Unseen

The satisfaction of making a picture perfect secret virtual world without anyone knowing. The thrill of revealing the other side hidden behind all the splendor and vigor. The complexity of being forgotten the better you are at this job.
This is the mysterious allure of a server programmer. Shall we listen to the charms of a server programmer told by gameduo’s Changmin?
notion image

Hello Changmin! The first job is important for a developer and you’ve started it at gameduo.

I had a lot to consider when choosing my first job. As a newcomer who just started learning, the most important aspect for me was the company’s ‘growth’. I found gameduo while scouring many companies and was surprised at how fast they were growing. A lot of traffic was bound to occur with many games being released and played. I thought that such an environment would help a junior developer like myself grow. The more requests to handle, the more there is to learn.

Show off gameduo’s developing culture!

I’d like to boast our team members’ passion for learning. I can’t help but give it my all when everyone around me is so enthusiastic. gameduo provides education assistance costs for books and lectures and I’m making great use of it with my team members. Sometimes I discover technology I’d like to implement or learn about and I have a lot of opportunities to do so since gameduo supports and encourages team members’ growth.
And another thing… (chuckles) When someone finds an error, we don’t blame each other but work together toward a solution so that it doesn’t happen again. We get to find new ways and learn to have more responsibility in the process.

What does a server programmer do at gameduo?

notion image
The most important role is to design the mobile game’s server and maintain it. First, we collaborate with each game project’s client developer and develop an API. An API is a ‘promise’ or ‘signal’ between the server and game client to interact smoothly and share information. A server programmer builds a system for this to work well.
We also manage the cloud infrastructure regarding this information. A cloud floats around in the air. It’s easy to understand it as a virtual storage space for managing game servers and resources. We constantly maintain it to facilitate efficient and smooth management. To make it short, our key role is to safely and efficiently save ingame data and transmit it fast.

What kind of technical efforts are required to manage a server stably?

It’s important to understand the technology currently in use. To give an example with MySQL used at gameduo, it’s absolutely necessary to understand ‘how to create and use table indexes’, ‘when a transaction lock occurs’, ‘how to minimize the entire logic’s deadlock’, etc. It’s the same for ORM. It provides a lot of convenience but the actual query might not go as expected or the Type itself may not be safe at times. I think the stepping stone toward a stable server is to fully understand the technical factors that can affect the actual server and then start developing.
One other point is to automate repetitive work. This really reduces mistakes from manual working and you can work at a much faster pace. You need to take time to study each service’s settings in AWS since there are a lot of automation features there.

What do you think makes the job of a server programmer appealing?

notion image
You don’t visually see the results of server programming and there isn’t much glamorous about it. But that’s what got my attention. The more stable the server environment is, the more people forget about the presence of a ‘server’. On the other hand, you’d think ‘the server’s down’ when there are a lot of mistakes and errors. A stable environment is achieved when I do my job well and the sense of disappearing is quite interesting. A phone’s tiny parts are perfectly in place when you take a close look inside. It’s fascinating to know that when things are worked on well and hidden in their right places, people stop noticing those parts.

Why is the server important in managing games? I’m curious about the difference between a regular server and a game server.

A game has a server in order to save the game’s data permanently. The huge amount of data is transmitted well without loss when a stable server is built. What if a user made a purchase but the product didn’t arrive on time? Or… What if a character you worked hard to level up dropped to level 0 the next day? It would be a nightmare… An unstable server is prone to all sorts of problems. An error free environment and fast speed is a must for users to experience a pleasant game play and this requires an optimized server.
Like a regular server, a game server has to manage data efficiently and transmit it swiftly. The difference is that there’s usually more to ‘write’ than ‘read’ with a game server. Let’s look at online shopping websites. They mostly receive requests to show customers saved data such as products on sale or events. But game servers get requests to add/edit/delete data regarding actions within the game such as obtaining weapons or using items. There’s definitely more to write. Mobile games have a lot of variables and don’t last that long so it’s another big difference since they need a fast and advanced developing system.

Changmin, you must have a lot on your mind as a junior developer. How do you resolve these thoughts?

notion image
Developing has an extremely vast pool of knowledge. More new technology pops up day after day and time is limited… I have a lot of concerns. Rather than lose confidence when I see a genius, I try to focus on myself. A small shortcut, a short code… I try to grow more than yesterday even it’s just a tiny bit. I trust that one day I’ll have made a lot of progress through these small steps and this gives me motivation.
I also try to make what I’ve learned from talented colleagues my own as much as possible. I repeat until it becomes familiar and reflect if there were any problems or areas for improvement. If I continue to successfully do my work at the moment, I feel that the process will gradually lead me to become a good developer.

As the Korean saying goes: ‘There are no answers but there are wrong answers.’ There are numerous ways to look at developing. How do you try to approach developing problems and solve them?

I get new requests all the time when I’m working. I mean it might be easier to just google it but I think a developer needs to look at things from many perspectives. Is this the best option considering our circumstances? I constantly review it and look for a more efficient way. Looking up as many cases as I can, getting tips from Chat-GPT… I try to find technology that can be applied stably in the current system. There isn’t just one way! I always work to make various approaches.

Do you have any experience feeling that you’ve grown while working as a server programmer at gameduo?

notion image
It hasn’t even been a year but I feel I’ve grown immensely. The sheer amount of knowledge I’ve made my own is one huge difference from when I started. Before, I focused mainly on whether the system worked well and if it was completed. Now, I predict what might happen next and think of a solution. I ask myself ‘Can the current infrastructure handle the API design that I implemented?’, ‘Will the concurrency be achieved well?’, ‘Am I making good use of the features that MySQL and Redis provide?’ and the range of my thoughts have definitely expanded.

Now a must ask question to a member of gameduo! Tell us your favorite game.

I like to play FIFA mobile and Wild Rift these days. I tend to feel exhilarated when I compete one on one with other people. Mobile games are short so it’s nice to have a quick match!

Last but not least, what kind of server programmer do you wish to become?

A developer who gives positive energy to colleagues. I’m quite the introvert… (laughs) I’m not good at striking up a conversation but I want to be of help with my developing skills. Like improving the game’s quality in technical terms or automating tasks to make my team’s work efficient. And I want to be a responsible decision maker in the future. I want to be talented enough to answer exactly why a technology should be implemented or not in a persuasive way!
Someone who makes an invisible world perfect and disappears into the shadows. If you feel fascinated by this mystique, why not design a virtual world at gameduo?
gameduo, Inc CEO Seungjun Song, Jaewon Choi, 43, Changeop-ro, Sujeong-gu, Seongnam-si, Gyeonggi-do, Republic of Korea
E-mail : Business Registration Number : 552-86-01407
ⓒ gameduo Korea Corporation All Rights Reserved.