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 и помогать быстро решать пользователю его задачи.