Challenges

20% failure rate on main branche attributed to logical merge conflict

Managing daily deployments while being mindful of security and code quality

Navigating the intricate tooling and workflows in a large engineering organization (350+)

Solution

Utilized Trunk Merge for automated monitoring, merging, and prioritization of pull requests

Employed Trunk Check to proactively manage code health and gradually reduce technical debt on their own terms

Results

Saved an average of 18.8 hours of engineering productivity each day by avoiding merge issues

Implemented effective linting and static analysis for every pull request, enhanced by powerful GitHub annotations

Enabled engineers to focus more efficiently on core product development tasks

"Trunk has saved us 330 hours by preventing merge issues over the last 35 days - that's 9.4 hours of engineering productivity saved per day...it's been great."
Senior Software Engineer

Who is Faire

Faire, founded in 2017, is the leading online wholesale marketplace where local retailers discover their next bestsellers from independent brands across the globe. In 2021, the platform saw remarkable expansion, welcoming 26,000 new brands and 160,000 new retailers.

Their environment

1050

Total employees

3

Monorepos

Technologies

KotlinTypeScriptJenkinsTerraform

Unblocking Engineering

Managing hundreds of engineers across a few repositories is challenging. Tech debt increases as the codebase grows quickly. This makes it hard to find time for both tech debt and new products. Faire used Trunk Check to tackle this problem. The "hold-the-line" feature allows engineers to focus on new code issues. They handle legacy issues in separate pull requests. Now, they can concentrate on their current tasks. Additionally, with Trunk Check, every must-fix issue on a pull-request is now annotated inline inside GitHub’s UI, regardless of which tool (e.g. detekt, flake8, taplo) is reporting the problem.

Trunk Check provides a single entry point to manage the discovery, installation, and execution of the myriad of linters, formatters, and static analyzers applicable to each repository in their organization. By providing tool auto-discovery, managed upgrades, and hermetic installation, trunk check guarantees each engineer is running the most up-to-date instance of their selected tools without any config or version discrepancies.

Stopping Logical Merge Conflicts on main

With hundreds of engineers working in concert, the Faire repositories were frequently seeing instances of broken main branches. Faire had a 20% failure rate on their main branch because of logical merge conflicts. Exhaustive CI testing wasn't enough to prevent this. Broken main branches led to multiple issues and delays in the engineering workflow. Introducing Trunk Merge solved this problem. It kept Faire's main branches stable, improving both efficiency and system uptime.

Developer Experience Partnership

Faire tried other merge queue solutions but preferred Trunk. What set Trunk apart was proactive customer support. Additional features like Slack notifications and GitHub comment automation also helped. These improved the team's productivity and workflow significantly.

On Build vs Buy

The team at Faire did consider building their own merge queue, but the costs of maintaining it were daunting. “I think it's preferable to pay for the feature outright because that way, we don't have to [worry] about maintenance or anything like that. We can do what we are fundamentally competent at and [let] Trunk do the merge queue thing because you guys have engineers that are constantly thinking about it, making it better over time.”

Company-wide Rollout

After piloting Trunk Merge with a small team in one repo, Faire gradually rolled out Merge to all the repositories in the organization that were susceptible to logical merge conflicts. “The problem with logical conflicts is not isolated to our backend repositories, it's a problem with our iOS repositories, our Android repositories, and our front-end repositories...” Each team immediately understood the value; as George noted - “when I said there would be no more logical conflict issues, people were sold...there weren't many questions after that.”

Understanding the cost of broken main branches

The Faire team has seen multiple benefits in terms of daily workflow and overall productivity gains:

“Trunk Merge was a winner for us because something that used to take 30 minutes can be replaced with something that takes two. Suddenly you have a 10% to 15% reduction in failure rate across a week, which is awesome.”

Given the historical rate of broken branches and average hourly PR merge rate, we can calculate both the impact of broken branches and the cost savings to the team from deploying Trunk Merge.

“Trunk Merge was a winner for us because something that used to take 30 minutes can be replaced with something that takes two. Suddenly you have a 10% to 15% reduction in failure rate across a week, which is awesome.”
Senior Software Engineer

Maximizing Productivity: Significantly Reduces Engineering Downtime

Employing a merge queue consistently at Faire saved more time than the full working hours of a dedicated engineer. The blast radius of a broken branch extends far beyond just those unable to merge their changes; it also impacts anyone branching from or rebasing onto the compromised code, amplifying disruptions across the team. This often leads to a flurry of communications, such as Slack messages and emails, which only compounds the loss of productivity. George from Faire suggests a clear benchmark for organizations: "If your main branch goes red even once a day, you should definitely consider a merge queue.” In practice, any organization seeing even a moderate cadence of their main branches being broken should employ a merge queue. The small delay in merging code onto main is easily outweighed by the fire drill/disruption a broken main introduces to an engineering organization.

Trunk as DevEx Partner

Faire's deployment of Trunk Check and Trunk Merge to their robust team of 350 engineers exemplifies their commitment to excellence in development experience. The team looks forward with enthusiasm to leveraging Trunk’s comprehensive DevEx suite, celebrating Trunk's agility and responsive partnership—where feedback quickly transforms into action, showcasing an impressive turnaround time that significantly enhances their operational efficiency.

Reflecting on the transformative impact of this collaboration, George highlights the newfound assurance in code stability and quality control: “Now with Trunk, my team doesn’t have to worry about the main branch failing or code not being analyzed... the failure rate on our main branch is now in our control and determined by the speed and performance to quality ratio that we want to set for ourselves, which is pretty great.”

Try it yourself or
request a demo

Get started for free