← Все вакансии

Разработчик в команду Автосборки DevTools

Автосборка — CI-система «из коробки» для тысяч разработчиков. Она запускает большинство автотестов в монорепозитории Яндекса. Когда разработчик пытается закоммитить изменения, Автосборка определяет затронутые тесты, запускает их и, если всё прошло успешно, разрешает интегрировать код в trunk. После интеграции кода в trunk Автосборка запускает посткоммитные проверки, чтобы находить ломающие коммиты, уведомлять авторов и поддерживать качество основной ветки.

Технически Автосборка — это высоконагруженный сервис, использующий множество внутренних технологий, начиная с сервиса распределённой сборки DistBuild и заканчивая ML-предиктором, предсказывающим необходимое количество ресурсов и прогнозируемое время для проверки вносимых изменений. За сутки сервис проверяет более 10 тысяч пул-реквестов, выполняя более сотни миллионов автоматических тестов.

Мы помогаем тысячам разработчиков Яндекса быстро и безопасно вносить изменения в свои продукты, снижая время обратной связи и количество красных прогонов, и сейчас усиливаем команду разработки.

Задачи и обязанности

Увеличение доли быстрых и предсказуемых проверок


Мы постоянно совершенствуем Автосборку для ежедневной работы тысяч пользователей внутри компании, стремясь предоставить разработчикам лучший в мире CI «из коробки». Перед нами стоят задачи как ускорения времени проверок, так и повышения точности предсказания времени их завершения. Предстоит оптимизировать запуск тестов в монорепозитории: сокращать количество запускаемых тестов в проверках без потери качества, внедрить режим Fast Fail для немедленной остановки при первой критической ошибке, улучшить работу с flaky-тестами, повышать точность предсказания времени выполнения проверок.

Повышение эффективности


Совместно с командой вам предстоит переосмыслить концептуальное устройство Автосборки, чтобы справиться с текущим темпом роста нагрузки. Потребуется глубоко разобраться в устройстве самого сервиса, а также в предназначении, возможностях и гарантиях смежных сервисов. Предстоит улучшить балансировку и планирование нагрузки, повысить эффективность использования квоты в распределённой системе сборки и других внутренних системах.

Предоставление инструментов для анализа и отчётности


Нужно будет создать дашборды и отчёты по экономии ресурсов для отслеживания эффективности инфраструктуры, упростить управление доступом и квотами, чтобы облегчить администрирование и контроль затрат.

Больше о бэкенде в Яндексе — в канале Yandex for Backend

Требования

  • Уверенно пишете код на Python и готовы при необходимости прокачаться во втором языке программирования, например C++
  • Понимаете основы построения высоконагруженных и распределённых систем, умеете работать с очередями, сетевыми протоколами, БД
  • Готовы погружаться в предметную область инструментов разработки, монорепозитория и внутренних сервисов
  • Работали с CI/CD в проектах среднего и крупного размера: занимались настройкой пайплайнов, описанием сборки, интеграцией с системами тестирования
  • Привыкли покрывать код тестами, следите за качеством и умеете читать чужой код не хуже, чем писать свой

Дополнительные требования

  • Работали с инфраструктурными сервисами, системами сборки и тестирования, in‑house CI
  • Решали задачи, связанные с графами зависимостей (графы сборки, графы тестов и т. п.)
  • Оптимизировали производительность, занимались профилированием и работали с высоконагруженными сервисами
  • Разрабатывали одновременно на C++ и Python в одном проекте
Python CI/CD
Откликнуться →