DeepDrive

Helping DeepDrive meet automotive software quality standards

Location

Munich, Germany

Customer since

Oct 21, 2022

Paco Sevilla

DevOps Engineer

Company

Company

Founded in 2021, DeepDrive is a German high-tech company based in Munich. In this automotive bastion the company is developing a new generation of electric motor based on its patented Dual Rotor technology. They have a team of more than 60 people including a group of 10 software engineers. This team is responsible for developing embedded software which controls their innovative motors.

Challenges

Challenges

Keep their main branch always green

Secure the code and release process

Improve Developer Experience

Small Team, Big Challenges

Paco's team is in charge of developing software for the automotive industry. This field comes with a lot of constraints and requirements. While the team aims to pass regulatory and quality certifications in the next few years, it is already facing real challenges of automotive software development in their everyday work. Code review processes must be strict, and code quality standards are high, as are test and code coverage.

What's more, in addition to these regulations, developing software for embedded applications adds an objective complexity to the workflow. Indeed, Paco and his team must deploy their code and tests to microcontrollers, complicating the whole toolchain. The software team comprises just ten engineers to meet the company's technical and business objectives while respecting the constraints inherent in the market. Faced with all these challenges, a team of this size must rely on a perfectly oiled stack and a high level of automation to ensure maximum productivity.

Mergify is a no-brainer. If you want to have your main branch always working then you have to introduce some merge queue functionality.

Paco Sevilla

DevOps Engineer

A Complex Workflow

At DeepDrive, the Engineering team uses Valispace to document stakeholder, system, hardware, and software requirements. The software team then uses Jira to manage the features and bug fixes that they need to implement based on these requirements. As they are a relatively small team, every team member is focused on a specific part of the codebase.‍

One of their difficulties is integrating the hardware into the software development process. Paco's team runs automated tests remotely on different Hardware-in-the-Loop (HIL) setups. A remote execution server distributes these tests so that all developers can run HIL tests directly from their laptops.

Then, they create pull requests to merge the code into the main branch. From there, they test their motors and inverters with the new software on a test bench and eventually release it to their customers.

They handle their pull requests by reviewing code and defining standardized checks that the code must pass before getting merged. These checks include unit tests, automated HIL tests, static code analysis, and some manual checks that must be performed depending on the part of the codebase that was changed. All these checks are done before the branch is merged to the main branch so that they can be sure that the main branch is always working as intended.

DeepDrive relies on a monorepo, which is built and managed with Bazel. This eases the definition of interfaces between different parts of the codebase and simplifies the specification of tests and compilation targets for the different hardware platforms that they have.

I think Mergify boosts engineers' productivity and secures the code base. The developer experience is better when you don't have to change something to make the main branch work again.

Paco Sevilla

DevOps Engineer

Streamlined with Mergify

With their setup, the main challenge was ensuring that the main branch was always working for all the products that they offered. This is achieved by running their tests with the latest changes in the codebase right before merging it to main. And they needed a highly flexible solution to fit their complex workflow. Indeed, that's what Mergify provides them after a quick setup and its in-code configuration in YAML. 

They also use Mergify to run some basic checks on the pull requests, like checking the PR labels and making sure the branch has a linear history. ‍Paco and his team use core features of Mergify, like our merge queue, but they are planning to go further:

  • Use Mergify to check the PR title to ensure the commits are traceable to Jira and Valispace.

  • Automate more checks and tests based on the specific part of the codebase that was changed in the pull request.

  • Set up automated, random, and distributed review requests to ensure a uniform code quality in their codebase, which is suggested by some standards in  the automotive industry. 

However, with their current setup, Mergify is already helping Paco and his team to meet some of the constraints of the automotive market while making the team's day-to-day work more enjoyable and productive.

Streamline your CI workflow

Streamline your CI workflow

Streamline your CI workflow

Streamline your CI workflow