Our nearest goal is to scale up to support the load of more than 100000 simultaneously connected users.
We’re running agile process, namely Kanban, on a weekly release cadence in fast-paced environment, so our product changes fast, just like a startup! We use Jira for task management, Bitbucket + Git as VCS, TeamCity for CI and automated deployments, Splunk for monitoring. We are coding in java 8 (switching to java 11 soon) and use Spring Boot as core framework, Jackson for JSON processing, a bit of Thymeleaf for templating, Junit5 + AssertJ + Mockito for tests.
- developing new features, mainly new WebSocket services;
- researching and trying out new frameworks, integrations;
- improving existing components to provide better performance and reliability;
- maintaining, documenting and improving existing code base;
- writing unit and integration tests;
- participation in team activities along with communication with client.
- knowledge of algorithms and data structures;
- solid knowledge of Core Java: Maps and Collections, Exceptions, Streams, lambda-functions, etc.;
- desire to write, optimize, document and maintain code and thoroughly cover it with tests;
- willingness and energy to take your ideas all the way from proof of concept to production-proof code;
- general responsibility and result-oriented mindset;
- desire to achieve goals as a team, willingness to help colleagues and ability to give/take criticism;
- English language B1 and higher to be able to communicate with the team and client.
Nice to have:
- Experience in concurrent programming: Queues, Threads, Executors, etc.;
- Understanding of distributed computing;
- Experience with asynchronous communications;
- Fundamentals of Linux knowledge;
- Certain interest in DevOps culture.