Старший бэкенд-разработчик в Медиаплатформу

Яндекс·Russia·Удалённо, Офис·2д. назад

Наша платформа — часть Yandex Infrastructure. Мы помогаем доставлять аудио и видео таким продуктам, как звонки в ЯСим, Алиса, Телемост, Автономный транспорт и многим другим.

Сейчас мы ищем Go-разработчика, чтобы увеличить объём выпускаемых фич для Автономного транспорта. Это будет основным, но не единственным направлением работы для вас в нашей команде.

Это важно потому, что Автономный транспорт работает с очень сложными сетевыми условиями. Не с классическими видеозвонками, а с ситуациями, когда задержка в 150 мс — это метры пути, потеря нескольких кадров, слепая зона, а деградация канала LTE/5G посреди перекрёстка или пробки — штатный, а не исключительный случай. Мы проектируем стек, который остаётся управляемым и предсказуемым в реальном мире мобильных сетей.

Проектирование и развитие медиасервера на Go
Вам нужно будет строить систему, которая принимает множественные видеопотоки с камер по протоколам WHIP/WHEP и управляет ими. Это высоконагруженный сервис, где важна каждая миллисекунда.

Построение низколатентного обратного канала управления
Через WebRTC Data Channel (SCTP) нужно передавать команды и телеметрию с гарантиями по порядку и срокам доставки. Вам предстоит определить, как система общается с устройствами в реальном времени.

Качество передачи видео
Вы будете работать с механизмами, которые напрямую влияют на пользовательский опыт: bitrate/congestion control (GCC), NACK/RTX, FEC, keyframe-запросы (PLI/FIR) и jitter-buffer-стратегии. Главный приоритет — низкая задержка, а не плавность.

Управление ICE/STUN/TURN в мобильных сетях
Вам предстоит обеспечивать стабильную работу при смене вышек сотовой связи, быстрый ICE restart, приоритизацию путей и bonding нескольких SIM-каналов. Это задача, где сетевые условия меняются каждую секунду.

Построение наблюдаемости и обеспечение надёжности
Вам нужно будет создать систему сбора RTCP/getStats, метрик задержки glass-to-glass и алертинг на деградацию канала. Также предстоит продумать graceful failover сессий и поведение системы при полной потере связи.

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

  • Уверенно владеете Go: конкурентность (Goroutines/Channels/Context), профилирование, работа с сетью и бинарными протоколами
  • Имеете практический опыт работы с WebRTC/SIP/RTSP: понимаете SDP-переговоры, ICE, DTLS-SRTP, RTP/RTCP (не на уровне «поднял пример», а на уровне отладки)
  • Понимаете транспортный уровень: UDP, TCP, TLS, поведение под потерями и джиттером; умеете читать и интерпретировать pcap
  • Имеете опыт эксплуатации сервисов под нагрузкой (метрики, трейсинг, разбор инцидентов)
  • Обладаете базовыми знаниями Kubernetes
  • Получили профильное образование по математике, обработке сигналов или сетям
  • Работали с мобильными сетями (LTE/5G), multipath, QUIC
  • Имеете опыт работы именно с pion/webrtc (или его подпроектами: pion/ice, pion/rtp, pion/sctp, pion/interceptor) и WHIP/WHEP
  • Знаете congestion control (GCC, BBR), FEC, simulcast/SVC изнутри
  • Умеете работать с realtime-системами, где задержка критична (телеуправлением, робототехникой, стримингом, VoIP, облачным геймингом)
  • Знаете кодеки (H.264/H.265/AV1, аппаратное кодирование), понимаете trade-off latency vs quality

Почему в нашей команде интересно:

  • Измеримая, физическая ответственность вместо абстрактных метрик.
  • Задачи, которых нет в стандартном WebRTC-стеке: они ломают привычные предположения о том, что «плавность важнее задержки».
  • Работа с открытым стеком: не «чёрный ящик» SFU, а Pion, который можно читать, править и дополнять под свои требования.
  • Взаимодействие с железом и реальным миром: не сферический трафик, а LTE на трассе, туннели, хэндоверы между вышками.

Похожие вакансии

Другие вакансии Яндекс