Position: Java developer
Company: Artkai
Category: Java
Experience required: 3y
English level: intermediate

We need 
— Experience in developing server applications in Java for at least 3 years.
— Experience with Spring framework 
— Experience in developing multi-threaded applications and experience with java.util.concurrent.
— Must have experience with similar project to ours — technologies related to voice communications, telephony.
— Knowledge of the patterns of creating fault-tolerant systems and the ability to apply them in practice.
— Understanding the operating principles and limitations of distributed systems.
— Ability to write clean code and perform continuous refactoring.
— Understanding network performance and network protocols.
— Knowledge of classical algorithms and data structures.
— Knowledge of Linux.
— English verbal — b1 +

We offer: 
* Work in a cool international team
* Remote option (fully or partially)
* Сomfortable office conditions including all modern conveniences
* Good management
* A decent salary level with regular review
* Paid vacation and sick leave

Your duties: 
Take part in the development of audio and video conferencing services. Engage in the design, development and support of servers written in Java. Write efficient and thread-safe code for an application that runs under heavy load. Design the system so that the failure of several servers does not affect the availability of the service. Participate in code-review, help colleagues with the development. Provide hot update service version without down time. Work with distributed systems such as GridGain. Write functional and modular auto tests.