Victor Lemeshev, Senior Backend Developer


Since early childhood I wanted to be a game developer. It all started with a Spectrum ZX 128K and never ended.


Having played a bit, I started to wonder how to make my own games. Since there were no dedicated game design courses in Russia at the time, I went to study applied mathematics, then to graduate school, and then got carried away to applied mechanics… After my PhD thesis I almost ended up doing science instead of games, but luckily, I got a glimpse of a job in game development and decided to go for it.

It started in 2010 with a browser game backend written in various fad-du-jour languages and tools - node.js, Redis, and MongoDB (yeah, because it is “web-scale”). After few years and couple of relatively large projects I’ve moved to an <censored> international team that was doing mobile games. I’ve got everything I expected from enterprise and even more - Java, AWS experience, high-load projects, big teams. And an infinite amount of boredom, since corporate game development appeared to be quite inflexible and dull. So, after a while I started to wonder if game development in big companies is really that much fun.

Enter Rovio. On my very first interview I noticed that people here are really open and friendly (don’t listen to stuff about “too-distant” Finns), I had positive recommendations from my colleagues who knew about Rovio’s internals and after some interrogation I’ve been accepted to the flock. What’s more, the team I was joining is doing very interesting games both gameplay and technology-wise. 

Here in Rovio’s Battle Studio, my team is working on a prototype for an upcoming game. For me this means writing scalable stateful real-time servers with custom network protocol in C++ and client-side networking stuff in Unity/C#. We use quite a rich tech stack, including tight AWS integration and several databases.

What I personally like most about my job is that I can always expand in new directions, when there is a need for that. The roles here are flexible and I can do client-side stuff when needed, and implement features completely, from feature design to backend to user-visible stuff. The team I’m working with is really talented and motivated so we are getting along really well and that helps with my job a lot. It’s really a lot easier being productive when you are surrounded by nice people. Also, the game we are building is quite feature rich and our game designer has a vivid imagination so there is never a shortage of fun and challenging tasks.

There are things that I don’t like to do – like preparing build machines and setting up orchestration, but there is no pressure there either. Sometimes you just have to do things because you know they should be done for the team to be productive, much like in a startup. But, unlike a startup, there are a lot of experienced people who can help with advice or ready-made recipes, so routine and not-so-fun things don’t bother me too much.