Developer (CoreTech, Bazel)
Требования
Местоположение и тип занятости
Компания
Описание вакансии
Ищем разработчика в команду 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.