Разработчик поискового рантайма в Search-as-a-Service (C++)
Яндекс — технологическая компания, создающая интеллектуальные продукты и сервисы на основе машинного обучения: поиск, беспилотники, облако, образование и десятки других направлений.
Развитие технологий поискового рантайма. Мы строим систему, предоставляющую единую модель работы с различными типами поисковых индексов. Сегодня рантайм уже поддерживает классический инвертированный индекс, HNSW-графы, KD-деревья и другие структуры данных. Вы будете развивать эти технологии и внедрять новые, выжимая максимум из доступного железа. И всё это — в многопоточной распределённой системе, от которой уже зависят сотни продуктовых сервисов. Создание SDK и инструментов для работы с рантаймом. Чтобы другие команды решали свои продуктовые
, а не погружались в устройство поиска,
- развивать экосистему рантайма. Вы будете разрабатывать удобный SDK — единый интерфейс для отправки поисковых запросов, который упрощает интеграцию, скрывает распределённую природу системы и её сложность
- улучшать средства самостоятельной диагностики — аналог оператора EXPLAIN из классических баз данных, трассировку запросов и логирование ключевых поисковых стадий
- и делать многое другое. Проектирование языка поисковых запросов. Сегодня поисковые запросы описываются набором CGI-параметров. В перспективе мы хотим прийти к полноценному языку запросов — и у вас будет возможность спроектировать его с нуля: от грамматики и планировщика до исполнителя. Больше о бэкенде в Яндексе — в канале Yandex for Backend
- Уверенно владеете C++ и хотите на нём писать — это основной язык рантайма
- Хорошо знаете классические алгоритмы и структуры данных, умеете выбирать их под задачу
- Глубоко разбираетесь в многопоточном программировании: знаете модели памяти, примитивы синхронизации, lock-free-структуры и алгоритмы, понимаете природу гонок и умеете их предотвращать
- Понимаете устройство Linux: процессы и потоки, управление памятью, сеть
- Используете инструменты профилирования и трассировки
- Разрабатывали распределённые системы: понимаете, как живут сервисы под нагрузкой и какие бывают точки отказа
- Понимаете, как устроены поисковые системы: инвертированные индексы, векторный поиск, генерация кандидатов, ранжирование
- Оптимизировали производительность на низком уровне: работали с кешами CPU, использовали SIMD
- Работали с системами под высокой нагрузкой и с жёсткими требованиями к времени обработки запросов
- Проектировали DSL, языки запросов, парсеры или планировщики исполнения
Нажмите «Откликнуться», заполните короткую форму и прикрепите резюме. Команда обычно отвечает в течение 3 рабочих дней.