Senior Server Engineer

In 2018, we took a big step as a company as Shanghai became the site for our first game studio outside Helsinki. The goal for our developers in Shanghai and in Helsinki is exactly the same: to create globally appealing games that are played for years and remembered forever. This is our opportunity to bring together the best of two different worlds.
We have now reached a point where we need one more experienced Server Engineer to join our game teams in Shanghai. As a Server Engineer at Supercell, you'll be embedded in a game team, actively contributing to game design and direction. First you will join a new project which later on hopefully becomes a live game. Nevertheless, whether you will be working on a live game or a new project, you'll be responsible for making sure that our tens of millions of daily players get the best, most uninterrupted experience possible.
While our server engineers sit with different game teams, communication is absolutely vital to our success. We frequently share our learnings – both successes and failures – across game teams to make each team better. You must be humble, pragmatic and willing to admit and explain your mistakes. That way, the next time something goes wrong, we'll all be better prepared.
If you have experience of developing live systems and using virtualized computing, and you understand what it means to support a system with large user volumes, in addition to being interested and excited about working in these areas, you might just be the person we're looking for!
Responsibilities
- Design, implementation, deployment and maintenance of highly-scalable and available backends for live games
- Contribute to best-practices on reliability and availability
- Troubleshoot and tune high-volume sharded database systems
- Periodically offer round-the-clock first-line support of the production environments, as part of a rotating on-call duty
- Game teams are typically small, and server engineers will contribute to game design discussions
Requirements
- Enthusiasm towards games in general
- Excellent Java programming skills – minimum of 5 years experience with server-side Java, concurrency handling, and distributed systems
- Good experience with Linux shell and scripting languages
- Database design and implementation skills, and good SQL knowledge
- Familiarity with Cloud computing
- Ability to think clearly under pressure. We aim for minimal downtime in our games, and you are expected to be able to respond to and troubleshoot a wide range of issues in a production environment.
- Being passionate and committed to tasks, and in general an autonomous person with high levels of initiative and energy
- An open and respectful attitude towards others and their work
- Fluent in both English and Chinese
Nice-to-haves
- Knowledge of network protocols and non-blocking IO
- Previous working experience on high-throughput live systems is a big plus. If absent, then at least a solid appreciation of the challenges involved is expected.
- Experience in server development without application servers