Implement a thread-safe periodic job scheduler
NuroSoftware Engineer · OnsiteLast updated
Implement a thread-safe periodic job scheduler evaluates engineering fundamentals, trade-offs, examples, pitfalls, and operational implications in a realistic interview setting. A strong answer states assumptions, handles edge cases, explains trade-offs, and shows how to validate the result clearly.
Implement a thread-safe periodic job scheduler
Problem: Periodic Job Scheduler (Concurrency)
Implement a small in-process job scheduler that can run periodic tasks (functions/callbacks) at a target frequency.
Requirements
- You must support scheduling tasks specified as a function/callback.
- Each task is periodic, e.g.
50 Hz(50 times per second). You must convert frequency to a period (time interval). - Expose two thread-safe APIs:
schedule(taskFn, frequencyHz) -> jobIdcancel(jobId) -> void
- The implementation must be runnable (not just a dry run):
- There is at least one dedicated worker thread responsible for executing the tasks.
- Another thread may call
schedule()andcancel()concurrently while the worker is running.
Behavioral expectations / assumptions (state clearly in your implementation)
- Use a monotonic clock for timing.
- Multiple jobs may be scheduled at once.
- If a job is cancelled, it should not run again after cancellation takes effect.
- Define what happens if a task execution takes longer than its period (e.g., skip missed ticks vs. run immediately to “catch up”).
What to provide
- The scheduler data structures and synchronization strategy.
- The worker thread loop logic (sleep/wake strategy).
- How cancellation is handled safely under concurrency.
Clarifying Questions to Ask
- Clarify language/runtime assumptions and the level of depth expected.
- Use examples to connect definitions to practical engineering decisions.
- Call out pitfalls, trade-offs, and common misconceptions.
Follow-up questions
- How would you debug a production issue related to this topic?
- What trade-off would change in a high-throughput service?
- Which misconception do candidates often have here?
Solution walkthrough is for members
Get the full walkthrough with reference code and complexity analysis, plus Kitty Coach at 300 messages a day. Hints, the code runner and community answers stay free.