Skip to content

Design a CI Job Scheduler

Published 3 October 2026

Round 3 — System Design: CI Job Scheduler

The system design interview asked me to design a job scheduler for a continuous-integration system. The core scheduling portion felt reasonably comfortable, but the interviewer added several CI-specific follow-ups that required deeper domain knowledge.

Build Output

One question asked how stdout or other live build output from running CI jobs should be surfaced to users in the UI.

Repository Integration

We also discussed how source-control changes should trigger CI work, including different integration models between a Git hosting provider and the CI platform. This became a fairly detailed discussion about push-triggered events versus CI-side polling or pull-based discovery. The CI-specific parts of this round were more difficult for me than the generic scheduler design.