Ищем разработчика в команду Bazel для развития сборочной инфраструктуры в Monorepo.
Про Monorepo. Мы строим отказоустойчивую и быструю инфраструктуру разработки в едином репозитории: сборочные и тестовые конвейеры, CI/CD, инструменты для работы с огромной кодовой базой, высокодоступное хранилище артефактов, мониторинг и сервис-боты. Большинство разработчиков компании каждый день взаимодействуют с нашим стеком — скорость и комфорт их работы зависят от нас. Вы станете одним из людей, кто улучшит экспириенс работы со сборками. Для этого мы развиваем и внедряем кеширующую, масштабируемую систему сборки Bazel.
Задачи:
- Развивать фреймворк для описания сборок C++/C# в Bazel (правила на Starlark, макросы, тулчейны);
- Интеграция с CI/CD, разработка действий для конвейеров;
- Проектировать и эксплуатировать распределённый Remote Cache;
- Повышать наблюдаемость сборок: профили Bazel, метрики и дашборды;
- Сопровождать небольшой форк Bazel: мерджи апстрима, патчи, релизы, CI;
- Прорабатывать и поддерживать sandboxing на Windows/Linux/macOS;
- Документация, внутренние гайды и помощь командам при миграции на Bazel.
Почему это интересно:
- Влияние на скорость разработки всей компании;
- Сложные инженерные задачи на стыке сборочных систем, инфраструктуры и производительности;
- Широкая зона ответственности: от правил и тулчейнов до наблюдаемости и эксплуатации.
Что нужно знать и уметь:
- Понимание принципов систем сборки (инкрементальность, детерминизм, изоляция, кеширование);
- Уверенный опыт в одном из ЯП: C++ или Python (желательно — оба);
- Хорошее владение алгоритмами и структурами данных;
- Умение самостоятельно доводить задачи до результата, исследовательский склад ума;
- Чтение техдоков на английском.
Плюсом будет:
- Опыт работы с Bazel/Blaze или альтернативами (Buck/Buck2/Pants/Please), написание правил на Starlark;
- Знание: MSVC/Clang/GCC;
- Опыт Remote Execution (BuildFarm/BuildBarn или аналоги);
- Интеграция с IDE (Visual Studio/VS Code), генерация проектов/solution’ов;
- Опыт работы с Docker контейнерами;
- Понимание принципов CI/CD.