Не упустите лучшие вакансии!
Подключите наш Telegram-бот и получайте мгновенные уведомления о новых предложениях из 10+ источников. Будьте первым, кто откликнется!
Подключить ботаРазработчик в команду Plutonium
Мы разрабатываем Plutonium — систему управления распределёнными поисковыми индексами. Поисковые индексы используются во всех ключевых продуктах Яндекса: Поиске, Рекламе, Маркете и т. д. За время развития компании появилось большое количество разных фреймворков и механизмов для построения и использования индексов. Project Plutonium — это обобщение успеха поисковых технологий на все крупные сервисы, призванное решить проблему разнородных подходов. Такое обобщение не просто уменьшает технический долг, но и увеличивает стабильность продуктов, добавляет недостающую функциональность.
Мы предоставляем новый унифицированный механизм потокового построения индексов, сервисы для организации эффективного рантайма и сложный control plane, который оркестрирует процесс доставки и использования различных шардов данных.
Сервисы, построенные по нашей технологии, хранят петабайты данных, обрабатывают сотни миллионов операций чтения с NVMe в секунду, при этом доставляют обновления данных за минуты.
Наш стек: С++ для контроллеров, немного Go и Python, ОС Linuх. Храним петабайты данных в S3, а метаданные храним в YTsaurus.
Какие задачи вас ждут
Ускорение движка доставки шардовУ нас есть реализованный конечный автомат состояний шарда поискового индекса. В случае, когда дельты появляются быстро, скорость доставки оказывается на критичном пути возраста данных. В рамках ускорения нужно поддерживать трейсинг, оптимизировать как известные места, где мы тратим время, так и новые, найденные с помощью трейсов.
Разбиение доставки на модули
Сейчас процесс доставки шардов самостоятельно следит за появлением новых данных. Нам нужно предоставлять точку кастомизации доставки для сложных сценариев — синхронизации доставки шардов. Для этого мы хотим разделить слежку за новыми данными от доставки и научиться включать и выключать её по требованию.
Поддержка мультиарендности контроллеров
При запросе пользователя поднять новый контур доставки индекса наша автоматика поднимает отдельные инстансы контроллеров. Они могут простаивать, когда данные не нуждаются в доставке. Мы хотим поддержать мультиарендность — возможность обрабатывать доставку данных нескольких наших клиентов на едином инстансе контроллеров. Этот переход позволит нам сэкономить тысячи CPU и ускорить релизный цикл наших контроллеров.
**Больше о бэкенде в Яндексе — в канале Yandex for Backend**
Мы ждем, что вы
- Умеете и любите писать код на современном С++
- Ответственно подходите к разработке, внимательны к деталям
- Хорошо знакомы с классическими алгоритмами и структурами данных
- Открыты, легко ладите с коллегами
Будет плюсом, если вы
- Разрабатывали сетевые, многопоточные или распределённые программы или прошли углублённые обучающие курсы по этим направлениям
- Владеете Linux на уровне разработчика
- Успешно участвовали в олимпиадах по техническим предметам в школе или университете
Ваше резюме увидят первым!
Автоматическое поднятие на HeadHunter каждые 4 часа. Увеличьте свои шансы на успех в 10 раз!
Подключить автоподнятие