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