A real estate company with a purpose
Compass' mission is to help everyone find their place in the world
Compass is an American real estate technology company providing software to real estate agents. Founded in 2012, the company is headquartered in New York City and operates in 21 U.S. markets including New York, Philadelphia, Boston, Washington D.C., Dallas, South Florida, San Francisco, Chicago, Los Angeles, Aspen, The Hamptons, Santa Barbara, and Newport Beach.
Compass is the first company to have built a proprietary mobile app for real estate agents. Through their platform, they are leading the industry and changing how agents and clients navigate the process of finding or selling a home. Compass has created the first modern real estate platform pairing the industry’s top talent with technology to make the entire experience of finding a home intelligent and seamless.
The need for a stable CI/CD pipeline
Compass has 316 engineers and 20 mobile developers spread across multiple technology centers in NYC, DC, and Seattle. They have two tracks for mobile developers: feature-based mobile developer roles for helping the product teams iterate on specific feature sets and infrastructure-minded developer roles for maintaining and iterating on the mobile platform.
The mobile teams have been working natively in Swift and Kotlin since 2016. For iOS, they build their UI in code using SnapKit, use a homegrown reactive programming library called Snail, and leverage an MVVM architecture. For Android, they build their UI in code using Anko, reactive programming with Snail-Kotlin, and leverage MVVM as well.
Building a CI/CD pipeline was one of the first projects the mobile team took on as they saw it as an essential step for moving fast. Before switching to Bitrise they previously used CircleCI and prior to that, they used an on-premise Jenkins solution. After looking at a few other solutions, such as BuddyBuild, Travis, and NeverCode during their research for a new CI tool, they found Bitrise in February 2018 and ultimately chose the platform due to its flexibility.
A single solution for all their needs
The build system at Compass is configured to ship alpha, beta, RC, and a production build for the same app. When a GitHub pull request is merged to the master they build a beta app, tag a release version for the workflow to build a release candidate and upload it to the App Store. For iOS, they achieve this with a custom script that wraps the xcodebuild and injects different bundle IDs and plist entries. For Android, they use the Gradle Wrapper with custom scripts to build different product flavors — all via Bitrise.
Additionally, their code-signing is handled in these steps while they add their certificates and signing keys via the secrets interface in the workflow editor. In their experience, other hosted iOS CI providers did not offer this flexibility and they all required additional tooling, such as fastlane to complete this step. Since they prefer not to use additional dependencies except when absolutely necessary, they greatly appreciate Bitrise not forcing them to do so.
Tenfold increase in the mobile team’s agility
Since the mobile teams at Compass started using the platform — thanks to the easy-to-navigate workflows and branch/tag hooks — they have seen a tenfold increase in their agility. By accelerating and streamlining their CI processes, the platform has enabled them to rapidly iterate while growing — they currently run an incredible number of 5-600 builds per week for a single app. Their build times have also improved: they now average around 10-15 minutes for iOS on and 5-8 minutes for Android pull requests.
They believe that Bitrise is first in class at releasing support for new Xcode versions, which enables their mobile team to continue to move fast. Whether it’s a beta build or delivering to the app store, their responsibilities have shifted from the team to the platform: they now have the entire process of building, testing, codesigning, and shipping automated in Bitrise. As a result, they are able to focus on what’s important: to make searching for a home a great experience for everyone.
If you're interested in joining Compass, head to their careers page and explore their open positions here.