PracHub
QuestionsPremiumCoachesLearningGuidesInterview Prep
|Home/Software Engineering Fundamentals/Salesforce

Design an Elevator Control System

Last updated: Mar 29, 2026

Quick Overview

This question evaluates object-oriented design, state modeling, and scheduling algorithm competencies for coordinating multiple elevators, including class responsibilities, state transitions, and request dispatching.

  • easy
  • Salesforce
  • Software Engineering Fundamentals
  • Backend Engineer

Design an Elevator Control System

Company: Salesforce

Role: Backend Engineer

Category: Software Engineering Fundamentals

Difficulty: easy

Interview Round: Onsite

Design an object-oriented elevator control system for a building with multiple floors and multiple elevators. The system should support: - Hall requests from each floor, where a user can request to go up or down - Cabin requests from inside an elevator, where a user selects a destination floor - Tracking each elevator's current floor, direction, door state, and pending stops - Assigning hall requests to an appropriate elevator - Moving elevators efficiently while avoiding obviously poor scheduling decisions Focus on clean object-oriented design and the core scheduling logic. You do not need to model low-level motor hardware, networking, or a graphical UI. Discuss the main classes, responsibilities, state transitions, and how requests are processed. If useful, also describe a simple dispatch algorithm and how you would extend the design later.

Quick Answer: This question evaluates object-oriented design, state modeling, and scheduling algorithm competencies for coordinating multiple elevators, including class responsibilities, state transitions, and request dispatching.

Related Interview Questions

  • Choose DynamoDB vs MySQL for a backend - Salesforce (medium)
  • How do you perform a thorough code review? - Salesforce (hard)
  • Write SQL for top spender and non-spenders - Salesforce (medium)
Salesforce logo
Salesforce
Dec 4, 2025, 12:00 AM
Backend Engineer
Onsite
Software Engineering Fundamentals
12
0

Design an object-oriented elevator control system for a building with multiple floors and multiple elevators.

The system should support:

  • Hall requests from each floor, where a user can request to go up or down
  • Cabin requests from inside an elevator, where a user selects a destination floor
  • Tracking each elevator's current floor, direction, door state, and pending stops
  • Assigning hall requests to an appropriate elevator
  • Moving elevators efficiently while avoiding obviously poor scheduling decisions

Focus on clean object-oriented design and the core scheduling logic. You do not need to model low-level motor hardware, networking, or a graphical UI.

Discuss the main classes, responsibilities, state transitions, and how requests are processed. If useful, also describe a simple dispatch algorithm and how you would extend the design later.

Solution

Show

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...

Browse More Questions

More Software Engineering Fundamentals•More Salesforce•More Backend Engineer•Salesforce Backend Engineer•Salesforce Software Engineering Fundamentals•Backend Engineer Software Engineering Fundamentals
PracHub

Master your tech interviews with 8,000+ 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.