Разработчик в команду индексации Search-as-a-Service — C++@ Яндекс
О позиции
В команду индексации Search-as-a-Service (C++) требуется разработчик для работы над общей поисковой платформой в Яндексе. Наша команда строит новое поколение поисковой индексации, создавая большую распределённую систему, на основе которой работают поисковые и рекомендательные сценарии. Мы занимаемся высоконагруженными системами, низкоуровневой оптимизацией и научно-исследовательскими разработками.
Чем вы будете заниматься
- Разработка общих механизмов индексации. Вы будете строить распределённые системы, которые обрабатывают миллиарды документов и поддерживают разные режимы индексации, включая полную перестройку индекса, потоковый режим и их гибридную комбинацию.
- Улучшение эффективности индексации и хранения данных. Вы будете оптимизировать построение индексов на самом низком уровне, применять и улучшать современные кодеки сжатия, а также искать новые способы выжимать из железа максимум.
- Создание движка векторного поиска. Вы будете проектировать и запускать собственный kNN, способный работать на масштабах компании.
- Проектирование архитектуры и проведение R&D. Вы будете участвовать в формировании и принятии ключевых архитектурных решений и проверять их на практике.
Требования
- Уверенное владение C++ и желание на нём писать.
- Знание классических алгоритмов и структур данных.
- Опыт разработки высоконагруженных распределённых систем и понимание паттернов их проектирования.
- Умение писать надёжный и быстрый многопоточный код.
Будет плюсом, если вы
- Понимаете устройство современных поисковых систем и баз данных, знакомы с внутренностями Lucene, Elasticsearch, Qdrant, ClickHouse.
- Знаете, как работают инвертированные индексы, приближённый поиск и различные алгоритмы ранжирования.
- Знакомы с SIMD и понимаете, как работают современные кодеки сжатия.
- Профилировали и оптимизировали приложения (CPU-bound и I/O-bound).
- Работали с технологиями потоковой обработки данных (Kafka, Flink) или MapReduce.
Что мы предлагаем
- Яндекс — это комьюнити. Тут есть и спортивные клубы, и книжный клуб, и киберспортивное сообщество.
- Полный список бонусов доступен на нашем сайте.
Вакансия имеет хорошие условия и интересные задачи, но не указана зарплата, что снижает её привлекательность.
Кто здесь добьётся успеха
Глубокие знания в C++ и опыт работы с многопоточностью, что позволяет эффективно разрабатывать высокопроизводительные системы.
Способность работать в распределённых системах, что важно для разработки поисковой платформы, особенно с использованием технологий Kafka и Flink.
Аналитическое мышление и опыт работы с алгоритмами и структурами данных для оптимизации процессов индексации и обработки данных.
Самостоятельность и высокая степень ответственности, что критично для удалённой работы в команде, требующей инициативы и самоорганизации.
Ресурсы для обучения
Карьерный путь
Обзор рынка
Навыки и требования
Тренды отрасли
Новости Search Technology
Загружаем новости отрасли...
Ищем релевантные статьи за последние 6 месяцев