Remitly·Software Engineer·Onsite - System Design / Architecture
- Design an object-oriented elevator system. Walk through the core classes and interfaces you'd define (elevator, controller, request, floor, buttons, sensors), how they interact, and how you'd handle concurrency and faults.
- Given pending requests for floors [1, 99, 2], how does your scheduler guarantee stopping at floor 2 before floor 99, using only a single internal queue? Describe the queue operations, tie-breaking rules, and the time and space complexity.
- Propose a scheduling algorithm for the elevator system that optimizes for both travel time and fairness across requests.
- How does your design scale to multiple elevators, and how would you support peak traffic modes?
“I started with the obvious classes and felt okay until they pushed on concurrency.”