← Все вакансии

Разработчик на С++ в YI (команда транспорта нотификаций)

Наша команда разрабатывает крупный инфраструктурный сервис нотификаций для всех сервисов Яндекса. Для него характерны высокие нагрузки, сложные технические задачи и архитектурные вызовы. Мы помогаем самым разным продуктам быстро взаимодействовать с пользователями по ежедневным сценариям в реальном времени. Через сервис проходят миллиарды сообщений в сутки: пришло новое письмо — мы уведомим, подъехало такси — мы позовём, изменился контент веб-страницы — мы обновим.

В команде широко используется C++ последнего стандарта, Boost, PostgreSQL, Git, налажены прозрачные процессы, широко применяются практики гибкой разработки и бережливого производства: ограничение незавершённой работы, предварительное проектирование, код-ревью, парное программирование. Разработчики решают самые разные задачи — от асинхронного программирования до распределённых систем и реализации требований конечного продукта.

Наши материалы:

Задачи и обязанности

Разработка новых каналов доставки


Вы будете проектировать, разрабатывать и внедрять новые каналы доставки — например, отвечать за отправку СМС, уведомлений в Telegram или событий в Yandex Message Queue.

Масштабирование и оптимизация стабильности


Вы поможете обеспечивать высокую доступность (SLO 99,99%) и масштабировать сервис (сейчас мы обрабатываем около 300 тыс. запросов в секунду в API). Для этого, например, необходимо эффективно работать с WebSocket-соединениями: уметь быстро удалять старые подписки и создавать новые, когда 30 млн. соединений одновременно переподключаются.

Интеграция с экосистемой Yandex Cloud


Вам предстоит тесно работать с другими облачными сервисами: интегрировать Cloud Notification Service с системами управления доступом (IAM), биллингом и другими.

Больше о бэкенде в Яндексе — в канале Yandex for Backend

Требования

  • Уверенно владеете C++ и используете его в продакшен-разработке
  • Знаете классические алгоритмы и структуры данных и умеете применять их на практике
  • Понимаете основы многопоточного и асинхронного программирования
  • Умеете писать читаемый и поддерживаемый код, участвовать в код-ревью
  • Готовы разбираться в сложных системах и постепенно брать на себя больше ответственности

Дополнительные требования

  • Работали с Linux и серверной разработкой
  • Имеете опыт разработки сетевых или распределённых сервисов
  • Понимаете сетевой стек (TCP/IP, HTTP, взаимодействие сервисов)
  • Знакомы с Go или готовы его использовать
  • Понимаете основные принципы проектирования систем и сервисов
Go PostgreSQL Linux Yandex Cloud Git
Откликнуться →