Adventures in the Modern Monolith: How do you keep a secret at Tilt?
When 50+ Azure App Service instances restart simultaneously and all reach for the same Key Vault, things break.
At Empower Tilt, a data-driven fintech startup, our lifeblood is understanding our users and how they interact with our products. To do that effectively, we need to get new features and product updates into their hands fast. If you’ve ever worked in a startup, you know the pace is exhilarating, and the need for speed is paramount. For our iOS team, that meant taking a hard look at our release process. We went from a painstaking weekly manual ordeal to a highly automated, almost “set it and forget it” system that allows us to iterate at lightning speed.
Think back to the “good old days” – maybe not so good for our release pilot! We used to aim for one iOS release a week. Sounds manageable, right? Not when each step was a manual dance, guided by a Notion checklist.
Here’s a peek at what our weekly ritual looked like:
This whole process would consume about 90 minutes of our release pilot’s time each week. That’s an hour and a half that could be spent building awesome new features! We knew there had to be a better way.
Our first major leap was recognizing the power of automation. We introduced a fantastic tool called Runway, specifically designed to streamline and automate mobile releases. Alongside this, we transitioned to a release train model, defining a specific day and time for our releases. This brought a new level of predictability and discipline to our deployment cycle.
Here’s how Runway started transforming our process:
The goal? To get develop to be releasable at all times. This meant a fundamental shift in our QA strategy – rather than a large, end-of-cycle regression, we started focusing on QA during the Pull Request (PR) stage.
As a fintech startup, our desire to get products to customers as quickly as possible is insatiable. This is where Feature Flags (FFs) became a game-changer. FFs allow us to decouple code deployment from feature release, meaning we can ship features to production “dark” and then enable them for specific user segments when we’re ready. This significantly increased our appetite for rapid releases.
Given this new need, our desire to automate the release process intensified. The aim was to cut the release pilot’s work down to a mere 5 minutes per release.
We rolled up our sleeves and worked closely with Runway to push the boundaries of automation:
This intense focus on automation allowed us to slash the release pilot’s work time to a stunning 5-10 minutes per release (excluding release monitoring). That’s a massive win!
With our new, highly efficient process in place, we started pushing the boundaries of our release cadence. We first moved to a bi-weekly release schedule, and today, we’re comfortably running two releases every single week. This allows us to iterate faster, learn leaner, and get product into our users’ hands at an unprecedented pace. Our current process is highly scalable, giving us the flexibility to run even more releases a week if needed.
While we’ve made incredible strides, there’s always room for improvement. Our primary bottleneck right now lies in QA and regression, which is still largely a manual process. But fear not! We’re already on it, working diligently to introduce UI automation tests to further streamline this crucial step.
We’re incredibly proud of how far we’ve come in optimizing our iOS release process at
Empower Tilt. It’s a testament to the power of automation, strategic tool adoption, and a
relentless focus on delivering value to our users.
_I’m a Lead iOS Engineer with 10+ years experience crafting widely-used applications. While I’ve contributed to a range of applications widely used across Australia, I’m currently with Empower. My passion lies in creating exceptional user experiences through robust software architecture and thoughtful design. I thrive on building products, continuously learning from data analytics and experimentation to iterate and improve. _

*I’m adept at streamlining release processes, implementing feature flags, and pioneering data-driven A/B testing, always striving to define and execute technical roadmaps that foster team growth and deliver significant impact.
Past projects include: NAB, ANZ Grow, PTV, AFL, Netball, NRL.*
Specialties: iOS, Objective-C, Swift, Reactive, UX, Agile Methodologies, Technical Leadership, Data-Driven Product Development, A/B Testing, Feature Flagging, Team Mentorship.
When 50+ Azure App Service instances restart simultaneously and all reach for the same Key Vault, things break.
In the era of blazing fast compute and memory, it’s easy for the performance characteristics of System objects to feel like a thing of the past.
A seemingly simple FK constraint drop turned into a high-stakes locking issue that threatened database stability.
More in Engineering