Skip to content
RED SAGSkills
hardMobile App Developer interview question

How would you design the mobile client for a chat app like WhatsApp?

What the interviewer wants to hear

  • Local database for messages, UI observes it
  • Real-time connection (WebSocket) while in foreground, push when in background
  • Message states: sending, sent, delivered, read; client-generated IDs
  • Outgoing queue with retries and ordering
  • Paging of history, media upload/download handling
  • Battery, data usage and end-to-end encryption concerns

Model answer

The core is a local database of conversations and messages, and the UI only observes it. When the app is in the foreground, I keep a WebSocket connection for real-time messages, typing and receipts, with reconnect and backoff. In the background the OS limits sockets, so new messages arrive through push notifications, which can wake the app to fetch. When the user sends a message, I create it locally with a client-generated ID and status "sending", show it immediately, and put it in an outgoing queue. The server acknowledges with the same ID so retries never duplicate. Message history loads with paging. Media is uploaded separately with resumable uploads and thumbnails. I would also consider end-to-end encryption with keys in secure storage, and limit battery and data use.

Can you answer it under time pressure?

Take a timed hard round and get scored on every answer.

Start mock interview

More hard Mobile App Developer questions