яндекс

Разработчик бэкенда водительской эффективности в Такси (Python)

Отдел эффективности решает задачи бизнеса за счёт технологий. Например, до тех пор, пока беспилотное такси не станет повсеместным, критичной для бизнеса будет минимизация простоев водителей для обработки растущего количества заказов. Внутр…

яндекс

↑ Вакансия с автоподнятием
Зарплата не указанаНе указана странаЛокация не указана

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

* Представьте, что водитель закончил поездку на севере города и решил поехать домой, на юг. Сервисы группы проводника помогут ему найти заказ по пути. У нас реализован собственный алгоритм назначения заказов, который позволяет подбирать заказ для водителя в зависимости от его планов и других обстоятельств.
* Нужно, чтобы в определённое время водители ехали в зоны высокого спроса заранее? Бизнес запускается в новом городе, хочется привлечь первых водителей и обеспечить им стабильный доход? Разработкой сервисов для финансовой мотивации водителей занимается группа бонусов. Например, мы гарантируем повышенный коэффициент в области и навигируем туда исполнителей в реальном времени. Или подсчитываем время на линии для выплаты бонусов.
* Группа инфраструктуры занимается разработкой сервисов, которые управляют потоками данных в масштабах всего Такси и за его пределами. А ещё создаёт сервисы взаимодействия с водителями, реализующие, например, распределённые транзакции с помощью паттерна Saga.

Мы уделяем пристальное внимание проработке архитектуры. Многие механики работают в реальном времени с требованиями по минимальной реакции на события. В ведении сектора находятся более 30 микросервисов, которые обрабатывают несколько сотен тысяч сообщений в секунду, поэтому мы тщательно прорабатываем:
* API и межсервисное взаимодействие
* Выбор подходящей БД
* Взаимодействие с брокерами сообщений и очередями задач
* Точки отказа, мониторинги и рубильники на случай проблем

Наши технологии:
* Сервисы преимущественно на C++20 (асинхронный фреймворк userver) и Python 3
* Базы данных: PostgreSQL, Redis, MongoDB, YDB
* Брокеры сообщений (Logbroker)

Разработчики в Такси и эффективности часто выступают на конференциях, про наши продукты снимают видео:
* Парадоксы трейд-оффа «Скорость — качество»
* Как мы переписали «жадный» алгоритм назначения
* Режимы «Домой», «По делам» и «Мой район»: как они работают

Узнайте про разработку городских сервисов Яндекса на dev.go.yandex

Запуск экспериментов, A/B-тестов

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

Реализация новых механик

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

Архитектурные изменения сервисов

Такси — крупная, но достаточно гибкая инфраструктура, состоящая из более чем 800 микросервисов. Кроме того, решения эффективности часто используются другими бизнесами в рамках Екома и Райдтеха. Поэтому, чтобы повысить надёжность и доступность наших сервисов, мы активно внедряем новые технологии и архитектурные решения. Например, именно в отделе эффективности начинались внедрение доменной модели (DOMA) и переход на событийную модель (event sourcing).

* Пишете на C++ или готовы на него перейти
* Имеете опыт разработки распределённых систем
* Знакомы с реляционными базами данных

Похожие вакансии C++/C

hh.ru
синекта

Программист C++

синекта
Зарплата не указанаРоссияТомскОфис

Ведущий программист C++ (платформа автоматизации испытаний)

СИНЕКТА — аккредитованная IT-компания в составе группы компаний «ПЛАНАР», более 30 лет работающей на рынке радиоэлектроники.

Мы разрабатываем программные и аппаратные решения для радиочастотных измерений, включая ПО для векторных анализаторов цепей — высокоточных приборов, используемых при разработке и производстве современной электроники.

Пожалуйста, обратите внимание, что вакансия предполагает только офисный формат работы в г. Томск.

О проекте:

Разрабатываем платформу, на которой строятся функциональные и производственные тесты, калибровка и поверка приборов, долговременные испытания. На базе платформы построены системы испытаний на нескольких ведущих предприятиях страны в области разработки СВЧ оборудования.

Что внутри:

  • ядро на C++23 — движок выполнения программ испытаний, управление измерительными приборами, испытуемыми устройствами, сбор и обработка результатов;

  • Python API на базе pybind11 — система плагинов, на которой инженеры пишут тестовые шаги и драйверы приборов;

  • gRPC / protobuf сервер — удалённое управление платформой и подписка на события;

  • CMake, Google Test, pytest — сборка и многоуровневое тестирование.

Чем предстоит заниматься:
  • проектирование архитектуры и новых возможностей платформы: анализ требований, проработка вариантов, оценка последствий для смежных модулей;

  • разработка ядра на C++23 и его Python-интерфейса (pybind11);

  • развитие gRPC API: проектирование proto-контрактов, реализация сервисов и системы уведомлений;

  • анализ и разбор сложных дефектов на стыке C++ / Python / сети, в том числе в многопоточном окружении;

  • участие в код-ревью, поддержание качества кода и тестов;

  • участие в проектных встречах: планирование, дэйли, демо и ретроспективы.

Что мы ждём:
  • уверенный опыт коммерческой разработки на современном C++ (17/20/23): владение семантикой, RAII, шаблоны, многопоточность;

  • системное мышление — умение декомпозировать сложную задачу, увидеть связи между компонентами, спрогнозировать последствия изменений и аргументировать выбранное решение;

  • умение разобраться в чужой архитектуре и коде и предлагать, как их улучшить;

  • опыт проектирования API/интерфейсов, которыми пользуются другие разработчики;

  • понимание принципов модульного и интеграционного тестирования, опыт с Google Test или аналогами;

  • продуктовый подход: мы решаем задачи клиентов, а не просто пишем код.

Будет плюсом:
  • опыт с Python и связкой C++/Python (pybind11, Boost.Python, Cython);

  • опыт с gRPC / protobuf или другими RPC-фреймворками;

  • опыт работы с измерительным оборудованием (VISA, SCPI) или автоматизацией испытаний;

  • знание CMake на уровне сопровождения многомодульного проекта;

  • знание английского языка на уровне B1 и выше;

  • опыт работы по методологии Scrum.

Условия работы:

  • Белоснежная и своевременная зарплата, индексация и бонусы;

  • Разнообразные проекты и наставники, которые помогут профессионально расти;

  • Гибкое начало рабочего дня;

  • Комфортное рабочее место в офисе с дизайнерским интерьером и большой парковкой;

  • Обеспечение необходимой и современной техникой.

Про офис и плюшки в компании:

  • ДМС со стоматологией;

  • Профессиональная библиотека и оплата полезного обучения;

  • Нет бюрократии и дресс-кода;

  • В офисе кофе, фрукты, снеки, а также спортивный уголок;

  • Насыщенная корпоративная жизнь: мероприятия, активности, детские праздники, подарки.

А ещё у нас дружный, творческий и профессиональный коллектив - присоединяйся!

Другие площадки
яндекс

Бэкенд разработчик Java | Python | Go | C++

яндексАвтоподнятие
309k–430k ₽РоссияМоскваОфис

Описание вакансии

Мы запустили программу адаптации для опытных бэкендеров — Multitrack. Программа длится 2–3 месяца: за это время мы предлагаем вам поработать в трёх командах Яндекса, познакомиться с нашими разработчиками и технологиями.

Мы ждем, что вы

  • Уверенно владеете Java, Python, Go или C++
  • Разрабатывали коммерческие приложения не менее 7 лет
  • Занимались многопоточным программированием. 
  • Поддерживали программное обеспечение от написания до выкладки в продакшен
  • Качественно тестируете свой код и свободно работаете с чужим
  • Умеете мониторить работу готового ПО и оперативно реагировать на проблемы
  • Разбираетесь в классических алгоритмах и структурах данных
  • Обладаете широким техническим кругозором

Будет плюсом, если вы

  • Проектировали архитектуру и разрабатывали продуктовые фичи
  • Занимались разработкой для Unix/Linux и сетевым программированием
  • Понимаете основы TCP/IP и HTTP
  • Понимаете принципы работы СУБД

Multitrack — это не стажировка и не временная работа. Вы подписываете трудовой договор и с первого дня получаете зарплату, все бонусы и бенефиты, доступные штатным сотрудникам Яндекса.

hh.ru
120k–160k ₽РоссияХимки (Московская область)Офис

IT-специалист / разработчик складских решений

Мы ищем IT-специалиста уровня Junior или Junior+, который будет заниматься автоматизацией складских процессов, развитием внутренних программных решений и технической поддержкой сотрудников компании.

Обязанности

  • Анализ действующих складских процессов и поиск возможностей для их автоматизации.
  • Разработка внутренних программ, скриптов и утилит для складского учёта, обработки данных и сокращения ручных операций.
  • Доработка и улучшение специализированного складского программного обеспечения.
  • Интеграция программных решений с Excel, базами данных, облачными сервисами и другими используемыми в компании системами, работа с нейросетями, машинное обучение.
  • Поиск, тестирование и внедрение готовых программных продуктов, если использование готового решения целесообразнее собственной разработки.
  • Поддержка и сопровождение разработанных решений.
  • Поиск и устранение ошибок в программном обеспечении.
  • Подготовка инструкций и консультирование сотрудников по работе с программами и техническими средствами.
  • Базовая техническая поддержка сотрудников компании:
    • настройка и диагностика компьютеров;
    • подключение и настройка принтеров и другой офисной техники;
    • помощь в работе с облачными сервисами, электронной почтой и общими файлами;
    • установка и настройка необходимого программного обеспечения;
    • решение типовых технических проблем.
  • Взаимодействие с поставщиками программного обеспечения, оборудования и технических услуг.

Обязательные требования

  • Знание Python на уровне, достаточном для разработки прикладных программ, скриптов автоматизации и обработки данных.
  • Знание C++ и понимание основных принципов разработки на данном языке.
  • Понимание основ объектно-ориентированного программирования, навыки работы с нейросетями.
  • Базовые знания алгоритмов и структур данных.
  • Умение читать, анализировать и дорабатывать чужой код.
  • Понимание принципов работы операционных систем Windows.
  • Базовые навыки настройки компьютеров, периферийного оборудования и офисного программного обеспечения.
  • Умение самостоятельно искать информацию, разбираться в документации и находить решения технических задач.
  • Готовность работать как с программированием, так и с задачами технической поддержки.
  • Внимательность, ответственность и системный подход к работе.

Будет преимуществом

  • Минимальный опыт разработки на Java.
  • Опыт работы с SQL и базами данных.
  • Опыт автоматизации работы с Excel, включая библиотеки openpyxl, pandas или аналогичные инструменты.
  • Понимание принципов работы REST API и интеграции различных сервисов.
  • Опыт работы с Git.
  • Знание основ сетевых технологий.
  • Опыт работы с облачными хранилищами и корпоративными сервисами.
  • Опыт разработки интерфейсов для внутренних программ.
  • Понимание складских, логистических или учётных процессов.
  • Опыт работы с WMS-, ERP- или CRM-системами.
  • Наличие собственных, учебных или коммерческих проектов, которые можно продемонстрировать.

Уровень кандидата

Мы готовы рассматривать начинающих специалистов уровня Junior. Для нас важны не только коммерческий опыт и формальное образование, но и способность кандидата самостоятельно разбираться в задачах, писать понятный и рабочий код, доводить проекты до результата и грамотно взаимодействовать с сотрудниками, не имеющими технической подготовки.

Личные качества

  • Самостоятельность и инициативность.
  • Умение переводить потребности сотрудников в понятные технические задачи.
  • Способность объяснять технические вопросы простым языком.
  • Готовность разбираться в незнакомых программах и технологиях.
  • Нацеленность на практический результат.
  • Аккуратность при работе с корпоративными данными.
  • Умение расставлять приоритеты между разработкой и текущими обращениями сотрудников.

HireSeeker собирает вакансии со всех площадок и присылает только релевантные. Бесплатно.