PracHub
QuestionsPremiumCoachesLearningGuidesInterview Prep
|Home/System Design/Google

Design an elevator control system

Last updated: Mar 29, 2026

Quick Overview

This question evaluates system design skills including architectural modeling of components, scheduling and concurrency control, state-machine design, and fault-tolerance for real-time control systems, and falls under the System Design domain.

  • hard
  • Google
  • System Design
  • Software Engineer

Design an elevator control system

Company: Google

Role: Software Engineer

Category: System Design

Difficulty: hard

Interview Round: Onsite

Design an elevator control system for a building with N floors and M elevators. Model the core classes (e.g., Elevator, Request, Controller, Door, Floor), define key methods (e.g., requestPickup(floor, direction), requestDropoff(floor), step()/tick(), getStatus()), and choose a scheduling strategy (e.g., nearest-car or SCAN). Discuss state transitions, handling concurrent requests, priority and fairness, error cases (overload, stuck elevator), extensibility (service modes), and provide class interfaces or pseudocode for the main operations.

Quick Answer: This question evaluates system design skills including architectural modeling of components, scheduling and concurrency control, state-machine design, and fault-tolerance for real-time control systems, and falls under the System Design domain.

Related Interview Questions

  • Design a Security Monitoring Framework - Google (medium)
  • Design an Online Coding Judge Platform - Google (medium)
  • Design Calendar Event Conflict Handling - Google (medium)
  • Design a pub-sub replay system - Google (hard)
  • How to host many domains on one IP? - Google (medium)
Google logo
Google
Sep 6, 2025, 12:00 AM
Software Engineer
Onsite
System Design
9
0

Elevator Control System Design (N floors, M elevators)

Context

You are designing a multi-elevator control system for a building with N floors (1..N) and M elevators. Users generate two types of requests:

  • Hall calls: from a floor, pressing Up or Down to request pickup.
  • Car calls: inside an elevator, pressing a destination floor for dropoff.

Assume each elevator has sensors for door state, weight/load, current floor/position, and fault signals.

Requirements

  1. Model core classes and entities:
    • Elevator, Door, Floor, Request (HallCall, CarCall), Controller, Scheduler.
  2. Define key methods and interfaces:
    • requestPickup(floor, direction)
    • requestDropoff(floor)
    • step()/tick()
    • getStatus()
  3. Choose and justify a scheduling strategy (e.g., nearest-car, SCAN/LOOK/collective-control, hybrid).
  4. Describe state machines and transitions for elevator and door.
  5. Handle concurrency and multiple simultaneous requests.
  6. Address priority and fairness (avoid starvation, balance load).
  7. Error handling and safety (overload, door obstruction, stuck elevator, out-of-service).
  8. Extensibility and service modes (e.g., VIP, fire service, maintenance).
  9. Provide class interfaces or language-agnostic pseudocode for main operations.

Solution

Show

Submit Your Answer

Sign in to leave a comment

Loading comments...

Browse More Questions

More System Design•More Google•More Software Engineer•Google Software Engineer•Google System Design•Software Engineer System Design
PracHub

Master your tech interviews with 8,500+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities
  • Student Access

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.