Понимание устройства операционных систем и их взаимодействия с JVM;
Глубокое знание Java и принципов ООП разработки;
Иметь представления о сетевом взаимодействии – знать о существовании OSI и примерах реализации в реальной жизни, понимание stateless и stateful подходов в реализации протоколов, хорошо понимать разницу между HTTP и TCP;
Хорошие знание и опыт работы со Spring; Уверенное знание SQL баз данных: ACID properties, transaction isolation levels и пр;
Опыт работы с NoSQL – будет плюсом;
Самостоятельный опыт в поднятии архитектуры микросервисов в новом проекте – большой плюс;
Уверенное владение одной из систем контроля версий, предпочтительно Git;
Опыт работы с Docker;
Умение и желание писать хорошие unit- тесты;
Опыт работы со статическими анализаторами (Sonarqube);
Опыт работы с test containers будет плюсом;
Желание и готовность выступать ментором для коллег, а также проводить code review;
Ответственность, умение работать в команде;
Hard skills:
Опыт разработки на Java не менее 3 лет;
Знание и опыт разработки Spring Framework, Spring Boot;
Опыт использования ORM (Hibernate, JPA), Query Builder;
Знание и опыт работы с SQL и NoSQL (PostgreSQL, MongoDB, Redis);
Умение конструировать SQL-запросы, понимание того, как работают джойны, индексы и ключи;
Опыт работы с Kafka, понимание в: Topic, Partition, Producer, Consumer, Group;