Eccalon
Software Engineer – Broadcast Media Platforms
Автоматический пересказ вакансии на русском. Полный текст на языке оригинала и форма отклика — на сайте работодателя.
Инженер для проектирования и эксплуатации распределённых систем потоковой передачи медиаданных с низкой задержкой и высокой пропускной способностью. Работа с транспортом, кодеками и broadcast-инфраструктурой в тесной связке с data- и platform-командами.
Задачи
- Проектировать, создавать и поддерживать масштабируемые пайплайны потоковой передачи данных
- Разрабатывать и эксплуатировать архитектуры транспорта и broadcast-медиа
- Реализовывать кастомную логику транспорта и сокетные архитектуры для потоков пакетов и кадров с высокой пропускной способностью
- Оптимизировать системы по пропускной способности, задержке и эффективности использования ресурсов
- Участвовать в планировании мощностей и тюнинге производительности
- Внедрять мониторинг, логирование, алертинг и метрики для стриминговых приложений
- Интегрировать и кастомизировать open-source медиафреймворки FFmpeg, GStreamer и TSDuck в собственные стриминговые экосистемы
- Реализовывать низкоуровневые обёртки и API на C, C++ или Rust для работы с сетью и аппаратно ускоренными видеокодеками
- Обеспечивать строгое соответствие стандартам потоков, порядок пакетов, отказоустойчивость и покадровую точность тайминга в системах линейного плейаута
- Оптимизировать медиа-ПО под локальность кэша CPU, минимум аллокаций памяти и zero-copy пути данных
- Внедрять мониторинг, логирование и метрики для здоровья потоков на уровне пакетов, джиттера и аналитики транспортных потоков
- Отлаживать продакшн-проблемы: потери пакетов, всплески задержки, повреждение кадров, backpressure, дрейф часов
- Участвовать в on-call дежурствах и реагировании на инциденты критичных систем данных
- Сотрудничать с broadcast-инженерами по стримингу, MAM, плейауту, автоматизации и графике
- Сотрудничать с product-, analytics- и ML-командами для поддержки новых сценариев
- Писать чистый, поддерживаемый и хорошо покрытый тестами код
- Участвовать в дизайн-ревью, код-ревью и технических обсуждениях
- Вносить вклад в документацию и инженерные практики
Требования
- Степень бакалавра в Computer Science, Computer Engineering или смежной технической области (или эквивалентный практический опыт)
- 3+ года профессионального опыта в разработке ПО
- 2+ года практического опыта разработки real-time приложений на низком уровне / уровне пакетов на C, C++ или Rust
- Уверенное владение ручным управлением памятью, работой с указателями и многопоточными оптимизациями
- Сильный опыт с современным языком конкурентности, таким как Go или Python, для оркестрации потоков, инструментария и control-plane API
- Глубокое понимание сетевых протоколов UDP и TCP/IP, опыт сокетного программирования, кастомного congestion control, packet pacing и коррекции ошибок (ARQ / selective retransmission)
- Опыт с broadcast и линейными видеопотоками, медиаконтейнерами и мультиплексированием (в частности MPEG-TS)
- Опыт создания собственного ПО для диагностики потоков, траблшутинга или мониторинга в реальном времени
- Кодек-агностичное мышление и знание низкоуровневых реализаций H.264/AVC, H.265/HEVC и новых стандартов вроде AV1
- Сильные навыки скриптинга на Python или Bash для оркестрации потоков, автоматизации пайплайнов и управления локальными системами
Навыки
- C
- C++
- Rust
- Go
- Python
- Bash
- UDP
- TCP/IP
- MPEG-TS
- H.264
- H.265
- AV1
- FFmpeg
- GStreamer
- TSDuck
- libsrt
- librist
- RTMP
- Protobuf
- JSON
- AWS
- GCP
- Azure
- Docker