Обязанности:
- Spring Boot / Spring Framework — проектирование и развитие монолитных приложений;
- Spring Security — сложные схемы аутентификации и авторизации (OAuth2, JWT, SSO);
- Spring MVC — контроллеры, фильтры, интерсепторы, обработка ошибок;
- Spring Data JPA / Hibernate — глубокое понимание ORM, lifecycle сущностей, N+1, batching, 2nd-level cache;
- Проектирование модульного монолита (package-by-feature, bounded contexts);
- Понимание и применение SOLID, DRY, KISS, паттернов проектирования;
- Разделение слоев: controller / service / domain / persistence;
- Проектирование схем, индексов, сложных транзакций;
- Оптимизация тяжелых запросов и batch-операций;
- Redis — кэширование данных, сессий, синхронизация внутри монолита;
- Разработка и поддержка REST API для внешних и внутренних систем;
- Работа с синхронными интеграциями и асинхронными задачами внутри приложения;
- Управление схемой БД с помощью Liquibase;
- Обратная совместимость изменений (backward compatibility);
- Поддержка версионирования API;
- Архитектура тестирования монолита: unit / integration / e2e;
- Поддержка высокой покрываемости и стабильности regression-тестов;
- DevOps Maven,Gitlab, Базовое понимание CI/CD;
- Менторинг разработчиков;
- Проведение код-ревью;
- Работа с техническим долгом;
- Умение планировать рефакторинг и объяснять его бизнес-ценность.
- Высшее техническое образование;
- Опыт работы: 5+ лет коммерческого опыта разработки на Java;
- Опыт поддержки и развития крупных монолитных production-систем;
- Готовность брать ответственность за архитектурные и технические решения внутри монолита;
- Java 17+ — глубокое понимание JVM, памяти, GC, потоков, профилирования;
- Отличное знание Java Core, коллекций, многопоточности, streams;
- Опыт оптимизации производительности и диагностики проблем в long-running приложениях;
- Глубокое знание реляционных БД;
- Понимание HTTP, CORS, WebSockets.