5 октября 2020
Разрабатываем серверные продукты для стриминга. Наша платформа используется другими разработчиками по всему миру в качестве бэкенда для приложений потокового видео, таких как онлайн-трансляции, конференции, видеочаты, вебинары, видеозвонки, видеонаблюдение, и т. д. Например, если разработчик работает над веб-проектом, он может взять HTTP сервер (сервлет контейнер) Tomcat или Spring Boot + Embed Tomcat. Если же проект требует работы с видео реального времени, трансляциями и передачей видеоданных, разработчик использует наш сервер приложений WCS. Т.е. Мы разрабатываем сервер приложений, который занимается видео, принимает и распределяет видеопотоки, конвертирует в различные протоколы и раздает на мобильные и веб-приложения.
Ищем достаточно низкоуровневого программиста Java / C. Низкоуровневость заключается в том, что придется напрямую работать с сетевыми протоколами, байтами, буферами, многопоточностью, реалтаймом, Java SE, и писать код, устойчивый к большим нагрузкам. Сервер может пропускать гигабиты видео в секунду. Это действительно большие нагрузки, которые внутри обрабатываются большим количеством тредов. Отсюда многопоточность. Критичные вычислительные задачи, связанные с обработкой сигналов вынесены в C часть через JNI. Поэтому в какой-то части кода вероятно придется работать с C или C++.
работать над задачами проекта, если вы больше предпочитаете или привыкли работать с текущими высокоуровневыми веб-стеками и фреймворками, такими как Spring, Hibernate, SQL and NoSQL, и т. д. Кроме этого, у нас много легаси кода, который также нуждается в планомерном рефакторинге и улучшении. Если вы предпочитаете не работать с легаси кодом ни при каких условиях, эта вакансия вряд ли то, что вам нужно.
если есть опыт и желание развиваться в этом направлении, решать схожие низкоуровневые задачи, работать с сетевыми протоколами из Java напрямую, разбираться как устроен транспорт аудио и видеопотоков по сети, изучать спецификации и драфты, создавать надежный код, устойчивый к нагрузкам и выполнению в многопоточной среде, рефакторить и улучшать существующую кодовую базу.
WebRTC, RTMP, RTSP, HLS, RTCP, RTP, SRTP, SDP, SIP, ICE, STUN, DTLS, TCP, UDP, Websocket, TURN, MP4, webM, HTML5; H.264, VP8, VP9, Opus, AAC, Speex, G.711, G.729; Streaming, Calls, Transcoding, Encoder, Decoder, Mixing, Recording, Resampling, Player, Live encoder, CDN, MCU, SFU, VOD; Android, iOS, Linux, Docker, AWS, Camera, Microphone, IP cam, SIP PBX