Replace code reviews with verified intentAviator Verify
Aviator
All customers
Amplitude logo

Scaling a monorepo with 100+ engineers

January 31, 2025

Team Size
203
Structure
Monorepo
CI Runtime
~
Deploys
Continuous
Featured integration
MergeQueue
Mae Capozzi

Mae Capozzi

Mae Capozzi is a senior software engineer with a focus on design systems and frontend infrastructure. She is the co-founder of Dedicated Co and she runs a newsletter Design Systems Newsletter in which she writes about design systems and frontend engineering.

Challenge

Amplitude's growing engineering team faced frequent mainline branch breaks and conflicts, requiring constant intervention from their frontend infrastructure team. Before Aviator, their solution was to use GitHub Actions for early morning rebases, which proved costly and inefficient. This also resulted in broken changes being introduced into the mainline branch due to outdated code and conflicting changes when multiple engineers merged pull requests simultaneously.

Mae Capozzi

Mae Capozzi

As the number of engineers at Amplitude increased, this problem was happening more often. And it was pretty common that the front end infrastructure team would have to jump in and try to triage the issue and figure out either how to fix it or find out who the right person was to fix it. Amplitude's growing engineering team faced frequent mainline branch breaks and conflicts, requiring constant intervention from their frontend infrastructure team. Before Aviator, their solution was to use GitHub Actions for early morning rebases, which proved costly and inefficient. This also resulted in broken changes being introduced into the mainline branch due to outdated code and conflicting changes when multiple engineers merged pull requests simultaneously.

Integration

Aviator StackedPRs enables Amplitude's developers to break up large pull requests, keeping code reviews manageable.

My manager at the time had been thinking about merge queue solutions. We compared GitHub's merge queue tool with Aviator and ultimately chose Aviator for the benefits beyond the merge queue. We've been really loving stacked PRs.

I like having the confidence that when I merge my code, if it's passed the checks, it's because it's actually passed the latest checks with the latest code. It saves me a lot of time trying to triage why the main branch isn't working or is broken. I just appreciate not having that on my plate anymore.

Mae Capozzi

Mae Capozzi

My manager at the time had been thinking about merge queue solutions. We compared GitHub's merge queue tool with Aviator and ultimately chose Aviator for the benefits beyond the merge queue. We've been really loving stacked PRs.

Impact

Amplitude's engineering leadership evaluated different merge queue solutions, including GitHub's native offering. They ultimately chose Aviator because it:

  1. Eliminated costly GitHub Action runs
  2. Reduced mainline branch breaks
  3. Decreased time spent on issue triage
  4. Improved developer confidence in merges

Mae Capozzi

Mae Capozzi

I like having the confidence that when I merge my code, if it's passed the checks, it's because it's actually passed the latest checks with the latest code. It saves me a lot of time trying to triage why the main branch isn't working or is broken. I just appreciate not having that on my plate anymore. Amplitude's engineering leadership evaluated different merge queue solutions, including GitHub's native offering. They ultimately chose Aviator because it: ‍

Feature highlight

For a team with 100+ engineers working in a monorepo, visibility into the merge process proved crucial. Aviator's merge queue visualization gave developers clear insight into PR status and merge order, eliminating confusion and reducing coordination overhead.

As one engineer noted, when developers ask "why hasn't my PR been merged yet?", they can now simply check the dashboard to understand their place in the queue.

Mae Capozzi

Mae Capozzi

As one engineer noted, when developers ask "why hasn't my PR been merged yet?", they can now simply check the dashboard to understand their place in the queue. ‍

Ready to transform your development workflow?