Robinhood·Software Engineer·Onsite - System Design / Architecture
- Design a distributed job scheduler that supports one-off and recurring (cron-style) jobs, retries on failure, cancellation, and dependency graphs between jobs.
- How would you guarantee at-least-once versus exactly-once execution semantics in your scheduler, and what are the trade-offs between them?
- Walk through the trade-offs between a pull-based versus push-based dispatch model for distributing jobs to workers.
- Compare using a time-wheel versus a priority queue for scheduling job execution timing. When would you choose one over the other?
- How would you approach leader election versus partitioned scheduling for horizontal scalability, and what failure modes does each introduce?
- How would you implement fault tolerance using heartbeating and lease-based execution in your worker pool?
“This was the core question and it ate the whole session.”