Just so people know, the job class given in the challenge problem 2 is not the same as the one defined in the solution review. The solution review has an additional definition for a magic operator (<) as pasted below:
def lt(self, other):
# min heap based on job.end
return self.end < other.end
Without this defined, I was getting an error like:
TypeError: unorderable types: job() < job()
Course: Grokking the Coding Interview: Patterns for Coding Questions - Learn Interactively
Lesson: Problem Challenge 2 - Grokking the Coding Interview: Patterns for Coding Questions