Python-разработчик системы логистических операций в Яндекс.Лавку

Дата размещения вакансии: 26.11.2024
Работодатель: Яндекс
Уровень зарплаты:
з/п не указана
Город:
Москва
Требуемый опыт работы:
От 3 до 6 лет

Яндекс Лавка — сервис быстрой доставки продуктов. Наша команда отвечает за взаимодействие сервиса с курьерами. Здесь происходит управление сменами (от их выставления складами до выполнения курьерами), расчёт зарплат, коммуникации с курьерами и не только. Мы обрабатываем тысячи смен одновременно и умеем выдерживать тысячи RPS, интегрируемся в десятки смежных сервисов, покрываем более 90% кода тестами.

Наш стек:

  • Основной язык программирования — Python 3, используем asyncio, aiohttp, asyncpg, pytest
  • Основные БД — шардированная PostgreSQL, MongoDB для сервера доставки событий на фронт, ClickHouse для аналитики
  • YT (наш аналог MapReduce) для обработки больших данных
  • Очередь сообщений SQS и Logbroker (наш аналог Kafka) для горизонтального масштабирования вычислений
  • Протокол OpenAPI для взаимодействия с фронтом (React и Vue), мобильными приложениями и внешними сервисами
  • Docker для локальной разработки и деплоя

Какие задачи вас ждут:

  • Автоматизировать нетривиальные бизнес-процессы для коммуникации с курьерами
  • Разрабатывать инфраструктуру для сбора и отображения real-time-метрик, которые помогают нам быть эффективнее
  • Разрабатывать идемпотентные и асинхронные API, интегрироваться во внешние сервисы
  • Развивать общие программные компоненты, используемые в ключевых частях системы
  • Осмысленно проводить код-ревью — для всего другого у нас есть Pylint
  • Повышать надёжность и стабильность работы сервиса: мы целимся в uptime 99,9%
  • Взаимодействовать с командами продукта, аналитиками и разработчиками других направлений

Мы ждём, что вы:

  • Уверенно знаете любой современный язык программирования
  • Работали с БД (SQL, NoSQL), понимаете, зачем нужна денормализация данных
  • Понимаете, как тесты делают жизнь разработчика (и всех вокруг) лучше
  • Разрабатывали веб-приложения
  • Понимаете, как устроены *nix-подобные операционные системы
  • Способны работать и в команде, и самостоятельно
  • Готовы быстро расти вместе с Лавкой

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

  • Понимаете нюансы асинхронного программирования на Python: где его можно использовать, а где не стоит
  • Работали с PostgreSQL
  • Создавали высоконагруженные веб-приложения и распределённые системы обработки данных с тысячами RPS и миллионами записей
  • Проектировали и разрабатывали сервисы с нуля