📍 Санкт-ПетербургМоскваПолная удалёнка
Яндекс Лавка — сервис быстрой доставки продуктов. Наша команда отвечает за взаимодействие сервиса с курьерами. Здесь происходит управление сменами (от их выставления складами до выполнения курьерами), расчёт зарплат, коммуникации с курьерами и не только.
Мы обрабатываем тысячи смен одновременно и умеем выдерживать тысячи RPS, интегрируемся в десятки смежных сервисов, покрываем более 90% кода тестами.
Технологии/инструменты
PythonSQLNoSQLNix Systems
- Основной язык программирования — Python 3, используем AsyncIO, Aiohttp, asyncpg, Pytest.
- Основная БД — шардированная PostgreSQL, MongoDB для сервера доставки событий на фронт, ClickHouse для аналитики.
- YT (наш аналог MapReduce) для обработки больших данных.
- Очередь сообщений SQS и Logbroker (наш аналог Kafka) для горизонтального масштабирования вычислений.
- Протокол OpenAPI для взаимодействия с фронтом (React и Vue.js), мобильными приложениями и внешними сервисами.
- Docker для локальной разработки и деплоя.
Что нужно делать
- Автоматизировать нетривиальные бизнес-процессы для коммуникации с курьерами.
- Разрабатывать инфраструктуру для сбора и отображения real-time-метрик, которые помогают нам быть эффективнее.
- Разрабатывать идемпотентные и асинхронные API, интегрироваться во внешние сервисы.
- Развивать общие программные компоненты, используемые в ключевых частях системы.
- Осмысленно проводить код-ревью (для всего другого у нас есть Pylint).
- Повышать надёжность и стабильность работы сервиса (мы целимся в uptime 99,9%).
- Взаимодействовать с командами продукта, аналитиками и разработчиками других направлений.
Ожидания
- Уверенное знание любого современного языка программирования.
- Опыт работы с БД (SQL, NoSQL), понимаете, зачем нужна денормализация данных.
- Понимание того, как тесты делают жизнь разработчика (и всех вокруг) лучше.
- Опыт разработки веб-приложений.
- Понимание того, как устроены *nix-подобные операционные системы.
- Способность работать и в команде, и самостоятельно.
- Готовность быстро расти вместе с Лавкой.
Будет плюсом, если вы:
- Понимаете нюансы асинхронного программирования на Python: где его можно использовать, а где не стоит.
- Работали с PostgreSQL.
- Создавали высоконагруженные веб-приложения и распределённые системы обработки данных (тысячи RPS, миллионы записей).
- Проектировали и разрабатывали сервисы с нуля.
Условия
- Сильная команда, с которой можно расти.
- Сложные задачи для сервисов с миллионами пользователей.
- Возможность влиять на процесс и результат.
- Зарплата на уровне рынка и выше.
- Премии каждые полгода за эффективную работу.
- Расширенная программа ДМС: оплата 80% стоимости ДМС для супругов и детей.
- Гибкий график.
Полезные материалы
- Как в Яндексе проходят алгоритмические секции собеседований: ссылка.
- Как решать алгоритмические секции ч.1: ссылка.
- Как решать алгоритмические секции ч.2: ссылка.
- LeetCode: ссылка.
- Подготовка к собеседованию в Яндекс: ссылка.
- Пять способов узнать больше об алгоритмах: ссылка.
- Как мы нанимаем бэкенд-разработчиков: ссылка.
Оксана Гайворонская IT Recruiter