We now run programs in a Job, which means that we can kill a process and all of its children when a timeout happens.