Телематика — общее обозначение группы сервисов, которые поддерживают непрерывную связь с самокатами, машинами и другими устройствами. Это важная часть, от которой зависит функционирование бизнеса. Телематика аккумулирует информацию обо всех устройствах и управляет их состояниями. Наша цель — обеспечить 100-процентную доступность на нескольких континентах для незамедлительного выполнения команд. От телематики зависит, насколько удобно пользоваться сервисом, как быстро вы можете арендовать самокат или машину, как быстро на устройствах появляются новые функции или исправляются ошибки. Нам нужен разработчик, который поможет сделать поездки в городе и вне его ещё доступнее и комфортнее. Как построена разработка
Наши разработчики напрямую влияют на развитие системы. Мы уделяем много внимания: * исследованиям и прототипированию; * проектированию архитектуры, обоснованности выбора технических решений; * отказоустойчивости и observability системы; У нас микросервисная архитектура. Есть сервисы на C++ и на Golang. Для написания микросервисов используем асинхронный фреймворк userver — почитать о нём можно тут и тут. Для хранения мы часто выбираем Redis/Valkey. Многие процессы по обслуживанию и написанию сервисов автоматизированы, а сервисы проходят регулярное обучение: команда админов помогает поддерживать их работоспособность. Кроме того, мы постоянно передаём знания внутри команды на еженедельных мероприятиях.

Обязанности:

Реализация точки входа для устройств, использующих MQTT-протокол
Это новый высоконагруженный сервис для взаимодействия с устройствами, которые общаются при помощи MQTT-протокола. Сотни тысяч одновременных устройств, десятки тысяч сообщений в секунду. Реализация системы нагрузочного тестирования
Одна из главных целей команды телематики — надёжность и отказоустойчивость решений. Для этого система должна выдерживать не только текущую нагрузку: необходим запас прочности, предсказуемость потребления ресурсов при масштабировании, отказоустойчивость в большом спектре ситуаций. Реализация новой системы управления прошивками и конфигурациями устройств
Новая система должна объединить несколько разрозненных систем, вобрать в себя все плюсы предшественников и предоставить возможность подключать новые виды устройств быстрее. Развитие системы хранения данных об устройствах
Для каждого устройства мы храним по несколько десятков различных параметров. К системе, которая их хранит, предъявляются высокие требования по нагрузке, доступности и масштабируемости. При этом она должна развиваться, в ней должен появляться новый функционал — например, для быстрой диагностики устройств. Больше о бэкенде в Яндексе — в канале Yandex for Backend

Ключевые навыки:

  • Имеете опыт разработки на С++ или Golang
  • Разрабатывали бэкенд нагруженных систем
  • Ориентируетесь в классических алгоритмах и структурах данных
  • Любите погружаться в детали проблем и особенности их решений