H
HireSeeker
яндекс

Разработчик на С++ в команду продуктового развития диспатча

яндекс · 1 час назад

Зарплата не указана

Яндекс Доставка возит почти всё и почти куда угодно: лёгкие посылки и тяжёлые грузы, на соседнюю улицу и в другой город, пешими и автокурьерами, грузовым транспортом и роботами доставки. Это миллионы доставок в день более чем в 20 странах. Сервис давно вышел из стадии стартапа, поэтому нам интересны уже не запуски с нуля, а то, как выжать из этой махины ещё немного эффективности: на таких объёмах это стоит очень дорого.

Главный рычаг эффективности — диспатч. Это он каждые несколько секунд решает, какому из сотен тысяч курьеров отдать заказ и какие заказы свести в один маршрут. По сути диспатч — это NP-близкая оптимизация на живых данных с дедлайном в считанные секунды. И ошибаться дорого: доли процента метрики здесь оборачиваются очень заметным эффектом для всего бизнеса.

Наша группа продуктового развития диспатча владеет алгоритмами назначения и объединения заказов; платформу под нами держит соседняя инфраструктурная команда. Система немаленькая — большая кодовая база и предметная область, в которой хватает нюансов. Почти всё, что мы меняем, сначала проверяем на данных, поэтому с аналитиками работаем вплотную.

Развитие алгоритмов назначения и объединения заказов

Назначение — это выбор, какому курьеру отдать заказ; объединение — какие заказы свести в один маршрут. Под капотом один решатель с разными настройками под разные сценарии: у грузовых, например, заметно более сложная логика работы с грузами. Вы будете улучшать качество решений и проверять каждое изменение на реальных данных.

Развитие решателя

В основе диспатча — солвер, который за секунды находит решение NP-близкой задачи на большом объёме данных. Это работа на стыке алгоритмов и производительности: нужно повышать качество решений, не выходя за жёсткие ограничения по времени.

Добавление новой функциональности

Бизнес растёт и приносит новые сценарии и требования. Среди актуальных направлений — подключение новых данных в алгоритмы, внедрение ML, поддержка новых видов доставки. Спектр задач широкий, какой проект достанется именно вам — во многом зависит от ваших сильных сторон.

Работа с данными вместе с аналитиками

Почти каждое изменение мы проверяем на данных. Вы будете плотно работать с аналитиками: превращать бизнес-требования в алгоритмические решения, читать логи и метрики, считать эффект от изменений в проде.

Надёжность и качество кодовой базы

Диспатч работает в реальном времени под постоянной нагрузкой при сотнях тысяч курьеров онлайн. Вы будете отвечать за отказоустойчивость и за качество кода — в том числе разбирать легаси — и вести полный цикл от MVP до production, включая разбор инцидентов.

Больше о бэкенде в Яндексе — в канале Yandex for Backend

* Владеете C++ или готовы на него перейти
* Имеете сильную алгоритмическую базу — графы, деревья, оценка сложности, комбинаторная оптимизация
* Понимаете принципы многопоточных и распределённых систем
* Мыслите аналитически и готовы погружаться в данные и логи
* Проактивны — не ждёте отмашки, а сами находите, что можно улучшить
* Готовы плотно взаимодействовать с аналитиками и менеджерами
* Не боитесь большой кодовой базы и сложной предметной области
* Знакомы с Linux

Узнайте про разработку Городских сервисов Яндекса на [dev.go.yandex](http://dev.go.yandex/?utm\_source=yandex\_jobs&utm\_medium=social&utm\_content=1&utm\_campaign=vacancies)