Москва
Яндекс Лавка — сервис быстрой доставки продуктов. Наша команда отвечает за взаимодействие сервиса с курьерами. Здесь происходит управление сменами (от их выставления складами до выполнения курьерами), расчёт зарплат, коммуникации с курьерами и не только. Мы обрабатываем тысячи смен одновременно и умеем выдерживать тысячи 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 и миллионами записей
- Проектировали и разрабатывали сервисы с нуля