def fetch_and_cache_job(job_id)
      job = fetch_job(job_id)
      self.cached_jobs[job_id] = job unless job.nil?
      @min_climbed_job_id = job_id if job_id < @min_climbed_job_id
      @max_climbed_job_id = job_id if job_id > @max_climbed_job_id
      return job
    end
def fetch_and_cache_job(job_id)
      job = fetch_job(job_id)
      self.cached_jobs[job_id] = job unless job.nil?
      @min_climbed_job_id = job_id if job_id < @min_climbed_job_id
      @max_climbed_job_id = job_id if job_id > @max_climbed_job_id
      return job
    end
Helper method, similar to fetch_job, that retrieves the job identified by
 +job_id+, caches it, and updates counters before returning the job.
 If the job does not exist, nothing is cached, however counters will be updated,
 and nil is returned