Android Nomad #48 - Android Interview
Tips for preparing for android interview
Android domain interview:
This interview comprises questions related to Android specific development. I used this Github repository to prepare for this interview https://github.com/amitshekhariitbhu/android-interview-questions
System Design:
Following are the resources and guidelines that I used to prepare for Meta Android Design interview
General guidelines:
Mock System Design Interviews: https://www.youtube.com/@alementuev The feedback part at the end is enlightening.
Instagram Android Engineering: https://instagram-engineering.com/tagged/android
Uber Android System Design:
- Modern Android App Architecture (Very important): https://developer.android.com/courses/pathways/android-architecture
Here are topic specific links that I found very useful
- Pagination: https://nordicapis.com/everything-you-need-to-know-about-api-pagination/ https://uxdesign.cc/why-facebook-says-cursor-pagination-is-the-greatest-d6b98d86b6c0
- Web Sockets: https://ably.com/topic/websockets
- Build for Billions (very important if you are interviewing for a big tech company): https://developer.android.com/docs/quality-guidelines/build-for-billions
- Memory: https://developer.android.com/topic/performance/memory-overview
To ace a Mobile System Design interview, these are the topics I recommend studying and finding examples for:
- Networking and communication protocols (REST, WebSockets, Server-Sent Events, Push Notifications, etc.)
- Storage (Relational Database, File storage, Key-value based)
- Data Management (Offline storage, Caching, Pre-fetching data, Persistent/In-memory storage, Services/Work Manager)
- Feature Development (Modularization, Dependency Injection, Testing, Accessibility, Localization)
Try to find pros and cons for the following and come up with why would you go with the one over the other
- MVVM vs MVC vs MVP vs MVI design pattern
- Single Activity vs Multi-Activity architecture pattern
- Different Modularization techniques
- Push-based vs pull-based database synchronization
- In-memory storage vs persistent storage
- XML vs Compose
App scalability topics (Important for apps with billions of users)
- Battery consumption
- Building for different network bandwidth
- Accessibility
- Localization
- App profiling (CPU, Network and Battery profiling)
This is my approach while tacking an Android System Design problem:
- What are we building (Client app, API, BE or both (client plus BE))?
- Whom are we building this for (target users, target market, etc)?
- Functional Requirements
- Non-functional requirements
- Defining the network communication protocol on how the app would get data and then defining the APIs
- Defining the app architecture
- Deep diving in any of the feature
- Scalability
- Privacy and Security
Mindset that help me build an end to end system: Thinking as if I am using the app and coming up with different scenarios and then discussing possible solution like
- What happens when the user goes on an airplane mode?
- What happens when the user removes the app from the background and then starts it again?
- What happens when the user uninstalls the app and re-installs it?
- What happens when a call or an alarm interrupts the app?
Behavioral Interview: I kept ready multiple work-related stories from my past work experiences and did few mock interviews to answer questions in STAR (Situation Task Action Result) format. I used the guidelines from the educative behavioral course.
You can also read the interview blueprint to help you plan for an interview.

Hope this helps. Thank you!
