В Яндексе есть целая экосистема внутренних инструментов для разработчика: у нас свои системы для контроля версий, сборки, непрерывной интеграции, деплоя и многое другое.
Мы разрабатываем Arc — это легковесная система контроля версий для монорепозитория. Интерфейсно Arc очень похож на Git, но архитектурно это куда более масштабируемая и централизованная система, поэтому отказоустойчивость и быстродействие — её ключевые свойства. Наша система контроля версий способна работать с репозиториями, размеры которых больше нескольких десятков терабайт. Arc использует виртуализацию рабочей копии вместо скачивания всех данных репозитория: это позволяет занимать место на диске только для хранения локальных изменений. Чтобы быстро показывать историю изменений файлов, мы применяем сложные алгоритмы и индексы.
Продукт растёт год от года и является основным хранилищем кода Яндекса. Технически это проект на современном С++ с корутинами, асинхронным общением с базой данных, многоуровневым кэшированием и gRPC-интерфейсом.
Руководить разработкой системы контроля версий и инструментов вокруг
Вам предстоит улучшать пользовательский опыт разработчиков Яндекса. Git задал стандарт ведения работы с коммитами, ветками и PR'ами, но мы знаем, как сделать проще, не лишая пользователей возможности использовать привычный для них Git-like flow.
Вы будете заниматься развитием сервиса: вас ждут публичные API, rate-limiter, работа с многоуровневыми кэшами, наведение порядка в миграциях и базах данных и многое другое.
В команде есть технический лидер, с которым предстоит наладить совместные процессы работы.
Наша команда расположена в нескольких городах и странах, поэтому вам потребуется умение организовывать работу распределённой команды.