Building great software is easier when you get the right tools. In 2023, I had the opportunity to speak with Senior Software Engineering Santosh Yadav about how Celonis uses extensible developer tools and a monorepo to build a next-generation process mining platform.
Yadav’s primary role is managing the monorepo used by the Celonis engineering team. He and his team keep the platform up-to-date and ensure the engineers aren’t blocked in any way, so they can be as productive as possible.
That means the team does a lot of planning. Each quarter, they map out new features and improvements they want to implement. For example, migrating to the latest versions of the monorepo and their application framework are both on the timeline.
Yadav said his team prioritizes upgrades by what benefits engineers most. In this case, the framework upgrade took priority because it “can bring more features to our monorepo and enable our engineers to write better code.” To ensure engineers aren’t blocked by anything happening with the monorepo, Yadav and his team created a Slack channel where everyone can communicate.
The team also wants to increase their code coverage. To do this, they train Celonis’ different engineering teams around the world, walking them through the latest features of the monorepo and application framework and helping them bring their apps into a unified front end.
As part of their work, Yadav and his team also support Celonis’ implementation of Nx, an open-source, extensible build system. Yadav said the tool offers several advantages over using a monorepo alone.
First, it makes deploying changes across multiple applications easier and faster. For example, engineers work on dozens of different applications that use a single design system. In the past, an update to the design system would need to be applied individually to each application. With Nx however, an upgrade to the design system can be applied across all the applications in the monorepo at the same time.
“We can just say, okay, now let's upgrade to the latest version of our design system,” said Yadav. “And all the apps are automatically migrated.”
Another benefit is the ability to ensure that all the applications use the same framework and library versions. Just like with the design system, when a new version of a framework, such as Angular, or a library, like React, is released, the team can deploy it across all the applications in one go.
These simultaneous updates make deploys more efficient and also ensure consistency across engineering projects.
The system also enables faster build times. Yadav told me that before they used the tool, the team would need to build every application whenever they made a code change, even with their existing monorepo. But the new system knows what’s been changed and only builds the affected apps and libraries.
“Let's say, my change affects only two apps and down the line there are probably two or three libraries which are affected,” Yadav told me. Nx will build just those five projects, not all the other applications and libraries. “So it increases your productivity, by actually reducing your build times,” he added.
Given the significant upsides of the new build tool, I asked Yadav if the different engineering teams had any concerns about bringing their projects into the monorepo or using Nx. He told me that some devs were concerned about losing “ownership” of their code or that the review process could change.
He and his team alleviated those concerns by explaining that engineers could still work as they had before, the new system was there to help the engineering department as a whole “build and deploy everything together.” Also, the team leads would still have access to their particular part of the code base, so they can “approve the pull requests, push them, merge them, or whatever they need to do.”
To learn more about how we’re pioneering advances in AI, machine learning, automation, analytics and data mining, and to see current engineering job openings, visit Celonis Engineering Jobs.