Ya Test: инструменты сборки и тестирования

Язык буткемпа: C++, Python
Технологии: Code coverage, Fuzzing

Наша команда разрабатывает единую утилиту для сборки, запуска тестирования и работы с инструментами разработчика внутри компании. Эта утилита представляет собой одну из важнейших точек входа для любых действий, связанных с процессом разработки в монорепозитории Яндекса.

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

В команде в основном используется Python, а для узких мест — C++.

Стек

Python 3 Основная часть кода
Cython Некоторые узкие места ситонизированы
С++ Некоторые части критического пути графогенерации написана на C++ для ускорения и уменьшения накладных расходов
gRPC У нас есть подпроцесс cache daemon, взаимодействующий с основной утилитой с помощью gRPC
Python 2 Часть кода ещё использует второй Python, но мы в процессе активного перехода

Команда

У нас распределённая команда, состоящая из четырёх разработчиков и одного тимлида.

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

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

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

Особенности

  • Результатами нашего труда пользуются тысячи разработчиков Яндекса ежедневно, поэтому мы можем сделать их работу проще, комфортнее и эффективнее.
  • У нас есть инженерно сложные и разнообразные задачи.
  • В команде открытая атмосфера, а это значит, что если вы захотите проявить инициативу, что-то предложить или обсудить, то все будут готовы к конструктивному диалогу.

Что нужно принять во внимание

  • Как и у многих других инфраструктурных команд, у нас есть дежурства. Мы сами следим за работоспособностью собственного продукта, а также отвечаем на запросы пользователей во внутренней поддержке. Дежурство проходит в рамках рабочего дня. Ночью и по выходным не дежурим, только если ситуация не форс-мажорная. Новых людей на дежурство не отправляем. У вас будет время спокойно освоиться и накопить достаточную экспертизу.
  • C++ не является обязательным требованием, но будет являться большим преимуществом.
  • У нас кросс-платформенная разработка, поэтому требуется понимание того, как всё будет работать на разных системах.
  • Код утилиты написан на 2/3-совместимом Python, но в настоящий момент мы ведем активные работы по переезду на Python3 и частичному отказу от Python2.

Вызовы

  • Создание единого кросс-платформенного инструмента разработчика для сборки, запуска тестирования и работы с вспомогательными утилитами внутри Яндекса.
  • Тысячи людей ежедневно пользуются нашим инструментом для разработки, поэтому мы всегда стремимся предоставлять удобный UX и помогать быстро решать пользователю его задачи.
Предыдущая
Следующая