Designing a Distributed Job Scheduler