← Uber Interview Insights

Uber·Software Engineer·Onsite - System Design / Architecture·Intermediate

Intermediate
Jun 2026

Summary

Uber system design round for a software engineer role. Just one question but it ate up the whole session.

Questions Asked (1)

Q1

Design a calendar application.

System DesignData ModelingAPI & Integrations
Author's notes

Spent the first few minutes just trying to scope it down because calendar is deceptively broad.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and scope, then design a scalable architecture that handles core calendar features like event creation, storage, and sharing. Focus on data modeling for events and calendars, API design for CRUD operations, and integration with external calendars.

Pro tip: Emphasize how you would handle recurring events and time zones, as these are common pitfalls that demonstrate depth of understanding. Also, discuss trade-offs between consistency and availability for collaborative calendars.

1. Clarify Requirements

Ask questions to understand functional and non-functional requirements, such as scale, features (recurring events, reminders, sharing), and constraints (latency, consistency).

2. High-Level Design

Outline the system architecture: clients, API gateway, services (event, calendar, notification), and data stores. Consider microservices vs. monolith based on scale.

3. Data Modeling

Design schemas for users, calendars, events, and attendees. Address indexing for efficient queries (e.g., by time range) and handling recurring events.

4. API Design

Define RESTful or GraphQL endpoints for CRUD operations on events and calendars, including batch operations and sync APIs for external integrations.

5. Scalability & Reliability

Discuss partitioning (e.g., by user or time), caching, replication, and conflict resolution for concurrent edits. Mention monitoring and alerting.

Key Points to Mention

  • Time zone handling and normalization (store in UTC, convert on display)
  • Recurring events: representation (RRULE), expansion, and exceptions
  • Sharding strategy: by user ID or time range to distribute load
  • Conflict resolution: optimistic concurrency control or CRDTs for collaborative editing
  • Integration with external calendars (Google, Outlook) via OAuth and sync APIs
  • Notification system for reminders and invites (push, email, SMS)

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