Разработчик бэкенда в Маршрутизацию (RouteQ)
Яндекс Маршрутизация — это сервис для автоматического построения и оптимизации маршрутов транспорта с учётом времени, пробок, количества заказов, окон доставки и других параметров.
Мы ищем разработчика в команду мониторинга. Это инструмент контроля выполнения маршрутов и движения курьеров в реальном времени. С одной стороны, наши основные пользователи — логисты и диспетчеры крупных компаний. С другой, курьеры в системе каждый день получают маршруты, обновляют статусы, передают данные о доставке.
Мониторинг — B2B-продукт с высокой ценой ошибки: простой сервиса может привести к срыву доставки и финансовым потерям клиента. Поэтому для нас крайне важны архитектура, устойчивость и качество инженерных решений.
Задачи и обязанности
Проектирование распределённых отказоустойчивых систем
Высокий аптайм — наше базовое требование: запуск любых фич не должен снижать стабильность. Закладываем механизмы устойчивости: fallback’и, rate limiting, timeouts, retries с backoff, idempotency.
Проектирование расширяемых и простых в интеграции API
Мы разрабатываем API, которым пользуются сотни клиентов. Это накладывает определённые ограничения при проектировании и реализации изменений. Нужно думать про пагинацию, фильтры, сортировки, форматы и квоты.
Работа с высоконагруженными базами данных
Понадобится анализировать и оптимизировать производительность PostgreSQL под высокой нагрузкой: работать с EXPLAIN/ANALYZE, планами запросов и индексами, устранять блокировки и проблемы конкуренции транзакций. Нужно решать сложные эксплуатационные кейсы (рост таблиц, настройка vacuum/autovacuum, партиционирование, репликация), а также развивать архитектуру данных: внедрять кеширование, использование очередей и асинхронных механизмов, чтобы разгружать базу и повышать общую устойчивость системы.
Больше о бэкенде в Яндексе — в канале Yandex for Backend
Требования
- Знаете алгоритмы и структуры данных
- Умеете и любите писать код на C++
- Не боитесь ответственности