gergelyorosz.gumroad.com
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.ContentsBuilding Mobile Apps at Scale: 39 Engineering ChallengesPART 1: Challenges Due to the Nature of Mobile Applications 1. State Management2. Mistakes Are Hard to Revert3. The Long Tail of Old App Versions4. Deeplinks5. Push and Background Notifications6. App Crashes7. Offline Support8. Accessibility9. CI/CD & The Build Train10. Third-Party Libraries and SDKs11. Device and OS Fragmentation12. In-App Purchases PART 2: Challenges Due to App Complexity13. Navigation Architecture Within Large Apps14. Application State & Event-Driven Changes15. Localization16. Modular Architecture & Dependency Injection17. Automated Testing18. Manual TestingPART 3: Challenges Due to Large Engineering Teams19. Planning and Decision Making20. Architecting Ways to Avoid Stepping on Each Other’s Toes21. Shared Architecture Across Several Apps22. Tooling Maturity for Large Engineering Teams23. Scaling Build & Merge Times24. Mobile Platform Libraries and TeamsPART 4: Languages and Cross-Platform Approaches25. Adopting New Languages and Frameworks26. Kotlin Multiplatform and KMM27. Cross-Platform Feature Development28. Cross-Platform App Development versus Native29. Web, PWA & Backend-Driven Mobile AppsPART 5: Challenges Due to Stepping Up Your Game30. Experimentation31. Feature Flag Hell32. Performance33. Analytics, Monitoring and Alerting34. Mobile On-Call35. Advanced Code Quality Checks36. Compliance, Privacy and Security37. Client-Side Data Migrations38. Forced Upgrading39. 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 Engineers1. Map Out Opportunities to Grow2. Typical Mobile Engineering Level Definitions3. Professional Growth Versus Promotions4. Mentoring5. Changing Jobs6. Down-Leveling When Changing JobsPART 2: Growing to Senior7. Master Your Main Stack8. Get Familiar With the Other Stack(s)9. Become More Product-Minded10. Get More Feedback11. Lead a Full-Stack Project12. Ask For That PromotionPART 3: Beyond Senior Levels13. The Challenge of Moving Beyond the Senior Level14. The “Glass Ceiling” for Mobile Engineers15. Go Broad or Go Deep16. Understand the Business and Get Involved17. Quantify Your Impact18. Connect with Industry Peers19. Public Writing and Speaking20. Leaving Mobile Engineering to Further Your Career21. It’s Not Meant to Be EasyPART 4: Mobile Engineering Management22. Mobile Platform Teams23. Mobile-Only Career Limitations for Managers24. Advocating for Senior+ Mobile Engineering RolesPART 5: Mobile Learnings From My Time at Uber25. Platforms and Programs26. What Good Mobile Architecture Looks Like27. Hundreds of Mobile Engineers Working Together28. I’m Actually Not an Android / iOS Engineer29. Core and Optional Mobile Code & Modules30. Mobile OncallIt’s All Software EngineeringRefund policyIf 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.