Sitemap
Khurram Mushtaq

Khurram Mushtaq

Senior Android Developer | 10+ YOE | Kotlin | Java | KMP | Jetpack Compose | Mobile SDKs | Fintech & Security Expert

Careem Android Interview Series

2 min readAug 15, 2025

--

(Part 2): System Design Challenge

Press enter or click to view image in full size

Intro Hook

This is Part 2 of my Careem Android interview journey.
If you missed Part 1 (SOLID Principles & Architecture), read it here.

Get Khurram Mushtaq’s stories in your inbox

Join Medium for free to get updates from this writer.

After a fundamentals-heavy first round, Round 2 was about applying those principles in a real-world system design challenge.

The Problem

“Design an Android system to display product lists with basic details, keep them updated in real-time as price/availability changes, and allow navigation to product details.”

Oh, and it needs to handle thousands of products — so pagination was a must.

My Approach

  1. Architecture → MVVM + Repository Pattern.
  2. Pagination → Paging 3 for seamless infinite scrolling.
  3. Real-Time Updates → WebSockets for instant changes; fallback to push notifications.
  4. Navigation → Jetpack Navigation for smooth detail transitions.
  5. State Management → ViewModel to preserve list state on orientation changes.
  6. Offline Handling → Room DB cache with background sync.

Why This Works

  • MVVM + Repository → Clean separation, easy testability.
  • Paging 3 → Efficiently handles large datasets.
  • WebSockets → True real-time without constant polling.
  • Offline-first → Keeps the app usable even without internet.

Takeaways

  • Careem wants devs who think about scalability from the start.
  • Real-time isn’t just a backend thing — mobile architecture has to support it.
  • Strong fundamentals from Round 1 fed directly into my Round 2 design choices.

Tags: Android Interview Careem System Design MVVM Mobile Architecture Kotlin WebSockets

--

--

Khurram Mushtaq
Khurram Mushtaq