Maze, which creates a platform to help product design teams test, learn, and act rapidly during the design process, is going all in on continuous deployment, explains Thomas Groutars, Staff Software Engineer at Maze.
“We recently transitioned our release cadence from gitflow to trunk-based development, which gets us much closer to continuous deployment,” Groutars says. “We aim to go full CD in the next few months.”
Before moving to a continuous delivery strategy, the Maze engineering team was deploying 5 times per week on average. Since moving to the new process on CircleCI, they’re now able to deploy 33 times per week and they got their average lead time down from 100 hours to 3 hours and 30 minutes.
The engineering organization is divided into seven pods focusing on different areas of the product and the platform. The team’s next mission is to make each pod more independent by having more ownership over their part of the codebase.
“Every cycle, each pod will commit to a certain number of initiatives that they’re going to ship,” Groutars says. “We try to deploy code as often as possible, and use feature flags when necessary so we can decouple feature releases from deployment.”
The speed of releases is dictating our CI/CD evolution. “CI is extremely important for us to move fast while making sure we don’t break things,” Groutars says. “We have more than 40 engineers working in a single codebase who are shipping features very rapidly. It’s critical that we make sure all tests and builds are green before deploying — that we can identify what’s wrong and fix problems as fast as possible.”
Even before Maze embarked on its CI/CD journey, engineering leaders at the company knew they wanted to adopt CircleCI. “We needed a solution that scaled for our growing team,” Groutars says. “CircleCI was able to accommodate a lot of the structural changes we’ve made.”
CircleCI’s dynamic configuration feature, which lets users execute conditional workflows and commands via setup workflows, has been vital to Maze.
“It’s helped us scale and to easily make changes to our CI pipeline,” Groutars says. “Our dynamic config is generated by a script written in TypeScript, and that has enabled us to keep it organized and change it really fast without breaking things.”
In 2020, Maze shifted to a monorepo strategy; the ability to dynamically generate the configuration dependent on the repository’s topology was key to the strategy’s success.
“Today, when developers create new packages, they don’t need to worry about the CI configuration,” Groutars says. “They only have to make sure that the necessary scripts are defined, and our dynamic config will pick it up and run the necessary tests.”
Maze developers have also come to rely on the CircleCI Insights dashboard for overviews of the health and usage of repository build processes, allowing them to make better engineering decisions. “We can confirm where developers spend most of their time waiting,” Groutars says.
“I can’t imagine us working without CircleCI. It’s critical to making sure we ship code with quality, and it automates all our deployments.”
Staff Software Engineer at Maze
How CircleCI powers Maze’s business
Perhaps the most important metric for a successful CircleCI deployment is adoption by developers.
“When you work with the developer experience, you hear a lot of concerns about tools and processes,” Groutars says. “We hear engineers’ concerns about build and test times, and CircleCI helps us identify the areas that need improvements and quickly address them. CircleCI is implemented in a way that most developers don’t have to worry about how it works.”
Because developers are freed up from concerns about configurations, they have more time to develop product features. “CircleCI has helped us automate lots of tasks, so developers only have to worry about building the product,” Groutars says. “That gives them the necessary focus to build faster and better.”
Benefits since using CircleCI
- Automation saves time, frees up developers to create new features
- Dynamic configuration keeps projects organized
- Enables faster speed with releases
Maze empowers product teams to test anything from prototypes to copy, or round up user feedback – all in one place. Maze helps teams rapidly collect user insights across teams and create better user experiences, together. Maze works with Figma, Adobe XD, InVision, Marvel, and Sketch.