Лаборатория Касперского

Developer C++ (CoreTech, Bazel)

Не указана
  • Москва
  • Полная занятость
  • Удаленная работа
  • От 3 до 6 лет
  • C++

Ищем разработчика в команду 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.