SevyDevy

Design a cron expression parser

PremiumMachine codingMedium

  • Cron syntax
  • Tokenizer
  • Field expansion

Quick answer

This machine coding interview question asks you to design a cron expression parser. Aim for a design that meets its requirements at the stated scale, then explain its main components, data flow and trade-offs. Interviewers want to see how you scope the problem, size it and defend each choice.

The problem

Build a cron expression parser, the piece inside job schedulers that reads a line such as /15 0 1,15 1-5 and decides when a job runs. It expands each field into exact values and finds the next matching time. The hard parts are strict validation and a next-run search that never loops forever.

What must a cron expression parser do?

  • Parse: parse(expr) reads five space-separated fields (minute, hour, day of month, month, day of week) and an optional command, and returns a schedule or throws an error naming the field.
  • Field syntax: Each field accepts `, a value, a list 1,15, a range 1-5, a step /15 or 10-50/20, and mixes such as 1-5,10`.
4 more requirementsUnlock to see all

How well must it do it?

  • Strict validation: Reject out-of-range values, reversed ranges (5-1), zero steps (*/0), empty list items and the wrong number of fields, with a clear message.
  • Fast next run: next skips whole months, days and hours that cannot match instead of testing every minute.
2 more requirementsUnlock to see all

What scale should you design for?

Use these numbers in your estimates.

The scale numbers unlock with this questionUnlock

Key concepts

  • Cron syntax
  • Tokenizer
  • Field expansion
  • Next run time
  • Input validation
  • Bitsets

How you’ll practise

6 short steps · save and come back any time
  1. Requirements
  2. Entities and interfaces
  3. Core implementation
  4. Edge cases and tests
  5. Extensions
  6. Wrap-up

Lala, personalized to you, gives a hint when you ask and reviews your design when you are ready.

What do interviewers look for?

In any machine coding design round.

  • Clarifies the requirements before drawing anything
  • Uses a few numbers that actually change the design
  • Draws a clear path from the client to storage
  • Picks storage and caching with reasons, not by habit
  • Explains what breaks first under load and how to fix it
  • States trade-offs openly instead of claiming a perfect design

Questions people ask about this interview question

Which design type is this question?
It is a machine coding question. You design a cron expression parser and explain your choices the way you would in an interview.
Is this question asked at entry level?
It is marked Medium. Entry-level engineers can practise it, but it expects you to reason about requirements and trade-offs, not only list components.
What should I cover first?
Start with the requirements: what the system must do, how well it must do it and which numbers change the design. Agree on scope with the interviewer before you design anything.
Can I practise it for free?
It is a premium question. Sign up and unlock it once for 10 credits; it then stays unlocked. When you finish, Lala, your personalized AI mentor, can review your design for 30 credits.

Related questions

Updated · Written by the SevyDevy team

Premium questionSign up free, then unlock it