Разработчик в команду построения поисковой базы
Summary
Develop C++ services for Yandex Search's index-building team: design the migration of the main search base (hundreds of billions of documents) from batch MapReduce to event-driven stream processing, evolve search indexes with ranking teams, and improve related services like favicons and duplicate detection. Core stack is C++, with big data and streaming experience plus Python as bonuses.
Мы уже перевели на потоковую обработку два контура построения небольших поисковых индексов, отвечающих за свежие документы, что значительно уменьшило время доставки данных до Поиска. Самый важный третий контур в несколько сотен миллиардов документов всё ещё строится пакетами в парадигме MapReduce. Изменения данных или факторов ранжирования здесь доставляются до Поиска несколько дней, а это очень долго. Мы верим, что перевод на потоковую обработку позволит значительно ускорить доставку данных до Поиска, а также сэкономить потребляемые вычислительные мощности. Вам предстоит прорабатывать дизайн архитектуры и разрабатывать сервисы потокового построения основной базы Поиска. Развитие поисковых индексов
Яндекс Поиск постоянно растёт и развивается. Новая функциональность или факторы ранжирования требуют модернизации существующих поисковых индексов, а порой и создания новых. Вам предстоит внедрять доставку новых данных до Поиска совместно со смежными командами, занимающимися качеством и рантаймом Поиска. Улучшение сервисов построения поисковой базы
Помимо построения базы Поиска, мы отвечаем и за ряд смежных сервисов, решающих задачи предоставления фавиконок, определения зеркал сайтов и дублей веб-страниц, обработки пользовательских факторов ранжирования и не только. У нас вы сможете проявить себя как в инфраструктурных задачах (повышении отказоустойчивости, оптимизации потребления памяти), так и в продуктовых внедрениях: новых форматах сжатия фавиконок, улучшении точности алгоритма определения дублей. Больше о бэкенде в Яндексе — в канале Yandex for Backend* Хорошо знаете базовые алгоритмы и структуры данных * Хорошо знаете С++ * Знакомы с паттернами и идиомами построения программного обеспечения * Умеете писать надёжный и читабельный многопоточный код* Работали с большими данными * Строили распределённые системы потоковой обработки данных * Знакомы с Python