Fundrise × Mergify

How Fundrise use Mergify to suppress their pain points and keep engineers engineering.

Summary

Challenges

  • Make sure every pull request passes the test suite.
  • Automate the coding process.
  • Stop running tests pipeline multiple times.

Solution

  • Set up Mergify to fit their automation needs.
  • Use labels to guide engineers.
  • Improve their workflow with rules.
  • Leverage Mergify merge queue to update and merge pull requests.

Results

  • Saved 35% CI time.
  • Doubled output.
  • 3× UI tests.

Who's Fundrise

Fundrise is one of the leading real estate investment platforms. Founded in 2012 and headquartered in Washington, DC, Fundrise's goal is to use technology to make high-quality real estate investments available to everyone at a low cost. Since launching their first offering in 2012, they have invested in more than $7 billion worth of real estate across the United States. Today, they manage more than $2.8 billion of equity on behalf of more than 300,000 individual investors. Fundrise's Android team is currently at seven developers and has adopted Mergify into their CI process. As a company, Fundrise has around three hundred employees - and growing.

What It Was Like Before Mergify

Fundrise's most significant pain point was that they wanted every pull request to pass tests (unit test, static checks, UI test, etc) before merging to the develop branch.

The UI tests must be run on an emulator or a physical device, spending up to 90 minutes to complete the pipeline. It was a source of frustration because they needed to wait for that entire pipeline to complete to merge another pull request.

For Fundrise software engineering teams, manually merging code isn't an interesting task. For instance, when they were having pull requests completed and ready to get merged, engineers were spending too much time trying to hit the merge button or updating their pull request.

The team started to look for a solution that would queue the update and merge actions needed — a merge queue. They found Mergify and a competitor, read some articles about the solution, and looked into building their own home-made solution.

Taking into account the cost, maintainability, field expertise, and functionalities required, they reject the idea of building their own tool. After trying most solutions on the market, they ended up choosing Mergify because of its customer support, features, and dashboard.

We tested Mergify and some competitors — and very much prefer Mergify.

Dan Lowe - Lead Mobile Software Engineer at Fundrise

Changes Are Welcome

Fundrise customized Mergify to its needs:

  • Queue feature is used to avoid everybody trying to hit the merge button simultaneously.

  • Fundrise enforces a checklist as part of the merge process. They require engineers to make sure code is covered by unit and UI tests.

  • They automate their workflow with custom Mergify rules such as labeling on conflicts or labeling on queueing. This makes it really helpful for the team, and satisfying to see when a pull request is getting merged.

  • They also have a do not merge protection label. Indeed, sometimes everything gets reviewed, and they realize there is a problem with something, so they need to stop.

  • The team know they can leverage more Mergify feature, such as batch merges, in the future, when the throughput will need to be increased.

009jz1uf.png

We want to keep engineers engineering.

Dan Lowe - Lead Mobile Software Engineer at Fundrise

Mergify Impact on Fundrise

With an exponentially growing team, they saw that costs were also following that same trend. Fundrise's UI test costs, the most expensive part of their CI pipeline increased in an unexpected way. While their output doubled, the number of UI tests tripled.

Once they tried and adopted Mergify, they quickly were able to reduce test runs. They were able to almost cut half their CI costs.

Being able to reduce that significantly is astounding for Fundrise.

Just try it and play around to see how customizable Mergify is. It's really exciting to see all the things it can do!

Cameron Jump - Senior Mobile Software Engineer at Fundrise

Ready to get started?