Senior Java Developer
IT-Oneот 5 лет
PostgreSQLJavaDockerGitREST APIKafkaRedisSpring BootKotlinHibernateMavenJPA
Описание
Senior Java Developer в IT-One.
Обязанности
- Проектировать и развивать архитектуру платформы и доменную модель: заявки, биллинг, платежи, лицевые счета, пропускные системы
- Принимать ключевые технические решения, оценивать trade-offs, доводить их до реализации и описывать в виде понятных команде договорённостей
- Разрабатывать и поддерживать бизнес-логику основного REST API и сопутствующих сервисов
- Работать с мультитенантной архитектурой (схема на тенанта), обеспечивая изоляцию данных и предсказуемое поведение под нагрузкой
- Проектировать и оптимизировать слой доступа к данным (Hibernate/JPA + jOOQ), сложные и производительные запросы, эволюцию схемы (Liquibase)
- Развивать асинхронные сценарии и событийную обработку (Kafka), кэширование (Redis/Redisson), работу с файловым хранилищем (S3/MinIO)
- Проектировать и сопровождать интеграции с внешними системами (платёжные шлюзы, СКУД, провайдеры уведомлений)
- Задавать стандарты тестирования и качества кода: unit- и интеграционные тесты (JUnit 5, Testcontainers), Checkstyle, единый code style
- Проводить код-ревью, менторить middle/junior-разработчиков, участвовать в найме и техническом онбординге
- Находить и устранять узкие места в производительности и надёжности; участвовать в разборе инцидентов
Требования
- Коммерческий опыт разработки на Java от 5 лет, уверенное владение современными версиями (17+)
- Экспертное знание экосистемы Spring (Spring Boot, Spring MVC, Spring Data, Spring Security)
- Глубокое знание PostgreSQL: проектирование схем, написание и оптимизация SQL, транзакции, уровни изоляции, индексы, планы запросов
- Сильный опыт с ORM (Hibernate/JPA) — понимание внутреннего устройства, типичных проблем (N+1, кэш, lazy/eager, dirty checking) и способов их решения
- Опыт проектирования и эксплуатации систем на проде: масштабирование, отказоустойчивость, наблюдаемость
- Уверенная работа с асинхронным обменом сообщениями (Kafka или аналог) и кэшированием (Redis или аналог)
- Опыт построения и версионирования REST API, документирование (OpenAPI/Swagger)
- Зрелая инженерная культура: автоматическое тестирование, код-ревью, CI/CD, работа с Git и многомодульными проектами (Maven)
- Способность вести задачу от обсуждения требований до выката, самостоятельность в принятии решений
Будет плюсом
- Опыт с мультитенантными системами / SaaS-архитектурой
- jOOQ, Liquibase, MapStruct, Lombok, конечные автоматы (state machine) для жизненного цикла сущностей
- Kotlin (в проекте используется для тестов), Testcontainers
- MinIO/S3, Keycloak/OIDC, JWT
- Docker, GitLab CI, мониторинг и трейсинг (Prometheus, Jaeger/Zipkin)