Обязанности:
Нам нужен опытный разработчик, чтобы усилить команду разработки новых продуктов для нашей видео-стриминговой платформы Facecast для VoD, онлайн-стриминга с задержкой (HLS) и в рилтайме (WebRTC). Основной стек продукта: JavaScript/TypeScript; React, Redux, Redux RTK; WebRTC/LiveKit; WebSocket/gRPC; ViteJS. Обязательно наличие опыта разработки медийной части веб-приложений на базе WebRTC с использованием LiveKit, Janus, mediasoup, Jitsi или аналогичной SFU-платформы, понимание как масштабировать видеоконференцию на 100+ участников. Сделать кнопку «Присоединиться к звонку» к такому опыту не относится. Конкретно по WebRTC нужно знать: различия между Mesh, SFU, MCU и опытом работы хотя бы с одним из подходов (предпочтительно SFU); Simulcast/SVC, уметь объяснить разницу, плюсы и ограничения; управление потоками: MediaStream/ MediaStreamTrack/replaceTrack, переключение устройств (камеры, микрофоны); getUserMedia, screen sharing (getDisplayMedia), обработку ошибок и edge-cases; принципы signaling, ICE, STUN/TURN, кандидатов, реконнекта; диагностику WebRTC-проблем (bitrate, jitter, packet loss, codec negotiation). Что требуется: знать бо́льшую часть нашего стека; уметь писать с фреймворками и без, на чистых JS/TS; уметь работать с медиа в браузере; плюсом будет, если можете читать код бэкенда, он у нас на Go; знать паттерны проектирования, принципы SOLID и ООП, умение применять эти принципы и паттерны для отделения логики приложения от визуализации состояний в React; иметь реальный опыт коммерческой разработки с несколькими фреймворками, включая React, последние несколько лет вы работали ведущим разработчиком не на фрилансе; глубокое понимание базовых классов и возможностей ES6; опыт использования Redux Toolkit или аналогом для управления состоянием приложения; хорошо бы знать как устроен бэкенд, понимать как работают реляционные и KV БД; базовые знания Linux и CI/CD-инструментов: git, Docker, Docker Compose, Gitlab CI/CD; ответственность, организованность и умение работать в команде. Что нужно делать: развивать и поддерживать продукты; проектировать архитектуру и реализацию, защищать свои решения; организовать разработку, тестирование и поддержку созданного; писать читаемый и легко поддерживаемый код; декомпозировать и приоритизировать задачи; проводить кодревью; работать с техдолгом; делиться знаниями. Условия: вы будете частью команды и, вместе с тем, мы постараемся выделить в вашу личную разработку конкретные продукты; аккредитованная Минцифры, 10 лет успешно работающая продуктовая айти-компания; пишем для себя, не аутсорсим; удалёнка, при желании можно работать в офисе в Москве; зарплата, размер которой зависит от знаний и опыта; здоровые отношения внутри команды; удобный график работы, и совам и жаворонкам будет комфортно.Похожие вакансии