The Pragmatic Engineer

Building Reddit’s iOS and Android app


Listen Later

Supported by Our Partners

Graphite — The AI developer productivity platform. 

Sentry — Error and performance monitoring for developers.

Reddit’s native mobile apps are more complex than most of us would assume: both the iOS and Android apps are about 2.5 million lines of code, have 500+ screens, and a total of around 200 native iOS and Android engineers work on them. 

But it wasn’t always like this.

In 2021, Reddit started to double down on hiring native mobile engineers, and they quietly rebuilt the Android and iOS apps from the ground up. The team introduced a new tech stack called the “Core Stack” – all the while users remained largely unaware of the changes. What drove this overhaul, and how did the team pull it off?

In this episode of The Pragmatic Engineer, I’m joined by three engineers from Reddit’s mobile platform team who led this work: Lauren Darcey (Head of Mobile Platform), Brandon Kobilansky (iOS Platform Lead), and Eric Kuck (Principal Android Engineer). We discuss how the team transitioned to a modern architecture, revamped their testing strategy, improved developer experience – while they also greatly improved the app’s user experience. 

We also get into: 

• How Reddit structures its mobile teams—and why iOS and Android remain intentionally separate 

• The scale of Reddit’s mobile codebase and how it affects compile time

• The shift from MVP to MVVM architecture

• Why Reddit took a bet on Jetpack Compose, but decided (initially) against using SwiftUI

• How automated testing evolved at Reddit 

• Reddit’s approach to server-driven-mobile-UI

• What the mobile platforms team looks for in a new engineering hire

• Reddit’s platform team’s culture of experimentation and embracing failure 

• And much more!

If you are interested in large-scale rewrites or native mobile engineering challenges: this episode is for you.

Timestamps

(00:00) Intro

(02:04) The scale of the Android code base

(02:42) The scale of the iOS code base

(03:26) What the compile time is for both Android and iOS

(05:33) The size of the mobile platform teams 

(09:00) Why Reddit has so many mobile engineers 

(11:28) The different types of testing done in the mobile platform 

(13:20) The benefits and drawbacks of testing 

(17:00) How Eric, Brandon, and Lauren use AI in their workflows

(20:50) Why Reddit grew its mobile teams in 2021

(26:50) Reddit’s modern tech stack, Corestack 

(28:48) Why Reddit shifted from MVP architecture to MVVM

(30:22) The architecture on the iOS side

(32:08) The new design system

(30:55) The impact of migrating from Rust to GraphQL

(38:20) How the backend drove the GraphQL migration and why it was worth the pain

(43:17) Why the iOS team is replacing SliceKit with SwiftUI

(48:08) Why the Android team took a bet on Compose 

(51:25) How teams experiment with server-driven UI—when it worked, and when it did not

(54:30) Why server-driven UI isn’t taking off, and why Lauren still thinks it could work

(59:25) The ways that Reddit’s modernization has paid off, both in DevX and UX

(1:07:15) The overall modernization philosophy; fixing pain points 

(1:09:10) What the mobile platforms team looks for in a new engineering hire 

(1:16:00) Why startups may be the best place to get experience 

(1:17:00) Why platform teams need to feel safe to fail 

(1:20:30) Rapid fire round

The Pragmatic Engineer deepdives relevant for this episode:

The platform and program split at Uber

Why and how Notion went native on iOS and Android

Paying down tech debt 

Cross-platform mobile development

See the transcript and other references from the episode at ⁠⁠https://newsletter.pragmaticengineer.com/podcast⁠⁠

Production and marketing by ⁠⁠⁠⁠⁠⁠⁠⁠https://penname.co/⁠⁠⁠⁠⁠⁠⁠⁠. For inquiries about sponsoring the podcast, email [email protected].



Get full access to The Pragmatic Engineer at newsletter.pragmaticengineer.com/subscribe
...more
View all episodesView all episodes
Download on the App Store

The Pragmatic EngineerBy Gergely Orosz

  • 5
  • 5
  • 5
  • 5
  • 5

5

49 ratings


More shows like The Pragmatic Engineer

View all
Hanselminutes with Scott Hanselman by Scott Hanselman

Hanselminutes with Scott Hanselman

377 Listeners

Software Engineering Radio - the podcast for professional software developers by se-radio@computer.org

Software Engineering Radio - the podcast for professional software developers

273 Listeners

The Changelog: Software Development, Open Source by Changelog Media

The Changelog: Software Development, Open Source

285 Listeners

a16z Podcast by Andreessen Horowitz

a16z Podcast

999 Listeners

Thoughtworks Technology Podcast by Thoughtworks

Thoughtworks Technology Podcast

42 Listeners

Software Engineering Daily by Software Engineering Daily

Software Engineering Daily

631 Listeners

Soft Skills Engineering by Jamison Dance and Dave Smith

Soft Skills Engineering

275 Listeners

Syntax - Tasty Web Development Treats by Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

Syntax - Tasty Web Development Treats

989 Listeners

REWORK by 37signals

REWORK

208 Listeners

CoRecursive: Coding Stories by Adam Gordon Bell - Software Developer

CoRecursive: Coding Stories

185 Listeners

Kubernetes Podcast from Google by Abdel Sghiouar, Kaslin Fields

Kubernetes Podcast from Google

180 Listeners

Practical AI by Practical AI LLC

Practical AI

188 Listeners

The Stack Overflow Podcast by The Stack Overflow Podcast

The Stack Overflow Podcast

63 Listeners

No Priors: Artificial Intelligence | Technology | Startups by Conviction

No Priors: Artificial Intelligence | Technology | Startups

127 Listeners

Latent Space: The AI Engineer Podcast by swyx + Alessio

Latent Space: The AI Engineer Podcast

65 Listeners