Разработчик бэкенда системы складских операций в Лавку

Яндекс Лавка — это международный сервис доставки продуктов за 10–20 минут, который стал неотъемлемой частью жизни миллионов людей.

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

Наш стек:

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

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

Развивать продукт

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

Развивать общие программные компоненты

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

Поддерживать высокую культуру разработки и стабильность сервиса

Вы будете проводить осмысленно код-ревью (для всего другого у нас есть ruff и black), держать codecoverage близким к 90%, улучшать мониторинги и алерты для сохранения uptime 99.9%.

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

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

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

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

Юрий Мещеряков

Head of Recruitment Екома и Райдтеха

У нас многоступенчатый отбор — так получается объективнее и быстрее. Сейчас вы отправите резюме, и если всё сложится, то в ближайшие 3-5 дней мы пришлём вам приглашение. Что ждёт вас дальше, читайте на странице для подготовки к интервью.