Posts

Showing posts with the label CI/CD

How WhatsApp Made Key Transparency Work (And Why It Matters)

Image
How WhatsApp's Key Transparency Changed the Game for Encrypted Messaging Okay so let's talk about something actually important for once - how WhatsApp made their encryption more trustworthy without making us jump through hoops. You know how every messaging app claims to be "secure" these days? Well WhatsApp actually put their money where their mouth is with this Key Transparency thing. Let me explain why this matters more than you might think. Visual from their tech docs - looks complicated but trust me it's cool The Big Problem Nobody Talks About So we all know WhatsApp uses end-to-end encryption. Great. But here's the sketchy part nobody mentions - how do you REALLY know you're talking to who you think you are? Like, what if: Some hacker swapped the encryption keys without you knowing? There's a middleman reading your messages right now? The app itself got compromised somehow? Scary stuff right? That's where Key Trans...

Advertisement

Migrating Airbnb’s iOS Build System from Buck to Bazel: A Technical Journey

Image
Introduction: Why Migrate at All? Imagine trying to assemble a massive jigsaw puzzle, only to realize halfway through that the pieces don’t fit together as smoothly as you’d hoped. This was the challenge Airbnb faced with its iOS build system, which relied on Buck , a build tool that had served them well but was becoming increasingly difficult to scale and maintain. Enter Bazel , a powerful and extensible build system that promised better performance, scalability, and developer productivity. In this blog post, we’ll dive into Airbnb’s journey of migrating their iOS build system from Buck to Bazel. We’ll explore the technical challenges they faced, the solutions they implemented, and the lessons they learned along the way. Whether you’re an iOS developer, a build engineer, or a tech enthusiast, this deep dive will provide valuable insights into modern build systems and migration strategies. Why Migrate from Buck to Bazel? Airbnb’s iOS codebase had grown significantly ov...

Flexible Continuous Integration for iOS at Airbnb

Image
A sketch of Airbnb’s new iOS CI system. Imagine a bustling kitchen where chefs are preparing hundreds of dishes simultaneously. Now, imagine if every chef had to wait for a single oven to bake their dish. Chaos, right? This is the challenge Airbnb faced with its iOS development process, where a monolithic continuous integration (CI) system struggled to keep up with the growing complexity and scale of the codebase. Enter a flexible CI system , designed to handle the unique needs of Airbnb’s iOS team. In this blog post, we’ll explore how Airbnb reimagined its CI pipeline for iOS, enabling faster builds, better scalability, and improved developer productivity. Whether you’re an iOS developer, a DevOps engineer, or a tech enthusiast, this deep dive will provide valuable insights into building a modern CI system. The Problem with Monolithic CI Airbnb’s iOS codebase had grown significantly over the years, with hundreds of developers contributing to the app. The existing CI system, bu...

How Airbnb Boosted Developer Productivity in Its Large-Scale iOS App

Image
How Airbnb's iOS Team Supercharged Developer Productivity (Without Burning Everyone Out) Let's be real - working on a massive iOS codebase sucks sometimes. Wait 15 minutes for builds. Fight Xcode. Cry over merge conflicts. Airbnb's mobile team knew this pain all too well - until they completely reimagined their development workflow. Here's the untold story of how they turned their iOS environment from sluggish to speedy. Not pictured: The frustration before these changes The Productivity Nightmare By 2020, Airbnb's iOS app had become a victim of its own success: 45-minute clean build times (seriously?) 300+ developers committing daily Daily "works on my machine" incidents One engineer joked: "I got through two Netflix episodes per build." Not exactly peak productivity. The Breaking Point Three warning signs forced action: New hires took 3+ days to set up their environment Senior engineers were spending...
Image
Lyft’s iOS Testing Revolution: How They Made Testing Less Awful (And Why It Worked) Let's be honest - iOS testing sucks. You write these giant test suites that take forever to run, then they break when someone changes a button color. Lyft's mobile team felt this pain BIG TIME - until they invented something called Focus Flows. Here's the messy story of how they fixed testing without making everyone hate their jobs. Not gonna lie - even their diagrams look better than most apps The Testing Nightmare Back in 2021 Lyft's iOS situation was rough: Test suites took 45+ minutes to run (coffee break anyone?) Flaky tests failed 30% of builds for no reason New devs needed 2 days just to understand the test setup One engineer joked: "Our tests tested our patience more than our code." Not ideal when you're trying to fix ride-sharing bugs at scale. The Breaking Point Three things forced change: 1. A critical payment bug slipped through test...
Image
How GitHub Slashed iOS Testing Time with Innovative Runner Features Imagine waiting hours for your iOS app tests to complete, only to find out that a single test failed and you need to start over. For GitHub’s engineering team, this was a recurring challenge—until they introduced advanced runner features to their testing infrastructure. By optimizing their CI/CD pipeline, GitHub significantly reduced testing time, improved efficiency, and empowered developers to deliver high-quality iOS apps faster. In this blog post, we’ll explore how GitHub implemented these innovative runner features, the challenges they addressed, and the impact they had on their iOS development process. Whether you’re an iOS developer, a DevOps engineer, or a tech enthusiast, this story will inspire you to rethink how you approach testing in your projects. Image Credit: GitHub Engineering The Challenges of iOS Testing Before implementing the new runner features, GitHub’s iOS testing process faced seve...

Advertisement