I’m Nikolai and I’ve been with Kolibri Games for about one and a half years now.
In what follows I’ll walk you through my average day as a DevOps Engineer and try to shed some light on what our Team actually works on.
Our day starts with a daily standup. During the meeting, the DevOps Team discusses tasks for the day, any issues that came up and whether the build pipeline is working correctly.
The “build pipeline” is a sequence of steps every “build” — essentially a version of our game — passes through. In this sequence, every line of code and every asset that our artists have drawn is combined into a package that we can distribute to our players or test internally. Every build is passed through our repository Gitlab, our automation server Jenkins, and after several more steps eventually ends up on our game engine Unity or as native build ready to be deployed to the Appstore or Google Play.
A well-functioning build pipeline is absolutely vital in successfully maintaining a tight LiveOps schedule with weekly updates.
A build fails!
When a build fails, we are the first line of defense. To find the error we investigate our logs for changes in the code to get the pipeline on track as fast as possible.
Where did we add or alter a line that could have caused the current outage?
I spend some time customizing the build process. Our Developers and other teams use the build pipeline quite extensively. Therefore, we get a lot of requests for customization of processes, simply to make work more efficient.
This includes, for example, creating custom build pipelines or implementing performance metrics for build loading times, allowing our Developers or QA Testers to work faster.
I work on improving the Jenkins pipeline performance. Jenkins is our automation server, that helps automate parts of our development process.
Since this is quite a complex and extensive system that many teams rely on, it’s important that it runs and performs well and has fast build times.
There are different stages to the process and we analyze every step to identify and eliminate potential bottlenecks.
We have an infrastructure meeting. We constantly need to make sure that our systems and infrastructure are up to date and performing as well as possible. For example, if a new iOS or Android version releases, we need to adapt our system to that change. In addition, we need to make sure that our system is available and scalable. As we are growing, it’s important that the pipeline runs smoothly despite increased access.
I finish the day off with some integration tasks.
Oftentimes, we have to integrate new technology like third-party services into our game — Helpshift for example, a service that facilitates player support. These integrations are challenging since this new technology has to be integrated into an already existing system without breaking anything.
Eventually, what our job boils down to is also the mission statement of the Kolibri Games DevOps Team: providing reliable IT solutions on our journey to creating world-class games.