Video Conferencing (e.g. Zoom)
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.