Яндекс Телемост — это молодой сервис, который позволяет организовывать видеовстречи для работы, проводить вебинары, общаться с родными и друзьями. Бэкенд Телемоста — сложная распределённая отказоустойчивая система из множества компонентов. Нагрузка на сервис растёт очень быстро, мы улучшаем его архитектуру, масштабируем и развиваем его.
Наш стек: Javа (в отдельных сервисах используются Kotlin и Go), PostgreSQL, Arcadia (VCS и CI), ClickHouse, Monitoring.
Почему у нас классно:
- У нас распределённая команда, основная часть которой работает из Москвы. Каждый квартал собираемся всей командой на крупный тимбилдинг.
 - Мы поддерживаем инженерную культуру: еженедельно проводим архитектурные встречи внутри бизнес-юнита. На них бэкенд-разработчики из разных команд презентуют архитектуру новых проектов, а остальные подключаются к обсуждению и задают вопросы. Это помогает учиться на реальных кейсах, делиться опытом и находить лучшие технические решения.
 - Уделяем внимание качеству кода: делаем код-ревью и не жертвуем качеством ради скорости.
 
Какие задачи вас ждут
Архитектурные решения, влияющие на весь продукт
Телемосту всего четыре года. Уже сейчас в нём ежедневно проходит больше 100 000 видеовстреч, на продакшене работает 30 000+ core CPU. Телемост работает на собственной WebRTC-платформе Goloom. Нам важно продолжать повышать качество нашего сервиса.
Технические задачи для масштабирования и развития распределённого высоконагруженного сервиса
Вы будете решать сложные технические задачи, чтобы масштабировать и развивать распределённый высоконагруженный сервис мониторинга в разных компонентах сервиса, разрабатывать механизмы согласования и синхронизации участников конференций и их стримов.
Участие во всех инженерных практиках команды
Вам предстоит проводить код-ревью, помогая поддерживать чистоту и читаемость кода. Нужно будет покрывать новые и изменённые функции тестами, принимать участие в архитектурных ревью, обсуждать и улучшать решения вместе с коллегами.
Мы ждем, что вы
- Разрабатывали на Java
 - Понимаете, как делать надёжные отказоустойчивые системы
 - Ответственны и аккуратны, способны тестировать собственный код и работать с чужим
 - Умеете работать в команде
 - Имеете навыки написания тестов (юнит-тесты, интеграционные)
 
Будет плюсом, если вы
- Работали с WebRTC
 - Разрабатывали для Unix/Linux
 - Писали на Kotlin или Go
 - Понимаете принципы работы СУБД
 - Имеете навыки DevOps или смежные (настройка деплоймента, мониторинга и т. д.)