Developer for Bazel framework and infrastructure (Monorepo)
Требования
Местоположение и тип занятости
Компания
Описание вакансии
Условия работы
Проект 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.