Свяжитесь напрямую по этой вакансии
Разработчик в группу системы сборки и тестирования
Мы разрабатываем систему сборки внутри монорепозитория, которая обеспечивает статическую, герметичную, воспроизводимую и инкрементальную сборку, тестирование и пакетирование исходного кода на шести языках (С++, Python 2/3, Java, Kotlin, Go, TypeScript) с возможностью кросс-компиляции и прозрачного interoperability между языками.
Система сборки состоит из двух частей:
Утилита ymake Написана на C++, выполняет анализ зависимостей и создаёт граф сборки — как и в каком порядке надо собирать код.
Наша команда Развивает утилиты ya-bin и test_tool, написанные на Python 3, и предоставляет пользовательский CLI (интерфейс командной строки), запускает команды сборки, поддерживает изоляцию, обеспечивает взаимодействие с тестовыми фреймворками для разных языков программирования и агрегирует результаты.
Нас пять человек, мы геораспределённая команда — общаемся в зуме, раз в полгода встречаемся офлайн и обсуждаем прошлое, настоящее и будущее нашего продукта.
У нас есть ежедневные стендапы, еженедельное планирование, обсуждение архитектуры, циклические недельные дежурства — не ночью и не в выходные (кроме каких-то критичных проблем, но сидеть на телефоне не нужно).
В основном у нас формат проектной работы с поддержанием базового качества и возможным взятием обоснованно срочных и важных задач. В начале мы сезона выбираем, что из запросов будем делать, и в конце сезона показываем результаты. За каждым человеком в команде закреплён один или несколько проектов.
Например, за последнее время мы: * Доработали сервис телеметрии для CLI-приложения, и теперь у нас есть метрики и алерты — мы быстро реагируем, если что-то идёт не так. * Добавили линтеры в нашу систему сборки. Теперь разработчики могут запускать линтеры и управлять их конфигурацией единообразно. * Ускорили сборку за счёт улучшения сервиса распределённого кеширования сборочных артефактов. * Ускорили интеграционное тестирование за счёт фонового локального запуска тяжёлых сервисов. Традиционно мы фокусировались на изоляции и воспроизводимости тестов и потому поднимали сервисы на каждую тестовую сьюту, однако это заметно замедляет тестирование. Мы хотим переработать архитектуру и позволить жертвовать герметичностью в пользу более быстрого получения сигналов от тестов.
Мы исследуем боли разработчиков и их запросы к нашему продукту, чтобы уменьшить когнитивную нагрузку при работе с нашими инструментами.
Развитие модели системы сборки и тестирования Наша система сборки собирает и тестирует миллионы строк кода на разных языках, со своими особенностями и инфраструктурой. Нам важно тщательно подбирать варианты решения задач, не увеличивать техдолг, сохраняя консистентное поведение с существующими возможностями.
Написание эффективных алгоритмов Наш продукт запускается сотни тысяч раз на разнообразных машинах, а сборка может длиться от секунд до нескольких часов. В таких условиях нам важно не замедлять работу людей и релизные процессы, поэтому наши алгоритмы должны работать эффективно. А чтобы их эффективность росла, они должны быть понятными для будущих поколений.
Работа с пользователями Мы делаем продукт для людей — это значит, что мы слушаем наших пользователей и прислушиваемся к обратной связи. И иногда вежливо не соглашаемся. Для нас важно предлагать решения исходя из понимания систем и формулировать направления для развития в сторону системных решений.
Поддержка гарантий Система сборки — это основа инфраструктуры: релизных процессов, инкрементальной сборки и тестирования. Это накладывает на нас определённые требования. Мы хотим, чтобы полученный в результате артефакт или тест работал одинаково вне зависимости от машины, на которой он был собран и запущен. Для этого мы пишем кросс-платформенный код, следим за функциональной совместимостью результатов компиляций и кросс-компиляций, не даём окружению «протечь» внутрь нашей сборки.
Больше о бэкенде в Яндексе — в канале Yandex for Backend
3 лет
Опыт работы
Полная занятость
Тип занятости
Гибрид, Офис
Формат работы
Middle
Грейд
Бэкенд
Специализация
IT & Tech
Отрасль
Корпорация
Тип компании
По городу
Бэкенд
Специализация
IT & Tech
Отрасль
Корпорация
Тип компании