AlternativaPlatform is a multiplayer online games and services developer.
We bring joyful experiences and happiness to our users all around the world.

Our flagship project – Tanki Online – has a monthly audience of 5 million players from 50 countries. It had been acknowledged as the most popular browser game of 2013 and 2014 in Russia.

Russian, English, German, Brazilian and Chinese versions have been already launched and are now expanding. We are working on the new version of Tanki Online, which will feature improved graphics and support for mobile devices.

Company history

We aim to be able to provide beneficial entertainment for one billion people each month by 2020.

To achieve that, we are planning to release 15 good games supporting 25 languages within a consistent ecosystem, a new type of social network.

Our mission is to help our users develop personal qualities, skills and knowledge, find new friends and connect with their family through gaming, both online and offline.

We are currently looking for talented professionals who share our values and meet our requirements to make them best job offers.

What we offer

  • Material Goods
    • Good salary
    • Bonuses based on results of the work
  • Training
    • English courses (at the office)
    • Conference trips
    • Any training materials (books, sites, etc.)
  • Healthy Lifestyle
    • Healthy food at the office
    • Extended health insurance
    • Free gym and swimming pool
    • Massage at the office
  • Interesting Job
    • Ambitious goal, we are driven by a desire to do something really worthwhile
    • Constant feedback from a huge audience
    • Challenging tasks and sophisticated technologies
  • Organization
    • You define your work space (hardware, software), comfortable chairs
    • Ability to work remotely
    • Flexible work schedule
    • We actively use the latest engineering practices: GitHub Flow, TDD, obligatory code review, DevOps (ansible, vagrant)

Company policies and values

View media

We are in dire need of:

Backend programmers


  • Practical experience with Linux platforms.
  • Working knowledge of Git and Maven.
  • Strong knowledge of Java, at least 2 year experience.
  • Working knowledge of databases and knowledge of SQL, Hibernate and PostgreSQL would be an advantage.
  • Understanding of TDD, testing processes, experience with JUnit/TestNG unit testing.
  • Working experience with highload servers, understanding of multithread programming, profiling, optimization.
  • Working experience with WEB GUI (GWT, Vaadin) would be an advantage.
  • Knowledge of NoSQL DB (Redis) or Hive would be an advantage.
Test tasks

1. 3D engine

You should implement a simple server-side 3D engine for a MMO game (without a visual representation).

The engine should download a 3D scene and allow to determine a crossing of set rays with geometry (so called "ray casting"). The scene includes objects, each of which is composed of triangular facets. Triangles are two-sided, i.e. a ray may cross a triangle from any side.

A ray is described by an origin point and a direction vector, a crossing of a ray with the first object (if any exists) should be determined.

Supposed amount of objects in the scene is 1 000 – 100 000, a large amount of rays should be processed in efficient way in real time. "Efficient" here implies, first of all, minimizing latency between requests and responses (priority of latency over throughput).

The scene is set in the form of xml (xml-scheme, scene examples shall be attached).

A running engine should read from stdin strings of the following type: origin – coordinates of a ray start point, direction – a direction vector. In general case vectors may be unnormalized:




The result should be put to stdout in the following format:


If there are no crossings, the "objectName" should not be printed.

Example of an output:


No other information shall be put to stdout, as it is supposed that the output may be listened by some other program. Errors should be printed to stderr, the format is free.

The solution should consume file name of scene as input parameter, e. g.:

java -jar engine.jar scene.xml

In attached files:

scene.xsd — a XML-scheme

example1.xml — an example of a simple scene (one pyramid)

example2.xml — a scene with 48 objects

2. Refactoring

Class for refactoring in attached files —

Our expectations from the execution of the tasks:

  • OOP approach.
  • TDD approach.
  • Use of maven or gradle.
  • Simple, clear and logical code.

Requirements to the execution of the tasks:

  • Java or C#.
  • All sources are on GitHub.
  • Binary assemblies excluded.

Download files

Front-end programmers


  • Working knowledge of Git and Maven.
  • Strong knowledge of C# and at least 2 year experience.
  • Experience in developing on Unity is desirable.
  • Understanding of TDD, testing processes, unit testing.
  • Understanding of multithread programming, profiling, optimization.
  • Working experience in game development would be an advantage.
Test task

Make a Pac-Man game:

  • 3D-graphics.
  • AI-controlled enemies (ghosts).
  • Possibilities to add new levels without a programmer.
  • Possibility to change game settings: number of enemies, speed of enemies/player, etc.


  • Saving/loading of the game.
  • Other additions on your opinion.

Our expectations from the execution of the task:

  • Simple, clear and logical code.
  • Operability under different platforms (PC, smartphone, tablet).
  • Precision of code and game design.
  • If third-party solutions (resources, algorithms) are used, it is necessary to indicate their source.

Requirements to the execution of the tasks:

  • All sources are on GitHub.
  • Binary assemblies excluded.

A job with AlternativaPlatform may be a dream to come true! If your profession is not on the list but you are sure we need each other – then feel free to let us know.

Requirements to yourself and your colleagues

  • Passion for your job, desire to realize your hidden potential and master your profession, become a happy person.
  • Systemic approach to workflow organization, planning, and communications.
  • Honesty, open mind, ability to listen and to be heard, sociability.
  • Competence in the chosen line of work.
  • Motivating dissatisfaction with results, constant personal development and desire to teach others.
  • Caring about users and colleagues.
  • Essential spoken and written language skills.

How to join?

If you would like to work with us, share our values and meet our requirements – tell us about yourself at

Question tips for your story: What are my achievements I am proud of and why? What is my attitude to my job? What was the last challenging and exciting thing I've done? Why am I better than the others?

We often require suitable applicants to complete a test task and tend to torture them in other ways. The best of the best will get an offer they will not be able to refuse.