Java Developer
Проект
Внедрение CRM
Роль
Java Developer
Грейд
Senior
Требования
Ищем Ведущего Java Backend-разработчика для развития корпоративного продукта: серверные API, данные, внешние интеграции, контейнерные среды и AI-функции.
Хотим видеть в команде самостоятельного инженера с опытом работы от 4-5 лет со всем backend-контуром: от обсуждения потребностей с заказчиком до реализации и запуска.
Контекст работы - “внутренний стартап” : высокие темпы, постоянное прототипирование, смена требований, накопление тех долга. Если специалиста это драйвит и заряжает, он- наш кандидат!
Чем предстоит заниматься:
- Развивать архитектуру модульного backend-приложения, REST API и бизнес-логику, включая валидацию, обработку ошибок и документацию;
- Проектировать модели данных и миграции, оптимизировать запросы и кеширование;
- Развивать аутентификацию, авторизацию и ролевую модель; контролировать доступ к внешним данным и управлять подключениями;
- Программно управлять контейнерными средами: от создания и ожидания готовности до обработки сбоев и освобождения ресурсов;
- Развивать AI-функции: потоковые диалоги, хранение истории, сокращение контекста, агентные инструменты и RAG — от подготовки данных до использования найденного контекста в ответах;
- Обеспечивать проверку прав, согласованность состояния и обработку ошибок при выполнении удалённых операций и вызовах инструментов;
- Писать тесты, диагностировать production-проблемы, развивать наблюдаемость, согласовывать API с frontend-разработчиками.
Обязательные технические требования:
- Уверенное владение Java, опыт production-разработки на Spring Boot и готовность работать с Java 21 и Spring Boot 3.5;
- Опыт проектирования архитектуры и REST API, самостоятельного принятия технических решений и развития существующей кодовой базы;
- Знание Spring MVC, Spring Security, Spring Data JPA/Hibernate, валидации запросов и документирования API через OpenAPI;
- Практический опыт PostgreSQL, SQL и Liquibase; понимание транзакций, индексов, оптимизации запросов, кеширования и пулов подключений;
- Опыт подключения внешних реляционных источников, включая MS SQL Server, и разграничения доступа к данным;
- Опыт реализации аутентификации и авторизации с JWT, OAuth2 и OIDC/SSO;
- Владение Maven и Git; опыт OpenFeign для HTTP-интеграций, JGit для работы с репозиториями, MapStruct для преобразования объектов и Ehcache для кеширования;
- Практический опыт Docker и программного управления контейнерами через docker-java;
- Знание Docker Compose, Docker Swarm, Traefik и GitLab CI на уровне настройки окружения, понимания сборки и развёртывания, диагностики проблем;
- Практический опыт LLM API и LangChain4j: потоковые ответы через SSE, история диалогов и управление контекстом;
- Опыт построения RAG, работы с эмбеддингами и векторным поиском в Qdrant;
- Опыт агентных сценариев, вызова инструментов и MCP-интеграций с проверкой прав и обработкой ошибок;
- Опыт модульного и интеграционного тестирования с JUnit и Testcontainers, включая проверки с базами данных;
- Навыки диагностики по логам, метрикам и трассировкам с использованием Actuator, Micrometer, OpenTelemetry и OTLP; понимание трассировки AI-вызовов;
- Понимание React и TypeScript на уровне согласования API-контрактов и совместной диагностики frontend/backend;
- Понимание специфики корпоративного ПО для внешних заказчиков: ролевой модели и безопасности, интеграций с их ИТ-ландшафтом, требований к надёжности и влияния изменений на процессы пользователей
Что важно:
- Уметь общаться с бизнес-заказчиками, выявлять реальную потребность за первоначальным запросом, уточнять требования, объяснять варианты решения и переводить бизнес-задачи в техническую реализацию;
- Готовность работать итерационно: сформулировать гипотезу, обсудить ее, проверить, скорректировать и двигаться дальше;
- Самостоятельно прорабатывать задачи, проверять гипотезы и учитывать обратную связь, ценим не способность безошибочно угадать решение с первого раза, а способность осмысленно искать его вместе с командой;
- Декомпозировать работу, оценивать сроки, согласовывать приоритеты и своевременно сообщать о рисках и необходимости помощи;
- Отвечать за результат до эксплуатации, учитывать пограничные сценарии и последствия изменений;
- Аргументировать решения, слышать коллег, конструктивно давать и принимать обратную связь;
- Проводить code review, делиться знаниями и помогать другим разработчикам;
- Находить баланс между пользой для пользователя, качеством, сложностью реализации, техническим долгом и сроками.
Технологический стек:
- Java 21, Spring Boot 3.5, PostgreSQL, Hibernate, Liquibase, Maven, OpenFeign, MapStruct, Ehcache, JUnit, Testcontainers.
- LangChain4j, LLM API, MCP, Qdrant, RAG, SSE.
- Docker, Docker Compose, Docker Swarm, Traefik, GitLab CI, Actuator, Micrometer, OpenTelemetry, OTLP.
Дополнительные условия
Локация: РФ, РБ
Ставка: до 2000-2100 + НДС
Важные условия работы: через 4-6 месяцев переход в штат заказчика (заказчик под NDA)
Важно!
При отправке кандидата приложите информацию:
- ФИО
- Дата рождения
- Локация
- Грейд
- Рейт (ставка/час)
- Возможная дата старта на новый проект
- Планы на отпуск в ближайшие 3 месяца
- Штатный/партнерский/рынок
- Скрининг по заявленным требованиям к вакансии (проставить +-)