Developer for Bazel framework and infrastructure (Monorepo)

Требования

Разработка ПОC++

Местоположение и тип занятости

Москва

Компания

ТОП-3 международная компания в области IT-безопасности, один из лучших работодателей России

Описание вакансии

Условия работы

Проект Monorepo — это отказоустойчивая, быстрая, распределённая, удобная инфраструктура для разработки в едином репозитории: сборочный и тестовый конвейеры, CI/CD пайплайн, VCS для работы с большим репозиторием, масштабируемое высокодоступное файловое хранилище, мониторинги, роботы и боты. Мы разрабатываем инфраструктуру для всей компании, большинство разработчиков сталкивается с ней каждый день. И это делает нашу работу особенно ответственной.

На данной позиции вам представится возможность стать одним из тех героев, кто приведёт компанию к качественному скачку скорости разработки, и вот почему.

В Monorepo находится код почти всех проектов компании. Проекты связаны друг с другом и образуют большую кодовую базу. Каждое изменение кодовой базы валидируется перед коммитом. Для комфортной работы разработчиков необходимо, чтобы процесс валидации, т.е. сборка и тестирование, был быстрым.  Причем под «быстрым» понимается ни час, ни два, а минуты.

Эту задачу мы хотим решать с помощью кеширующей масштабируемой сборочной системы от Google — Bazel (https://bazel.build/).

Для чего Вы нам нужны:

  • разработка фреймворка, удобного для описания сборок С++, C# проектов нашей компании;
  • разработка sandbox для Windows (https://docs.bazel.build/versions/master/sandboxing.html);
  • создание и поддержка инфраструктуры распределенного кеша;
  • внедрение Remote Execution (https://docs.bazel.build/versions/master/remote-execution.html) на существующей инфраструктуре сборки и тестирования;
  • разработка механизма интеграции сборки Bazel проектов в проекты CMake;
  • поддержка форка Bazel.

Что Вам необходимо для этого:

  • знание классических алгоритмов и структур данных;
  • умение самостоятельно доводить до конца поставленные задачи;
  • интерес к исследовательской деятельности;
  • умение погружаться в новые области.

Желательно:

  • понимание принципов работы систем сборки;
  • опыт разработки на C++;
  • опыт разработки на Python;
  • опыт кроссплатформенной разработки (Windows, Linux, macOS).

Стек технологий, применяемых в проекте Monorepo: C++; C#; .Net; Python; Bazel; Git; Azure DevOps Server; Kubernetes; Docker; Nomad; Grafana; Vault; OAuth; s3; Ceph; MinIO; Artifactory; Ansible; MS SQL; MongoDB; ClickHouse; Rabbit MQ; Elasticsearch.