System design

Video Conferencing (e.g. Zoom)

Premium

Question

Design a browser-based video conferencing application similar to Zoom, Google Meet, or Whereby that lets authenticated users preview their camera and microphone before joining, participate in a multi-person meeting, mute and unmute themselves, toggle their camera, switch between grid and speaker layouts, share their screen, and send basic in-meeting chat messages.

Focus on the front-end architecture and the client/server contract for joining a room, establishing and maintaining media connections, handling real-time participant state, and adapting gracefully to changing network quality. You do not need to go deep into scheduling, recording, breakout rooms, captions, webinars, native applications, or server-side media transcoding details.

Assume one active screen share at a time. Chat is session-scoped: acknowledged messages can be replayed after a reconnect, but long-term chat retention after the meeting is out of scope.

Real-life examples

These products demonstrate the prejoin, in-meeting media, layout, and control patterns in scope.

Requirements

Use the following baseline unless the interviewer changes the product boundary.

  • Support a desktop-first web meeting room for up to roughly 25 active participants.
  • Include a prejoin flow for camera and microphone permissions, device selection, and local preview.
  • Support participant roster updates, active speaker indication, mute/camera controls, one active screen share, and session-scoped in-meeting chat.
  • Handle network degradation, reconnects, and quality adaptation gracefully.
  • You do not need to cover scheduling, recording, breakout rooms, captions, webinars, or native applications.
    Video Conferencing (e.g. Zoom) | Front End System Design Question