Real-Time Video Streaming Developer
Описание
Обязанности Развивать медиасервер для видеокомнат на Node.js, TypeScript и mediasoup, а также сервис записи на GStreamer и FFmpeg; Поддерживать передачу медиа через WebRTC, сигнализацию по WebSocket и API на Fastify; Анализировать качество звонков: задержку, RTT, jitter, потерю пакетов, битрейт, FPS и работу кодеков; Развивать адаптацию видеопотоков к качеству сети и возможностям устройств участников, включая выбор качества и слоёв видео; Исследовать проблемы со звуком, в том числе влияние шумоподавления на качество речи; Обеспечивать работу звонков в разных сетях: передачу медиа по UDP и резервное подключение через TCP/TLS и TURN при сетевых ограничениях; Находить ограничения производительности больших комнат на стороне сервера и клиентов, проводить нагрузочные испытания; Повышать надёжность записи: разбирать рассинхрон аудио и видео, потерю фрагментов и сбои обработки; поддерживать загрузку записей в S3-совместимое хранилище; Развивать отказоустойчивость сервисов: обеспечивать восстановление после сбоев и бесшовное обновление без прерывания активных звонков и записей; Писать тесты и поддерживать запуск сервисов в Docker. Требования Уверенный опыт серверной разработки на Node.js и TypeScript; Практический опыт с WebRTC и понимание SDP, RTP и RTCP; Опыт работы с mediasoup или другим SFU-медиасервером; Понимание ICE, STUN/TURN и прохождения NAT, умение диагностировать проблемы подключения в корпоративных и ограниченных сетях; Понимание UDP и TCP и их влияния на задержку и качество медиапотоков. Понимание того, как кодеки, разрешение, FPS и битрейт влияют на качество, задержку и нагрузку; Опыт обработки аудио и видео с помощью FFmpeg и/или GStreamer; Опыт работы с Docker и автоматизированными тестами. Будет плюсом Опыт разработки сервисов записи звонков или видеоконференций; Знание Opus, VP8, VP9 и H.264; Опыт работы с simulcast, SVC, адаптивным выбором качества видео, NACK и FEC; Понимание архитектур SFU и MCU и способов масштабирования групповых звонков; Опыт настройки и эксплуатации TURN-серверов, например coturn; Опыт построения отказоустойчивых сервисов с обновлением без остановки активных сессий; Опыт работы с S3-совместимыми хранилищами и нагрузочного тестирования WebRTC-сервисов. Условия: Аккредитованная IT компания; Насыщенная корпоративная жизнь: хакатоны, корпоративные игры, выезды на природу; Корпоративная библиотека для повышения hard и soft skills; Внутренние обучения (имеем свою Академию GreenData) и возможность оплаты внешних обучений; Социальный пакет; ДМС, английский язык; Оформление по ТК РФ; Конкурентная з/п по результатам собеседования.