Описание вакансии
Какие задачи необходимо решать
- Разработка новых модулей существующего продукта (back-end);
- Проведение код-ревью;
- Оптимизация существующих разработок системы, приведение к актуальным стандартам разработки
Что для этого нужно
- Глубокое понимание Java Core, включая коллекции, потоки, исключения, и многопоточность
- Опыт работы с Spring Boot и Spring MVC
- Понимание жизненного цикла бинов, инъекции зависимостей, и транзакций
- Знание Spring Data для работы с базами данных
- Опыт разработки и поддержки RESTful API
- Понимание принципов HTTP, JSON/XML сериализации
- Опыт работы с SQL и NoSQL базами данных (например, MySQL, PostgreSQL, MongoDB)
- Знание SQL, ORM фреймворков (Hibernate, JPA)
- Опыт работы с Git для управления версиями кода
- Знание процессов CI/CD (Jenkins, GitLab CI, GitHub Actions)
- Опыт написания юнит-тестов и интеграционных тестов (JUnit, Mockito
- Понимание принципов TDD и BDD
- Опыт интеграции с внешними API через REST/SOAP
- Понимание паттернов Circuit Breaker и Retry для повышения устойчивости приложений
- Понимание принципов Слоистой архитектуры (Layered Architecture) и микросервисной архитектуры
- Знание SOLID принципов и их применение в разработке
Дополнительные навыки (желательно):
- Опыт работы с Docker/Kubernetes для контейнеризации приложений
- Базовые знания HTML/CSS/JavaScript для взаимодействия с фронтендом
- Опыт работы с IDE (IntelliJ IDEA, Eclipse)
- Знание инструментов для профилирования и отладки кода