Google Sheets
Question
Design a collaborative spreadsheet application that allows multiple users to view and edit the same spreadsheet simultaneously in real time.
Focus on the browser experience for an active sheet: editing literal values and formulas, selecting ranges, formatting cells, rows, and columns, resizing rows and columns, and reflecting collaborators' updates with low latency. You can assume the spreadsheet is persisted by a server and omit charts, pivot tables, comments, macros, and full offline editing unless the interviewer asks about them.
This article builds on the collaboration ideas from the Google Docs system design article, but the main discussion here is spreadsheet-specific: grid rendering, formula recalculation, selections, and structured cell/range operations.