з/п не указана
Ярославль
улица Городской Вал 1А
улица Городской Вал 1А
От 1 года до 3 лет
Мы разрабатываем интеллектуальную поисковую систему нового поколения. Наша цель - внедрить технологии искусственного интеллекта для поиска по большим данным. Ищем разработчика, который поможет нам сделать поиск быстрым, релевантным и «понимающим» смысл запросов.
Задачи, которые Вам предстоит решать:
- Разработка бэкенда: Проектирование и реализация API для поискового сервиса (Java Spring / Python FastAPI)
- Поисковые алгоритмы: Интеграция и настройка поисковых движков (Elasticsearch, OpenSearch или Solr)
- Внедрение AI: Работа с NLP-моделями для семантического поиска, векторизации запросов и ранжирования выдачи (RAG, Embeddings)
- Оптимизация: Ускорение обработки запросов, работа с высокими нагрузками и большими объемами данных
- Качество кода: Покрытие кода тестами (Unit/Integration), участие в Code Review
- Взаимодействие: Работа в команде с аналитиками и ML-инженерами (консультирование пользователей не входит в задачи, но понимание предметной области поможет сделать продукт лучше)
Мы ожидаем от Вас:
- Опыт: От 1–3 лет коммерческой разработки на Java или Python
- Стек:
- Java: Spring Boot, Hibernate, Multithreading
- Python: FastAPI/Django, Pandas, опыт работы с ML-библиотеками (scikit-learn, transformers) будет плюсом
- Базы данных: Уверенное знание SQL (PostgreSQL), опыт работы с NoSQL решениями
- Поиск: Понимание принципов работы полнотекстового поиска (индексы, токенизация, релевантность)
- Инструменты: Git, Docker, CI/CD
- Английский язык: Чтение технической документации (уровень B1+)
Будет преимуществом:
- Опыт работы с векторными базами данных (Milvus, Pinecone, pgvector)
- Понимание принципов работы LLM и генеративных моделей
- Опыт оптимизации высоконагруженных систем
Мы предлагаем:
- Работа над реальным продуктом с использованием современных AI-технологий
- Широкая возможность профессионального развития и карьерного роста
- Обучение, наставник на период на период ввода в должность
- Заработная плата обсуждается индивидуально по результатам собеседования