Skip to content

Backend C++ Developer

On-site
  • Limassol, Lemesos, Cyprus
IT

Job description

Scorewarrior is a game developer and publisher from Limassol, Cyprus. The company is focused on the 4X strategy genre with an ambitious goal to grow it’s hit game Total Battle to become the No.1 strategy game in the world. Our team consists of 140+ passionate, talented, self-demanding, and constantly developing professionals who love making high-quality games.


Our mission: unite and excite people all over the world.


Our team is looking for a developer with confident knowledge of C++ and design principles to work on creating new game features for a large-scale multiplayer project with long-term gameplay.

Our game project has a code base of ~300k SLOC and consists of multiple services running in several hundred instances. The game services are a sharded system for horizontal scaling.

We're constantly developing new game mechanics, and the project is continuing to grow.

Our team's objective and the challenge they face is to create an outstanding technical design that ensures quality, flexibility, and simplicity in the development of in-game features.


Tasks:

  • Designing and developing new game mechanics. Developing a good API.
  • Designing and developing our library (engine) components.
  • Writing unit & integration tests.
  • Developing tools and scripts for automating development processes.
  • Reviewing the code and design of game mechanics.
  • Redesigning and refactoring game mechanics, and eliminating technical debt.

Job requirements

Requirements:

  • Good soft-skills and initiative.
  • Experience working with C++ for at least 3 years in a product-oriented company.
  • Knowledge of design principles, patterns, and their applicability.
  • An understanding of network basics (TCP/IP) and protocols (any RPC, HTTP).
  • Basic knowledge of relational databases and SQL.
  • Basic knowledge of multithreading.
  • Proficiency in Linux.
  • Knowledge or a willingness to learn Python for developing tools and automation.


The following would also be to your advantage:

  • Having samples of code that you can show us.
  • Knowledge of different back-end architectures.
  • Good knowledge of C++ development practices (similar to C++ Core Guidelines).
  • Practical experience in creating designs for large-scale features or systems.
  • Knowledge of other high-level programming languages (for general awareness).


We use:

  • C++20, Clang, and CMake.
  • Boost — only for the library, not for game code.
  • PostgreSQL.
  • GitLab, TeamCity, Ansible.
  • SonarQube, Clang-Tidy, Clang-Format.
  • Onboarding, coding conventions.
  • Python for utilities.
  • Linux.


Our technical developments:

  • A library/framework of ready-made solutions for creating game features.
  • ORM — allows us not to have to write code for saving to the DB.
  • A code generator for a binary RPC protocol and ORM.
  • A pub/sub event system for game clients.
  • Telemetry that allows for real-time product status tracking (through Grafana).
  • An expression interpreter for flexibility in game configuration.
  • HotReload environment, with everyday game updates.
  • Sync and Async network designs.
  • Internal Event System.
  • Internal persistent and transactional message system.
  • R-tree based world map.


What we offer and our benefits:

  • The best team in the world!
  • An excellent remuneration package, including a 13th salary.
  • Full-coverage relocation for you and your family to Cyprus (Limassol).
  • A modern and sunny office space close to the sea.
  • Private health insurance for you and your family members.
  • A monthly school allowance for your children at pre-school and school-age.
  • Lunch compensation.
  • Personal development opportunities paid for by the company: professional and language courses, books, etc.
  • Bonuses for outstanding results, years worked, getting married, and the birth of a child.
  • Friendly monthly office parties and epic, annual offsite company birthday and Christmas parties.

or

Apply with Linkedin unavailable