О компании
SaaS (Search-as-a-Service) — общая поисковая платформа в Яндексе. Предоставляет готовый полнотекстовый поиск, key-value-хранилище (eventually consistent) и kNN. Платформой пользуются сотни сервисов, суммарный объём индексов — петабайты. Команда строит новое поколение поисковой индексации — распределённую систему для работы поисковых и рекомендательных сценариев.
Обязанности
- Разработка общих механизмов индексации: распределённые системы для обработки миллиардов документов, поддержка полной перестройки индекса, потокового режима и гибридных комбинаций, гарантия порядка документов.
- Улучшение эффективности индексации и хранения данных: оптимизация построения индексов на низком уровне, применение и улучшение кодеков сжатия.
- Создание движка векторного поиска: разработка с нуля движка приближённого поиска (kNN) для RAG-систем и AI-агентов.
- Проектирование архитектуры и проведение R&D: участие в формировании ключевых архитектурных решений, исследование и внедрение новых подходов к обработке петабайтов данных.
Требования
- Уверенное владение C++ и желание на нём писать.
- Хорошее знание классических алгоритмов и структур данных.
- Опыт разработки высоконагруженных распределённых систем и понимание паттернов их проектирования.
- Умение писать надёжный и быстрый многопоточный код.
Будет плюсом
- Понимание устройства современных поисковых систем и баз данных, знакомство с внутренностями Lucene, Elasticsearch, Qdrant, ClickHouse.
- Знание принципов работы инвертированных индексов, приближённого поиска и алгоритмов ранжирования.
- Знакомство с SIMD и современными кодеками сжатия.
- Опыт профилирования и оптимизации приложений (CPU-bound и I/O-bound).
- Работа с технологиями потоковой обработки данных (Kafka, Flink) или MapReduce.