Привет! Меня зовут Андрей Гараев, я руковожу бэкенд-разработчиками в команде эффективности Яндекс Go. В группу разработки Проводника ищу опытного старшего бэкенд-разработчика с перспективой быстрого роста до технического лидера. Вы будете развивать сервис с технической и продуктовой сторон, работать в команде с разработчиками, аналитиками и продакт-менеджером. Мы разрабатываем новые фичи, поддерживаем рост сервиса, регулярно обновляя архитектуру, а также ищем новые возможности и интеграции, чтобы Яндекс Go приносил пользу и ценность нашим пользователям.
Яндекс Go — один из крупнейших в России сервисов такси, который работает также в десятках других стран на четырёх континентах. Чтобы сервис радовал миллионы водителей и пассажиров по всему миру, мы заботимся не только о его надёжности и отказоустойчивости, но и о том, чтобы в системе всегда были свободные водители, машины приезжали быстро, время подачи предсказывалось точно, а в поездке не происходило неприятных сюрпризов.
Мы разрабатываем Проводник — кросс-платформенный продукт, доступный в Такси, Яндекс Доставке и Яндекс Еде. В его основе лежат алгоритмы, которые позволяют водителям и курьерам перемещаться в точки интереса с возможностью получать попутные заказы. В результате у водителя сокращается холостой пробег, а у пассажира — время ожидания такси: подходящих водителей становится больше. Другие наши алгоритмы позволяют водителям и курьерам работать в определённых зонах, например в районах, близких к дому, или там, где спрос особенно высок. Кроме того, мы работаем над платформой, которая распределяет водителей по городу исходя из спроса на такси, чтобы в любом месте в любой момент было достаточно водителей, готовых отвезти пассажиров.
Разработка кросс-платформенных фич
При разработке фич вам предстоит учитывать, что основу сервиса составляют унифицированное ядро и протокол взаимодействия с системой распределения заказов и клиентом. Благодаря этому удаётся сохранять единую логическую кодовую базу и разделять функциональность для автомобилистов, велосипедистов и пешеходов на уровне протокола взаимодействия бэкенда и клиента, а также на уровне данных (например, дорожных маршрутов), которыми оперирует бэкенд.
Решение архитектурных задач высоконагруженного распределённого сервиса
Вы будете оптимизировать и актуализировать архитектурные решения, которые со временем перестают эффективно справляться со своими задачами: в пиковое время в режимах Проводника одновременно находятся около 170 тысяч человек, сервис ежесекундно проверяет около 80 тысяч пар «заказ — исполнитель», оценивает примерно 200 тысяч дорожных маршрутов. Каждый год продукт растёт на 20–40%.
Разработка и улучшение алгоритмов подбора заказов по пути и в районе
Вам предстоит развивать продукт за счёт новых или комбинации базовых механик. Примеры простых кейсов: поездка в конце рабочей смены домой с попутными заказами; подбор заказов внутри окружности. Мы заменили окружность на комбинации сложных полигонов, а поездки по пути в точку расширяем до поездок по пути в полигон.
Выстраивание Проводника как платформы для создания новых продуктов
Проводник существует не только как самостоятельный продукт — он представляет собой систему, которая позволяет перемещать водителей внутри города или иной географии. Примеры: система быстрой подачи такси на основе FIFO-очереди водителей на парковках аэропортов (наполнение такой очереди реализовано через Проводник); режим «Обратно» в междугородних поездках (Проводник помогает подобрать заказ на обратном пути). Двигаемся в сторону модели Backend as a service.
Эффективное распределение водителей по городу
Мы знаем, где и когда возникает повышенный спрос на такси, и у нас есть система перемещения водителей. На стыке этих двух фактов мы построили сервис, который предлагает водителям поехать туда, где они особенно нужны. Вам предстоит улучшать качество данных и скорость работы сервиса, чтобы предложения о перемещении были ещё лучше и полезнее.
Больше о бэкенде в Яндексе — в канале Yandex for Backend
Узнайте про разработку эффективности Городских сервисов Яндекса на dev.go.yandex