About the Client
Mosaic.us is a technology-powered general contractor. They work with residential real estate developers and homebuilders to construct homes after initial design and planning work is complete. Mosaic’s internal tech platform increases communication and collaboration between the dozens of teams that have to work together to complete construction projects.
Release Technologies Used
- Instant Datasets for instantly loading appropriate data into sales and preview environments.
Homebuilding is among the most complex businesses out there. Between design, permitting and construction any number of things can go wrong, leading to costly delays. There are often 40 to 50 different crews of subcontractors to manage in every home construction project, and supply scarcity is always a challenge.
Much of this work has historically been done with pen and paper, or by spreadsheet at best.
Mosaic uses technology to digitize every aspect of the homebuilding process. That means dozens of solutions covering disparate workflows, including data reports about timing and budgets, onboarding for subcontractors, bidding management and day-to-day site operations.
Mosaic has an engineering team of roughly 15, split across three product teams. In creating a wide-ranging platform, they ran into a common problem that comes with quickly iterating on new products. As the team grew, and as they built out the service, they ran into a ceiling of what they could do.
With just a few environments, and a significant time component for creating new ones, the logistics of testing new features proved challenging. That put a ceiling on how quickly Mosaic could round out its platform to capture every piece of the exhaustive process that is homebuilding.
What they were doing before
For a long time, Mosaic used Terraform on top of Heroku for creating environments (prior to migrating to AWS), without any kind of CI/CD pipeline. That was fine for a while when the engineering team was small, but over time, as the team grew and the complexity compounded, bottlenecks emerged. Limits on the number of apps that could be integrated with Heroku – they had over 150 integrated because of the sheer volume of different pull requests – held them back.
Heroku was not particularly reliable. Frequent memory errors and difficulty connecting to the API shut down the ability to continue working on new and updated features.
Extensive downtime meant teams of high-priced engineers sometimes spent several hours in a day just waiting to be able to work in their environments. With these wait times, a few hours here and a few hours there, engineer downtime quickly added up to weeks of delay for updates and new products.
Because there were limits on the number of apps, when developers wanted to create a new environment, they had to take inventory of their environments. And sometimes that meant deleting old environments to make room for new ones.
Spinning up new environments was doable, but their solutions didn’t preload the necessary data for accurate testing environments. Because of this, each new environment took about half an hour to create; collectively DevOps teams spent days just creating new environments.
A New Solution
Mosaic initially considered building an in-house solution, which would have required a significant time investment from their most highly skilled technical teams. Instead, they turned to Release’s Instant Datasets, which allowed Mosaic to pre-populate environments with the data needed for a full picture of how the software would perform. This was important for Mosaic, as executives, sales teams and others frequently wanted new environments to show individual features and updates to customers, or to play with a new idea.
The previous setup of manually creating and populating made these quick environments a painstaking endeavor. With Release, Mosaic can now spin up or shut down new environments with just a couple clicks.
Mosaic quickly switched over to Release, digging deep into their code in GitHub and setting up containers. This integration could have taken weeks, but with Release, Mosaic was able to quickly increase speed and reliability of their environments.
Mosaic is looking into Release’s Docker Compose feature, as it continues to improve upon its environments. This allows Mosaic to run their environments locally before shipping them to GitHub.
And going forward Mosaic will continue to integrate Docker tech into their operations. This is key to becoming more cloud independent and utilize a variety of different services to satisfy their needs.
- "The Release platform has been great for our developers. It's more stable and much faster than our previous solution. No longer are they losing hours of productivity at a time due to frequent issues of downtime."
Rodrigo Reis - Director Of Engineering - Mosaic