Revolut Illia Kucheriavyi May 14, 2024

The Fundamentals of iOS Development at Revolut

Article Summary

Illia Kucheriavyi from Revolut reveals how 120+ iOS engineers ship weekly releases across 5 apps while maintaining 150,000+ automated tests. Their secret? A mono-repo with 160 shared modules and build times that dropped from 40 to 10 minutes.

Revolut's iOS team manages multiple financial apps serving millions of users with weekly App Store updates. They've built an engineering culture around speed and quality, using modular architecture, feature flags, and custom tooling to deliver continuously without sacrificing reliability.

Key Takeaways

Critical Insight

Revolut ships production iOS code weekly to millions of users by combining modular architecture, aggressive automation, and developer-owned quality.

The article details their custom feature flagging framework and experimentation platform that lets them test ideas with statistical significance before full rollout.

About This Article

Problem

Revolut's iOS codebase had grown too large for XCode's native build system to handle efficiently. The team needed to keep shipping quality software quickly across 5 applications without hitting these technical walls.

Solution

Illia Kucheriavyi's team switched to Bazel, Google's build tool, which provided reliable caching for both cloud and local builds. They also built Swift CLI tools in-house that replicate the CI setup locally, so developers can build the same way regardless of their environment or which branch they're on.

Impact

PR validation dropped from 40 minutes down to 10 minutes. The team now saves roughly 2,000 to 2,500 CI hours each month while handling around 2,200 pull requests and 4,000 to 5,000 CI builds monthly.