Mastering the Android System Design Interview
Intro
networking_intro
HTTP Evolution - HTTP 0.9 & HTTP 1.0
HTTP Evolution - HTTP 1.1
HTTP Evolution - HTTP 2.0
HTTP Evolution - HTTP 3.0 & QUIC
client server communication
HTTP Short Polling & Long Polling
HTTP Streaming
Web Sockets
Server-Sent Events
REST
GRPC
GraphQL
Push Notifications – Firebase Cloud Messaging
Pagination
Further Topics
storage_intro
filesystem Storage
Shared Preference & DataStore
19_databases
Storing Large Objects (LOBs)
Secure Storage: Android KeyStore
Choosing the Right Storage Type
Build For Billions- Introduction
connectivity - Networking
Connectivity - Image Optimization
Connectivity - Offline Capability
Data Cost
Device Ranges
Battery Consumption
Doze Mode & App Standby
Scalable UI
App Startup
Memory
Interview Strategies
35_timing
Getting to Know, Question & Define Task
Ask Clarifying Questions
Gather Requirements
High Level Design
Detailed Design
Questions to the Interviewer
Final Advice
Mock Interview
Chat Application: Q&A
Chat Application: Requirements
Chat Application: Try it Yourself
Chat Application: High Level Design
Chat Application: Networking Design
Chat Application: Storage Design
Chat Application: Sum Up
Push Notification System: Q&A
Push Notification System: Requirements
Push Notification System: Try it Yourself
Push Notification System: High Level Design
Push Notification System: Subscriptions
Push Notification System: Push Notifications & Dispatcher
Push Notification System: Heartbeats & Network Failures
Push Notification System: Sum Up
Lessons Learnt & Lookout