Автоотклики

Опубликована 30 дней назад · сайт компании

Старший разработчик на C++ в Ритм

Яндекс

  • Москва · офис
  • senior
  • вилка не указана

О вакансии

Яндекс Ритм — рекомендательный сервис для поиска товаров и услуг. Наш основной продукт — бесконечная контентная лента: она живёт на главной Яндекса на ya.ru и в поисковом приложении, а ещё у нас есть отдельный веб-сервис и приложения для iOS и Android. Каждый день лента показывает пользователям десятки миллионов карточек и подстраивается под то, что человеку интересно именно сейчас. Цель сервиса — показать пользователю самый интересный контент среди доступных предложений и вырастить длительность просмотра, клики и покупки. Для этого мы строим собственный рекомендательный контур, работаем с десятком внутренних сервисов — рекомендациями, поиском, статистикой, модерацией, — а также обеспечиваем загрузку и импорт контента и поддерживаем всю инфраструктуру сервиса. Команда бэкенда пишет на C++ и отвечает за всё, что происходит между запросом пользователя и готовой лентой: отбор кандидатов и ранжирование через сервис рекомендаций, обогащение карточек данными, логирование для обучения моделей и доставку всего этого на разные поверхности за сотни миллисекунд. Умное смешивание контента в ленте Сейчас лента собирается из карточек разных типов, и каждый источник отбирает лучшее со своей точки зрения. Главный вопрос, на который мы отвечаем: контент какого типа интереснее конкретному пользователю прямо сейчас? Вы будете строить технологию смешивания — от быстрой эвристики, которая уже регулирует состав ленты, до полноценного ранжирования самих карточек с помощью моделей. Ограничения здесь вполне инженерные: ранжирование должно укладываться в сотни миллисекунд на запрос, реакцию пользователя нужно учитывать как можно быстрее, а новый тип карточек — подключать без переписывания половины сервиса. Вам предстоит реализовывать этот контур, доставлять признаки и выстраивать логирование так, чтобы на этих данных можно было обучать модели. Новые типы контента и общая база объектов Мы расширяем состав ленты за счёт интеграций с внутренними и внешними сервисами: у каждого своя модель контента, свои идентификаторы и свой способ отдавать рекомендации. Ваша задача — сделать так, чтобы подключение очередного источника было рутиной, а не проектом на квартал. Для этого мы строим общую базу объектов: единое представление карточки, её признаки и накопленную статистику, а также доставку всех этих данных до сервиса рекомендаций. Здесь вы будете придумывать схему хранения, продумывать архитектуру интеграций и решать, что считать онлайн, а что с помощью офлайн-процессов. Развитие платного продвижения Часть карточек в ленте продвигается за деньги, и это отдельный технический контур: отбор продвигаемых объектов, аукцион, предсказание вероятности клика, связка карточек с рекламными кампаниями и учёт конверсий. Вы будете развивать рекламное ранжирование вместе с ML-инженерами и аналитиками — от формулы отбора до скорости, с которой новый продвигаемый объект доезжает до выдачи. Задача интересна тем, что здесь всё время приходится соблюдать баланс: продвижение приносит выручку, но конкурирует за внимание пользователя с органическим контентом. Решения принимаются на основе экспериментов, и вы будете видеть эффект своей работы и в деньгах, и в продуктовых метриках. Масштабирование на новые поверхности и пользовательские сценарии Ритм расширяет список площадок, на которых показывается лента, поэтому вам предстоит поддерживать такие интеграции: управлять тем, какой набор контента доступен на конкретной поверхности, и учитывать её ограничения. Отдельный пласт работы — новые пользовательские сценарии, часто находящиеся на стыке нескольких сервисов Яндекса, которые повышают вовлечённость и приносят прибыль. Инфраструктура и данные сервиса Вы будете работать с YDB, заниматься обработкой данных и офлайн-процессами: считать статистику по объектам, готовить данные для моделей, поддерживать регулярные расчёты и следить за тем, чтобы всё это не деградировало под нагрузкой. Больше о бэкенде в Яндексе — в канале Yandex for Backend

  • Отлично владеете C++ и стандартной библиотекой
  • Разбираетесь в базовых алгоритмах и структурах данных
  • Умеете писать скрипты на Python
  • Понимаете, как устроены высоконагруженные сервисы, и умеете искать узкие места
  • Хотите участвовать в жизни продукта и вносить собственные идеи
  • Работали с YDB или другими распределёнными базами данных
  • Занимались обработкой больших объёмов данных в офлайн-пайплайнах
  • Знакомы с фреймворком userver
  • Имеете опыт работы с рекомендательными или поисковыми системами.
  • Умеете работать с ML-моделями в продакшене — пусть и со стороны бэкенда

Обязанности

Умное смешивание контента в ленте Сейчас лента собирается из карточек разных типов, и каждый источник отбирает лучшее со своей точки зрения. Главный вопрос, на который мы отвечаем: контент какого типа интереснее конкретному пользователю прямо сейчас? Вы будете строить технологию смешивания — от быстрой эвристики, которая уже регулирует состав ленты, до полноценного ранжирования самих карточек с помощью моделей. Ограничения здесь вполне инженерные: ранжирование должно укладываться в сотни миллисекунд на запрос, реакцию пользователя нужно учитывать как можно быстрее, а новый тип карточек — подключать без переписывания половины сервиса. Вам предстоит реализовывать этот контур, доставлять признаки и выстраивать логирование так, чтобы на этих данных можно было обучать модели. Новые типы контента и общая база объектов Мы расширяем состав ленты за счёт интеграций с внутренними и внешними сервисами: у каждого своя модель контента, свои идентификаторы и свой способ отдавать рекомендации. Ваша задача — сделать так, чтобы подключение очередного источника было рутиной, а не проектом на квартал. Для этого мы строим общую базу объектов: единое представление карточки, её признаки и накопленную статистику, а также доставку всех этих данных до сервиса рекомендаций. Здесь вы будете придумывать схему хранения, продумывать архитектуру интеграций и решать, что считать онлайн, а что с помощью офлайн-процессов. Развитие платного продвижения Часть карточек в ленте продвигается за деньги, и это отдельный технический контур: отбор продвигаемых объектов, аукцион, предсказание вероятности клика, связка карточек с рекламными кампаниями и учёт конверсий. Вы будете развивать рекламное ранжирование вместе с ML-инженерами и аналитиками — от формулы отбора до скорости, с которой новый продвигаемый объект доезжает до выдачи. Задача интересна тем, что здесь всё время приходится соблюдать баланс: продвижение приносит выручку, но конкурирует за внимание пользователя с органическим контентом. Решения принимаются на основе экспериментов, и вы будете видеть эффект своей работы и в деньгах, и в продуктовых метриках. Масштабирование на новые поверхности и пользовательские сценарии Ритм расширяет список площадок, на которых показывается лента, поэтому вам предстоит поддерживать такие интеграции: управлять тем, какой набор контента доступен на конкретной поверхности, и учитывать её ограничения. Отдельный пласт работы — новые пользовательские сценарии, часто находящиеся на стыке нескольких сервисов Яндекса, которые повышают вовлечённость и приносят прибыль. Инфраструктура и данные сервиса Вы будете работать с YDB, заниматься обработкой данных и офлайн-процессами: считать статистику по объектам, готовить данные для моделей, поддерживать регулярные расчёты и следить за тем, чтобы всё это не деградировало под нагрузкой. Больше о бэкенде в Яндексе — в канале Yandex for Backend

Требования

  • Отлично владеете C++ и стандартной библиотекой
  • Разбираетесь в базовых алгоритмах и структурах данных
  • Умеете писать скрипты на Python
  • Понимаете, как устроены высоконагруженные сервисы, и умеете искать узкие места
  • Хотите участвовать в жизни продукта и вносить собственные идеи
  • Работали с YDB или другими распределёнными базами данных
  • Занимались обработкой больших объёмов данных в офлайн-пайплайнах
  • Знакомы с фреймворком userver
  • Имеете опыт работы с рекомендательными или поисковыми системами.
  • Умеете работать с ML-моделями в продакшене — пусть и со стороны бэкенда

Навыки из вакансии

C++

Письмо под эту вакансию

Напишет ИИ-работяга по вашему резюме с hh.ru. Бесплатно, 5 в день.

Нужен вход через Telegram и подключённый hh — резюме берём оттуда.

Похожие вакансии

Не то, что искали? Ответьте на пять вопросов — подборка будет приходить в Telegram раз в день.

ИИ-работяга откликается на такие вакансии за вас — и пишет письмо к каждому отклику

24 часа бесплатнокарта не нужна