Чтобы общий репозиторий использовался максимально эффективно, мы применяем методологию trunk-based development и для любого проекта строим всё необходимое из исходного кода (и это реально большой объём кода). Чтобы сделать это быстро, мы разрабатываем, развиваем и используем собственную эффективную систему распределённой сборки.
Система распределённой сборки, которую мы разрабатываем, позволяет использовать нашу систему сборки распределённо на сотнях мощных серверов. Репозиторий быстро растёт и развивается, и система распределённой сборки должна масштабироваться соответственно. Повысить скорость и стабильность — один из вызовов, стоящих перед нами прямо сейчас. Мы работаем над улучшениями в механизме гарантий RAM/CPU для отдельных нод, шедулингом с учётом статистики потребления ресурсов нодами, распределённым кешированием результатов сборки и тестирования, механизмами приоритизации и квотирования, использованием облачных мощностей. Всё это делается, чтобы более аккуратно и правильно распределить нагрузку и увеличить ресурсы кластера.
Система распределённой сборки — один из ключевых компонентов Автосборки, за которую мы также отвечаем. Автосборка — это комплекс из нескольких взаимодействующих между собой систем, которые совместно образуют pipeline. Он обеспечивает запуск на каждое изменение кода всех сборок, затронутых изменением, и тестов под несколько платформ. В pipeline планируется сделать множество больших рефакторингов, которые должны заметно ускорить Автосборку. От скорости Автосборки зависит производительность тысяч разработчиков Яндекса.
Общая вакансия в Отдел технологий разработки: https://yandex.ru/jobs/vacancies/dev/technology_dev/
Подробнее про задачи отдела вы можете почитать в статье "Какие технологии Яндекс строит для команд разработки?"
Мы свяжемся с вами в течение недели.