🔀 How to untangle and manage build distribution — Webinar, May 16th — Register
🔀 How to untangle and manage build distribution — Webinar, May 16th — Register

How Runway keeps Route’s mobile deliveries on track.

company
Route automatically connects to everything you've ordered from all your favorite retailers to allow you to protect and visually track all of your packages, anytime, anywhere.
headquarters
Lehi, Utah, USA
industry
E-Commerce / Shipping
Mobile Team Size
25+
Platforms
iOS (Swift), Android (Kotlin)
Release Frequency
Weekly
Integrations
GitLab, Jira, TestRail, Bugsnag

Modern online shopping is amazing. From the comfort of your home, you have access to billions of products and virtually unlimited variety. But once you’ve waltzed through checkout, actually getting the goods to your door is another story. The luxury of endless choices also means there’s a mess of different ways a package could arrive at your doorstep (assuming that it actually ever does) — and just as many different places for you to go to figure out where a package is or to resolve issues with delivery. Order status? Let’s find your order confirmation among 3,000 other unread emails and make sure you have your retailer-specific email and password and 19-digit order number at the ready — only to get bounced over to the shipping partner of the day, with its own esoteric interface for understanding what’s going on.

Route aims to drastically simplify all of this: one service that connects to everything you’ve ordered from anywhere, so you can visually track all your packages en route, get helpful notifications with status updates in real time, and resolve shipping issues with a single tap. It might sound too good to be true, but over 8 million Route customers have experienced it for themselves. To make this all work, Route’s proprietary AI technology parses your email for tracking numbers, carrier names and product info, while leveraging multiple layers of security to keep customer data completely private. Merchants — 18,000 partner brands and counting — love Route because a customer who isn’t worried about shipping issues is a more highly engaged one (400% more when they use Route, in fact), and one less likely to drive up support costs.

All of Route’s technology is delivered to users in the best package of all: their native iOS and Android apps. Route’s mobile team of 20 engineers has a laser-like focus on making the apps an effective place to do three things: Track (real-time, visual package tracking and notifications), Resolve (instantly resolve shipping issues such as lost, stolen or damaged items), and Discover (surfacing new brands and products based on previous purchases). The end result is a mobile experience that feels magical — and which is accordingly at the core of Route’s vision. In a world where we’re increasingly inundated by pointless alerts and noise, 92% of Route’s app users enable push notifications, and Route is committed to delivering value for them through its mission-critical mobile engineering efforts.

Challenge

Rapid growth jeopardized by opaque, inefficient, and error-prone releases

Route has experienced explosive growth, becoming one of only a handful of unicorns that reached the $1 billion valuation mark in just three years. The company was able to achieve this feat in no small part because of their mobile apps, which are shipped weekly with a relentless focus on iterative improvement and experimentation. iOS (Swift) and Android (Kotlin) are each built natively, with full feature parity between the two platforms, in order to meet Route’s high standards for a terrific customer experience.

That drive to improve the Route mobile experience quickly and continuously is top-of-mind for the entire engineering org, but brings with it clear challenges. Although the mobile team had been more or less managing to ship each platform weekly, app releases were becoming a clear bottleneck and a risky single point of failure. There were only a few key engineers (a handful on the Android side, and just one for iOS) who were able to reliably run a release process that was sparsely documented, with no central place to understand progress and keep track of all the needed steps.

“Engineers were unhappy during releases because it was easy to get confused about the status of everything. Sometimes this led to mistakes, and team leads needed to keep a close eye on things.”

Alex Branti
Android Developer

A big contributor to the impending bottleneck problem was the increasingly cumbersome collection of manual tasks that ate away at the team’s time, week-in week-out. To ensure PMs and other stakeholders weren’t in the dark, engineers were painstakingly making sure all Jira tickets were tagged correctly based on the code diff shipping with each release. To support a robust beta testing program, the team had to always wait for new builds to land in TestFlight and Play Console and then assign the appropriate testing groups or tracks to each — not to mention submission for approval for external testers, on the Apple side. There was, of course, a directive from leadership to try to automate as much as possible, but many of these critical release tasks proved to be beyond the reach of the team’s existing tooling and CI/CD pipelines. (Even some of the jobs CI/CD could handle brought their own issues. Like when pipelines were kept running to wait for builds to process in App Store Connect, so their dSYMs could then be downloaded and uploaded back to Bugsnag… all while driving up pricey CI bills in the process.)

The collective inefficiencies were starting to become a huge strain on Route’s engineers, and were directly leading to less confident releases. Mistakes were being made and bugs were slipping out into production more often than the team was comfortable with. Those few senior engineers who needed to supervise all releases were being stretched to their limit – on the iOS side, the responsible lead was even running releases while on vacation. Things finally got to a point where core engineers were starting to seriously consider less frequent release cycles — a major concession for a mobile team that prided itself on iterating and shipping continuously.

“Before Runway, we had many discussions about the pain we felt releasing every single week (not to mention a lot of hotfixes in between). We even considered moving to alternative, less frequent release cycles.”

Matthew McArthur
Senior iOS Engineer

Solution

Runway as a foolproof release runbook

Just before a possible breaking point, two things happened at Route, luckily both around the same time. 

First, Route brought in a program manager whose maiden initiative involved (finally) examining their mobile release process in detail and making sure all teams were aligned and aware of how it worked. And then, the hard part: she had to figure out how to actually codify and implement that newly formalized release process.

Second, Route came across Runway. They scheduled a demo with their core mobile team and engineering leadership and were immediately intrigued. Runway looked like it could solve their most pressing need, that desire for a consistent and transparent release process. Route’s engineers saw Runway’s “self-documenting” interface and its delineated steps with clear, gating statuses and felt that the platform might be exactly what they had been missing. 

“Runway’s interface is like a self-documenting and visual release process, so it’s easy to onboard new engineers and have them run releases. It’s much harder to make mistakes than before… you would need to blatantly ignore steps to have a bad release.”

Matthew McArthur
Senior iOS Engineer

The core team filled in the program manager on Runway’s capabilities, and there was quick consensus that this was exactly the kind of framework that they were looking for. Runway took care of everything needed to actually “install” Route’s release process, and it did so in a way that was easily understood and actionable by the entire team. Both iOS and Android sides got their workflows set up in Runway — more quickly than they had expected — and they found that not only was working within the tool itself an immediate win, but its proactive Slack alerts were helping to improve visibility and communication externally as well.

Soon, Runway was also helping the team address another one of their problem areas, getting them to the level of automation they had wanted but been unable to reach before. Now, just about all App Store Connect and Play Console tasks were hands-free, including automated beta testing group assignment and submission for review. And, not only did Runway automatically label tickets in Jira, but it managed the corresponding Jira releases across the multiple different projects, previously a big source of manual work and context-switching for the Route team. As an added bonus, the dSYM download and upload dance was now handled outside of their build pipelines, cutting their CI bills! 

“Now anyone can run a release, and I don’t feel like I have to monitor things because Runway has it covered. I feel much more confident that everything’s going to get done, and get done right.”

Matthew McArthur
Senior iOS Engineer

Results

Fewer hotfixes, less mental overhead, and excited new hires!

Today, Route’s iOS and Android teams both ship every week with confidence, and without the drain they felt before. They comfortably rely on a release pilot rotation that sees everyone on the team take turns running releases, with no babysitting or oversight from senior engineers required. Onboarding new team members and familiarizing them with the release process is now simple and painless. Runway’s guardrails provide a clear roadmap for the team to follow, and the helpful Slack notifications make clear to everyone exactly where things stand along the way, and when blockers might need attention.

The Route team has found that Runway improves transparency both across the interdisciplinary org and across their other tools, both big DevOps wins. One much-loved feature, Runway’s TestRail integration, helps QA folks keep the rest of the team in the loop while regression testing is being run for each release, without extra work or comms required of them. And real time user reviews sent into Slack by Runway allow the entire org to get a read on how customers are receiving each update, and to collaboratively triage reviews that need attention. In Jira, the team feels that they’re able to trust their tickets and release data again, now that the haphazard chore of manually labeling all tickets is replaced by Runway’s automation.

“Previously, the problem with our release rotation was that people weren’t comfortable that they understood all the steps involved. With Runway, constant feedback from everyone is that releases are super easy, and they’re not afraid to run them anymore.”

Alex Branti
Android Developer

The benefits Runway has delivered to the team are so apparent and impactful that they’re showing them off during recruiting and hiring — and prospective candidates are impressed by what they’re hearing! And, those uncomfortable conversations about needing to reduce the frequency of release cycles now seem like a distant memory. Route is back to shipping, learning, and iterating rapidly and overhead-free.

“Every candidate that I interview is impressed with Runway. I’m seriously using it as part of my recruiting pitch.”

Augusto Pedroza
Head of Mobile / Director of Engineering

“Hotfixes are less frequent, and we definitely haven’t had the same conversations about wanting to change the release cycle to slow things down. That pain that we felt has come down and we’ve been able to maintain the same speed. The cognitive load during releases is way less, which is really nice. There’s a lot less to worry about.”

Matthew McArthur
Senior iOS Engineer

Release better with Runway.

Runway integrates with all the tools you’re already using to level-up your release coordination and automation, from kickoff to release to rollout. No more cat-herding, spreadsheets, or steady drip of manual busywork.