Case Study
About Sibros
Sibros is an all-in-one connected car solution for over-the-air updates, data management, and remote commands, which has an ISO 26262 ASIL-D functional safety rating, and is internationally compliant with safety, security, and data protection standards like TISAX, ISO27001, SOC 2 Type II, GDPR, and WP.29 R155 and R156.
Sibros’ Deep Connected Platform enables OEMs to cut through the chaos of disparate components and sensors, and provides them with a single source of truth to realize hundreds of use cases, reduce costs, and increase efficiency through the entire vehicle lifecycle.
6x
Build times impact productivity
Sibros’ firmware division of 45 engineers has well over 1300 test targets and just under 2 million lines of code in various languages. As a result, the company experienced longer than expected build times.
Sibros also targets multiple toolchains, OS distributions and kernels. However, inconsistent behaviors in compilation and test execution between developer machines and CI started to become an issue, which resulted in valuable engineering time lost in debugging, troubleshooting, and ensuring developer and CI environments didn’t drift apart. This also made deploying any upgrades to tooling increasingly difficult.
6x faster builds with EngFlow
With EngFlow Remote Execution, Sibros’ build times went through a 6x speedup. The company was also able to cache every object globally to prevent unnecessary rebuilds and save precious compute time.
Sibros engineers now enjoy consistent behaviors across developer machines and CI, enabling them to spend more time on feature development and less time on inconsistencies and bug fixes.
- Working with EngFlow reduces the number of engineers we allocate to resolving build inconsistencies and setup problems with developers; allowing us to spend more time developing features and improving our products.
- EngFlow’s solution allows our developers to work faster. Cache is now shared globally across the company, including with CI, so any one binary is never built twice.
- By allowing our CI jobs to operate faster and more efficiently, we are able to run with lower compute requirements. Machines are also able to spin down faster given that jobs complete quicker and we don’t need to spend time setting up complicated cache management solutions. EngFlow handles all this for us.
- Developers no longer need powerful laptops, since remote execution gives them access to much more compute power than they would ever have with a laptop. All our developers really need is a reasonable amount of RAM to complete Bazel analysis, which allows us to save money on machine CPU costs.
Bazel expertise at EngFlow
Sibros chose Bazel because they found it excelled at the things they care most about:
- Accuracy: Developers want to be able to trust what is coming out of their build system and delivered to their customers. Unfortunately, much of the software development world still relies on build systems where running "clean" commands is necessary to guarantee accurate results. Bazel does a good job of leveraging modern OS mechanisms such as PID & network namespacing, sandboxing, and per action containerization to ensure developers get what they are expecting. This saves time because they don't need to constantly "clean" when they don't get the results they expect from their builds.
- Polyglot: Sibros supports many different languages such as C, C++, Python, Rust, Java, and Kotlin. Being able to tie them together using a similar method of description in BUILD files is a powerful feature.
- Modular: Sibros’ firmware team works within the same monorepo. Bazel encourages modular description of builds using targets, which helps them enable and encourage re-usability of code across multiple teams working within the same model repository.