Разработчик поискового рантайма в Search-as-a-Service (C++)
От года • Москва • Офис
SaaS (Search-as-a-Service) — общая поисковая платформа в Яндексе. Мы создаём технологии, благодаря которым другие команды получают готовый полнотекстовый поиск, key-value-хранилище (eventually consistent) или kNN — и не тратят месяцы на разработку и поддержку собственного решения. Сегодня платформой пользуются сотни сервисов компании, суммарный объём поисковых индексов исчисляется петабайтами, а суммарный RPS — несколькими миллионов.
Поисковый рантайм — сердце SaaS. Это сложная распределённая система, которая принимает и маршрутизирует запросы, собирает документы из разных источников, фильтрует и ранжирует их в несколько стадий и возвращает результат пользователю. Всё это — под высоким RPS и в условиях частичных отказов: потери шарда, деградации соседних сервисов или выхода из строя целого дата-центра. От рантайма напрямую зависит, насколько быстро работает поиск и сколько ресурсов уходит на обработку каждого запроса.
При этом рантайм должен быть универсальным: поддерживать разные типы поисковых структур данных и стадии исполнения запроса. Главная сложность — совместить гибкость и эффективность, чтобы новые структуры и стадии внедрялись без существенного изменения кодовой базы, но при этом каждый запрос укладывался в жёсткие требования по времени и ресурсам.
С развитием AI поиск переживает тихую революцию: модели ранжирования становятся тяжелее, появляются новые источники данных и подходы к отбору кандидатов на основе LLM, а сам поиск становится фундаментом для RAG-систем и AI-агентов. Это диктует новые требования к рантайму и открывает множество технических задач.
Впереди — большая инженерная работа. Сейчас удачный момент, чтобы присоединиться к нам и повлиять на то, каким станет рантайм.
Какие задачи вас ждут
- Разработка логики исполнения поисковых запросов
Вам предстоит проектировать общий механизм исполнения запросов, который устроен как граф стадий: доступ к инвертированному индексу, фильтрация по атрибутам, ранжирование и т. д. Каждая стадия может выполняться отдельным сервисом, чтобы гибко масштабироваться за пределы одного бэкенда. При этом система должна надёжно работать в условиях отказов: корректно деградировать при потере шардов, осознанно выбирать стратегию частичного ответа, балансировать между полнотой результата и скоростью обработки запросов.
- Развитие технологий поискового рантайма
Мы строим систему, предоставляющую единую модель работы с различными типами поисковых индексов. Сегодня рантайм уже поддерживает классический инвертированный индекс, HNSW-графы, KD-деревья и другие структуры данных. Вы будете развивать эти технологии и внедрять новые, выжимая максимум из доступного железа. И всё это — в многопоточной распределённой системе, от которой уже зависят сотни продуктовых сервисов.
- Создание SDK и инструментов для работы с рантаймом
Чтобы другие команды решали свои продуктовые задачи, а не погружались в устройство поиска, вам предстоит развивать экосистему рантайма. Вы будете разрабатывать удобный SDK — единый интерфейс для отправки поисковых запросов, который упрощает интеграцию, скрывает распределённую природу системы и её сложность; улучшать средства самостоятельной диагностики — аналог оператора EXPLAIN из классических баз данных, трассировку запросов и логирование ключевых поисковых стадий; и делать многое другое.
- Проектирование языка поисковых запросов
Сегодня поисковые запросы описываются набором CGI-параметров. В перспективе мы хотим прийти к полноценному языку запросов — и у вас будет возможность спроектировать его с нуля: от грамматики и планировщика до исполнителя.
Больше о бэкенде в Яндексе — в канале Yandex for Backend
Мы ждём, что вы
- Уверенно владеете C++ и хотите на нём писать — это основной язык рантайма
- Хорошо знаете классические алгоритмы и структуры данных, умеете выбирать их под задачу
- Глубоко разбираетесь в многопоточном программировании: знаете модели памяти, примитивы синхронизации, lock-free-структуры и алгоритмы, понимаете природу гонок и умеете их предотвращать
- Понимаете устройство Linux: процессы и потоки, управление памятью, сеть
- Используете инструменты профилирования и трассировки
- Разрабатывали распределённые системы: понимаете, как живут сервисы под нагрузкой и какие бывают точки отказа
Будет плюсом, если вы
- Понимаете, как устроены поисковые системы: инвертированные индексы, векторный поиск, генерация кандидатов, ранжирование
- Оптимизировали производительность на низком уровне: работали с кешами CPU, использовали SIMD
- Работали с системами под высокой нагрузкой и с жёсткими требованиями к времени обработки запросов
- Проектировали DSL, языки запросов, парсеры или планировщики исполнения
Узнать больше
Бенефиты работы в Яндексе
Расширенная медицинская страховка начинает работать с первого месяца в Яндексе. В неё входят:
Базовые услуги
- Плановая помощь и неотложная за рубежом, страхование от несчастных случаев для любителей активного отдыха и лечение критических заболеваний.
Ментальное здоровье
- Врачи в клиниках по ДМС, онлайн-консультации с психологами. А также психотерапия в офисах, где есть кабинет психотерапевта.
Ежегодные чекапы
- Мы за превентивную заботу о здоровье, поэтому по ДМС можно проходить чекапы и регулярно вакцинироваться.
Больничный
- 30 дней в году оплачиваются — вы получите полную зарплату, как будто не болели.
Стоматология
- Плановые процедуры, профессиональная чистка и экстренная помощь за рубежом.
Коррекция зрения
- После года работы ДМС покрывает коррекцию зрения и хирургическое лечение косоглазия.
Терапевты в офисах
- Если почувствовали себя неважно, можно обратиться в кабинет врача-терапевта, такие есть во всех крупных офисах Яндекса.
Ведение беременности и роды
- Оплачиваем ведение беременности и роды для сотрудниц и жён сотрудников, которые с нами более двух лет.
Страховка для родственников по системе 80/20: мы оплачиваем 80% стоимости ДМС для детей и супругов, вы — остальные 20%. В страховку входит всё то же самое, что и у вас.
Больше о бенефитах
Все интересные вам вакансии в одном профиле
Разработчик бэкенда
Поиск с Алисой
Разработчик бэкенда Поиск с Алисой