Обязательные требования
Опыт коммерческой разработки на Java версии 11 и выше не менее 4 лет;
Твердое владение основами Java Core, включая коллекции, многопоточное программирование;
Использование библиотек и фреймворков Spring (Spring Boot, Spring Data, Spring Integration, Spring Security);
Уверенные навыки работы с реляционными базами данных (управление пулами соединений, блокировками, транзакциями, соблюдение принципа ACID, оптимизация запросов, чтение планов исполнения);
Наличие опыта работы с брокерами сообщений (например Artemis, ActiveMQ, RabbitMQ, Kafka);
Знакомство с системами контроля версий и методами непрерывной интеграции и деплоя (CI/CD);
Способность грамотно тестировать собственный код: составлять модульные тесты, обеспечивать проверку контрактов и интеграционные проверки;
Развитый навык проведения качественного ревью чужого кода.
Дополнительные требования
Опыт разработки интеграционных тестов с использованием инструментов Testcontainers и WireMock;
Практика миграции схем баз данных с помощью решений вроде Flyway или Liquibase;
Опыт работы с контейнеризацией приложений и оркестратором контейнеров (Docker, Kubernetes, PKS, OpenShift);
Навыки работы с системами мониторинга и визуализации метрик (Prometheus, Grafana);
Наличие опыта проектирования и поддержки сложных распределённых систем;
Умение передавать технические знания коллегам и заниматься техническим наставничеством внутри команды.
Задачи на проекте
Проактивное участие в формировании и совершенствовании архитектурных решений;
Проектирование и реализация взаимодействий с внешними сервисами и системами;
Присоединение к процессу оценки трудоемкости задач и оптимизации рабочего процесса разработки;
Написание высококачественного кода и осуществление peer-review для сервисов на платформе Spring Boot версии 3.4 и выше с использованием Java 17/21;
Создание и сопровождение unit- и интеграционных тестов для всего разрабатываемого функционала;
Поддержка качества продукции путём устранения обнаруженных дефектов и сопровождения тестирования;
Отладка, улучшение производительности и реструктуризация кода на основании результатов нагрузочных испытаний;
Продуктовая поддержка готового функционала на стадии промышленного внедрения;
Регулярное проведение ревью кода, подготовленного коллегами.
Описание проекта и команды
Проект для крупного банка.