О компании
Развиваем платформу, в ядро которой встраиваются возможности генеративного ИИ. Нужен бэкенд-разработчик уровня Middle/Senior, который не просто пишет на Java, но и глубоко понимает механику работы LLM, умеет строить RAG-пайплайны и проектировать сложных агентов.
Обязанности
- Проектирование и разработка микросервисной архитектуры на Java 17+ с использованием Spring Boot (MVC, Data JPA, Security)
- Построение пайплайнов Retrieval-Augmented Generation (RAG): от парсинга сырых данных до индексации эмбеддингов
- Разработка и поддержка векторных баз данных Qdrant: проектирование схем шардирования, настройка гибридного поиска (BM25 + Dense Vectors) и оптимизация запросов
- Создание мультиагентных систем на базе LangChain/LangGraph для автоматизации бизнес-процессов
- Глубокий промт-инжиниринг: написание промптов под разные сценарии одного агента, техники Few-shot, Chain-of-Thought, структурированный вывод (JSON mode)
- Отладка семантики моделей: снижение энтропии ответов, управление вариативностью через параметры инференса, механизмы self-healing при деградации внешних провайдеров LLM
- Оптимизация производительности PostgreSQL: тюнинг сложных SQL-запросов, работа с индексами (B-tree, GIN/GIST, триграммы), проектирование транзакционной изоляции
- Вынос вычислений в контейнерную среду: Docker, Kubernetes (Helm), построение отказоустойчивых CI/CD-конвейеров в GitLab CI/Jenkins
Требования
- Уверенное владение Java 17+, понимание многопоточности (CompletableFuture, виртуальные потоки Project Loom — будет плюсом)
- Экспертный уровень владения стеком Spring: жизненный цикл бинов, аспектно-ориентированное программирование, тонкая настройка пулов соединений БД и параметров безопасности
- Опыт проектирования реляционных моделей в PostgreSQL, умение читать EXPLAIN ANALYZE, эффективные миграции (Liquibase/Flyway)
- Практический опыт работы с векторными СУБД (Qdrant) или Weaviate/Pinecone/Milvus, понимание метрик близости (Cosine Similarity, Dot Product, Euclidean Distance)
- Опыт разработки с библиотеками LangChain и/или LangGraph, построение графов состояний, интеграция внешних инструментов (tool calling)
- Навык написания эффективных промптов (Prompt Engineering) и управления поведением LLM без изменения весов модели
- Опыт работы с Docker и Kubernetes (манифесты, Helm-чарты), знание Linux shell на уровне уверенного пользователя
- Настроенные процессы CI/CD (GitLab CI или Jenkins): сборка Maven/Gradle, покрытие тестами (JUnit 5, Testcontainers), статический анализ кода