Свяжитесь напрямую по этой вакансии
По городу
3 лет
Опыт работы
Полная занятость
Тип занятости
Гибрид, Офис
Формат работы
Бэкенд
Специализация
IT & Tech
Отрасль
Корпорация
Тип компании
Разработчик в Arc VCS
Наша группа — часть Platform Engineering в Яндексе.
Бо́льшая часть кода Яндекса лежит в огромном монорепозитории. Для комфортной работы с ним наша команда создала внутреннюю систему контроля версий Arc VCS. Она похожа на всем известный Git, однако Arc куда более масштабируемый и способен работать с репозиториями, чьи размеры переваливают за десятки терабайт. Чтобы отображать такие объёмы кода, мы используем механизмы виртуализации файловой системы. Чтобы правильно и быстро показывать историю изменений файлов, применяем сложные алгоритмы и индексы. Для ежедневного поддержания нагрузки в 200k RPS — свои легко масштабируемые во всех направлениях микросервисы. Поэтому, чтобы разрабатывать и поддерживать Arc, нужно быть специалистом очень широкого профиля.
Стабилизация сервиса При написании Arc мы много где сознательно сре́зали углы. Сейчас Arc уже не молодой проект, а очень важный для компании сервис. Самое время поднимать кластеры для разных потребителей, внедрять рейт-лимитеры, улучшать кеширование и т. д.
Реализация сложных алгоритмов и индексов Многие базовые алгоритмы Git давно внедрены и у нас, но их улучшение — непрерывный процесс. Например, недавно реализованный индекс истории позволил ускорить аналог git log в Arc в три раза — и кандидатов на улучшение ещё множество.
Разработка виртуальной файловой системы Придётся потрогать inode’ы руками, разобраться в инвалидации кешей в fuse и в том, как сделать checkout в рабочей копии на 300 ГБ за единицы секунд.
Разработка своего воркфлоу пользователей Git задал стандарт работы с коммитами, ветками и PR, но мы находим его излишне сложным. Хотим сохранить привычный Git-like flow — но при этом дать пользователям альтернативу, которая во многом упростит разработку.
Больше о бэкенде в Яндексе — в канале Yandex for Backend