Find out how Mergify is helping DeepDrive meet automotive software quality standards.
Keep their main branch always green
Secure the code and release process
Improve Developer Experience
Founded in 2021, DeepDrive is a German high-tech company based in Munich. In this automotive bastion, DeepDrive intends to lead a revolution. To this end, the company is developing a new generation of electric motor based on its patented Dual Rotor technology. These motors are designed to be either used as central drive or integrated directly into the wheels. DeepDrive has earned significant recognition from the industry and is currently working with 8 of the top 10 OEMs on various development projects. By the end of 2023, DeepDrive will 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. Paco Sevilla is a member of this team, and part of his job is to implement tools and processes that make his team more efficient, while also satisfying the constraints of an automotive supplier.
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 is aiming 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 have to deploy their code and tests to microcontrollers, complicating the whole toolchain.
To meet the company's technical and business objectives while respecting the constraints inherent in the market, the software team comprises just ten engineers.
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.
Paco Sevilla - DevOps Engineer
Mergify is a no brainer. If you want to have your main branch always working then you have to introduce some merge queue functionality.”
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 to integrate 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 is in charge of distributing 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 are handling their pull request by doing code reviews, and defining standardized checks that the code must pass before getting merged. These checks not only include unit tests, automated HIL tests and static code analysis, but also 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, 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.
… Streamlined with Mergify
With their setup, the main challenge was ensuring that the main branch is always working for all products that they offer. 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:
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.
Paco Sevilla - DevOps Engineer
I think Mergify boosts engineers productivity and secures the code base. The developer experience is better when you don't have to go back and change something to make the main branch work again.