← Amazon Interview Insights

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

SeniorPrefer not to say
Jul 2026

Summary

Amazon system design round for a software engineer role, one big question about modeling an elevator system with multiple cars and a scheduler. Pretty open-ended, which I wasn't fully prepared for.

Questions Asked (1)

Q1

Design the object-oriented model for a multi-elevator system in a building, covering external floor requests, internal destination selection, elevator movement, and a scheduler that decides which elevator handles which request.

System DesignData ModelingTechnical Trade-offs
Author's notes

I started with the classes (Elevator, Floor, Request, Controller) which felt solid, but then the scheduler part is where I started rambling.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and constraints, then identify the core entities and their responsibilities. Design the class hierarchy and interactions, focusing on the scheduler as the central decision-maker. Discuss trade-offs and potential extensions to show depth.

Pro tip: Emphasize the scheduler's role and how it balances efficiency and fairness, and mention how your design handles edge cases like multiple simultaneous requests and elevator failures.

1. Clarify Requirements and Constraints

Ask questions to understand building size, number of elevators, traffic patterns, and any special requirements (e.g., priority, energy efficiency). This ensures the design meets the actual needs.

2. Identify Core Entities and Responsibilities

Define classes such as Elevator, Floor, Request, and Scheduler. Assign clear responsibilities: Elevator manages movement and state, Floor handles external requests, Request encapsulates details, and Scheduler assigns requests to elevators.

3. Design Interactions and State Management

Describe how components interact: external requests from floors go to the scheduler, which selects an elevator based on a strategy. Internal requests are added to the elevator's destination list. Elevator updates its state and notifies the scheduler upon completion.

4. Define Scheduler Algorithm and Trade-offs

Explain the scheduling algorithm (e.g., nearest elevator, load balancing, or directional scanning). Discuss trade-offs between simplicity, efficiency, and fairness, and how the algorithm handles multiple requests.

5. Discuss Extensions and Edge Cases

Mention how to handle peak traffic, elevator failures, maintenance mode, and emergency scenarios. Suggest possible extensions like priority requests or energy-saving modes.

Key Points to Mention

  • Encapsulation of elevator state (direction, current floor, destination queue) and movement logic.
  • Scheduler as a separate component that assigns requests to elevators based on a strategy.
  • Handling of external (floor) and internal (cabin) requests, possibly with different priorities.
  • Trade-offs in scheduling algorithms: efficiency vs. fairness, complexity vs. performance.
  • Concurrency considerations: multiple requests arriving simultaneously, thread safety.
  • Edge cases: elevator out of service, emergency stop, overload, and how the system recovers.

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