Building Mobile Apps at Scale: 39 Engineering Challenges
I've been noticing how while there's a lot of appreciation for backend distributed systems challenges, there's a lot less empathy for why mobile development is hard when done at scale. Building a backend system that serves millions of parallel customers means building highly available and scalable backend systems and operating these reliably. But what about the mobile clients for these systems?
See MobileAtScale.com for more details on the contents of the book.
Contents
Building Mobile Apps at Scale: 39 Engineering Challenges
PART 1: Challenges Due to the Nature of Mobile Applications
1. State Management
2. Mistakes Are Hard to Revert
3. The Long Tail of Old App Versions
4. Deeplinks
5. Push and Background Notifications
6. App Crashes
7. Offline Support
8. Accessibility
9. CI/CD & The Build Train
10. Third-Party Libraries and SDKs
11. Device and OS Fragmentation
12. In-App Purchases
PART 2: Challenges Due to App Complexity
13. Navigation Architecture Within Large Apps
14. Application State & Event-Driven Changes
15. Localization
16. Modular Architecture & Dependency Injection
17. Automated Testing
18. Manual Testing
PART 3: Challenges Due to Large Engineering Teams
19. Planning and Decision Making
20. Architecting Ways to Avoid Stepping on Each Other’s Toes
21. Shared Architecture Across Several Apps
22. Tooling Maturity for Large Engineering Teams
23. Scaling Build & Merge Times
24. Mobile Platform Libraries and Teams
PART 4: Languages and Cross-Platform Approaches
25. Adopting New Languages and Frameworks
26. Kotlin Multiplatform and KMM
27. Cross-Platform Feature Development
28. Cross-Platform App Development versus Native
29. Web, PWA & Backend-Driven Mobile Apps
PART 5: Challenges Due to Stepping Up Your Game
30. Experimentation
31. Feature Flag Hell
32. Performance
33. Analytics, Monitoring and Alerting
34. Mobile On-Call
35. Advanced Code Quality Checks
36. Compliance, Privacy and Security
37. Client-Side Data Migrations
38. Forced Upgrading
39. App Size
Growing as a mobile engineer (also available as a separate purchase)
70 pages on growing to senior and above levels as a mobile engineer, at tech companies. During my time at Uber, I've helped with 10+ mobile engineering promotions in my org, 3 of these to above senior levels. I've sat on multiple promotion committees and mapped out promotion paths all the way to staff for iOS or Android engineers. How do you break the senior and above glass ceiling, when you specialize in iOS and Android?
PART 1: Growing as a Mobile Engineers
1. Map Out Opportunities to Grow
2. Typical Mobile Engineering Level Definitions
3. Professional Growth Versus Promotions
4. Mentoring
5. Changing Jobs
6. Down-Leveling When Changing Jobs
PART 2: Growing to Senior
7. Master Your Main Stack
8. Get Familiar With the Other Stack(s)
9. Become More Product-Minded
10. Get More Feedback
11. Lead a Full-Stack Project
12. Ask For That Promotion
PART 3: Beyond Senior Levels
13. The Challenge of Moving Beyond the Senior Level
14. The “Glass Ceiling” for Mobile Engineers
15. Go Broad or Go Deep
16. Understand the Business and Get Involved
17. Quantify Your Impact
18. Connect with Industry Peers
19. Public Writing and Speaking
20. Leaving Mobile Engineering to Further Your Career
21. It’s Not Meant to Be Easy
PART 4: Mobile Engineering Management
22. Mobile Platform Teams
23. Mobile-Only Career Limitations for Managers
24. Advocating for Senior+ Mobile Engineering Roles
PART 5: Mobile Learnings From My Time at Uber
25. Platforms and Programs
26. What Good Mobile Architecture Looks Like
27. Hundreds of Mobile Engineers Working Together
28. I’m Actually Not an Android / iOS Engineer
29. Core and Optional Mobile Code & Modules
30. Mobile Oncall
It’s All Software Engineering
Refund policy
If you're not happy, I'm not happy. Don't get what you expect? Email me at scale@pragmaticengineer.com and I'll issue a refund.
The 130+ page ebook