Обязанности:
- Проектировать и развивать архитектуру платформы и доменную модель для заявок, биллинга, платежей, лицевых счетов и пропускных систем.
- Принимать ключевые технические решения, оценивать trade-offs и доводить решения до реализации.
- Разрабатывать и поддерживать бизнес-логику REST API и сопутствующих сервисов.
- Работать с мультитенантной архитектурой, обеспечивая изоляцию данных и предсказуемую работу под нагрузкой.
- Проектировать и оптимизировать доступ к данным, запросы и эволюцию схемы.
- Развивать асинхронные сценарии, событийную обработку, кэширование и работу с файловым хранилищем.
- Проектировать и сопровождать интеграции с внешними системами.
- Задавать стандарты тестирования и качества кода, проводить код-ревью, менторить разработчиков и участвовать в найме и онбординге.
- Устранять проблемы производительности и надёжности, участвовать в разборе инцидентов.
Требования:
- Коммерческий опыт разработки на Java от 5 лет, владение Java 17+.
- Экспертное знание Spring Boot, Spring MVC, Spring Data и Spring Security.
- Глубокое знание PostgreSQL, включая проектирование схем, SQL, транзакции, индексы и планы запросов.
- Сильный опыт с Hibernate/JPA и понимание типичных проблем ORM.
- Опыт проектирования и эксплуатации систем в production: масштабирование, отказоустойчивость и наблюдаемость.
- Опыт работы с Kafka или аналогами, Redis или аналогами, REST API, OpenAPI/Swagger.
- Опыт автоматического тестирования, code review, CI/CD, Git и многомодульных проектов на Maven.
- Самостоятельность и способность вести задачи от обсуждения требований до релиза.
Будет плюсом: опыт мультитенантных систем и SaaS-архитектуры; jOOQ, Liquibase, MapStruct, Lombok, state machine, Kotlin, Testcontainers, MinIO/S3, Keycloak/OIDC, JWT, Docker, GitLab CI, Prometheus, Jaeger или Zipkin.