← Openai Interview Insights

Openai·Software Engineer·Onsite - System Design / Architecture·Senior

Senior
May 2026

Summary

System design round at OpenAI for a SWE role, focused on building something like Google Calendar. The core challenge was less about CRUD and more about how you handle sync across devices and serve different calendar views efficiently.

Questions Asked (1)

Q1

Design a calendar application like Google Calendar that supports multiple views (day, week, month, year) and syncs updates across devices in near real-time.

System DesignData ModelingTechnical Trade-offs
Author's notes

I started with the data model and event storage which felt fine, but the real pressure came when they pushed on the sync part.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and scale, then design the data model and APIs, followed by the sync architecture and view rendering. Emphasize trade-offs between consistency, latency, and complexity, and how you would handle conflicts and offline support.

Pro tip: Focus on the sync mechanism and conflict resolution early, as they are the hardest parts; show you understand that near real-time sync requires a push-based system with careful handling of eventual consistency.

1. Clarify Requirements and Scale

Ask about expected number of users, events per user, devices per user, and latency requirements for sync. Clarify if offline support and conflict resolution are needed.

2. Design Data Model and APIs

Define core entities like User, Calendar, Event, and their relationships. Outline REST or RPC APIs for CRUD operations and sync endpoints.

3. Architect Sync and Real-time Updates

Choose a push mechanism (WebSocket, SSE, or long polling) for near real-time updates. Design a change log or event stream to propagate updates across devices.

4. Handle Conflicts and Offline Support

Discuss conflict detection and resolution strategies (e.g., last-write-wins, vector clocks, or CRDTs). Explain how offline edits are queued and merged.

5. Optimize Views and Scalability

Explain how to efficiently query and render day/week/month/year views, possibly using precomputed indexes or caching. Address scaling with sharding and load balancing.

Key Points to Mention

  • Data model: events with start/end times, recurrence rules, and time zones.
  • Sync protocol: using WebSockets for push notifications and a change log for incremental updates.
  • Conflict resolution: last-write-wins with vector clocks or CRDTs for collaborative editing.
  • Offline support: local storage with sync queue and reconciliation on reconnect.
  • Scalability: sharding by user ID, caching frequent queries, and using CDNs for static assets.
  • View rendering: efficient range queries and client-side caching for smooth UI.

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.