Skip to content

Instantly share code, notes, and snippets.

@brianspiering
Last active May 17, 2021 03:22
Show Gist options
  • Save brianspiering/e5691a7de71971c09151044ec914bfab to your computer and use it in GitHub Desktop.
Save brianspiering/e5691a7de71971c09151044ec914bfab to your computer and use it in GitHub Desktop.

Notes for the interviewer:

This problem can go in many directions. Allow 5 minutes to brainstorm ideas but then focus the person on architecting a system from end-to-end. The goal is for them to architect an end-to-end system that uses a single algorithm. Describe the specific inputs and outputs, focus on what the model will predict. Connect it to business metrics. They should briefly list issues but not get mired in implementation details.

Positive Examples:

  • Frame it as a density estimation problem. What is the distribution of likely delivery times, conditional on features?
  • Frame it as a regression problem of accurately estimating arrival time.
  • Frame it as survival analysis. How long until food is not high enough quality?

Negative Examples:

  • Frame it as an optimization problem of better route planning, especially the goal is to have a single driver pick-up several meals. This is not a computer science oriented solution, not a core data science problem. Steer the interviewee towards a data science based solution. A good solution is complex, see The Meal Delivery Routing Problem paper by Reyes et al. Beware of the "½ solution trap"! In an interview you can say anything, you should never say something you that only "kinda know about." It is better if your first answer is something you know cold. You should play to your strengths. You can mention other solutions during brainstromming or during refactoring steps. But put your all your chips on a winner. Most people (even CS majors) have trouble with Dijkstra's algorithm, especially if it is a subtle variation.

Rubric to score interviewee. Mark your feedback, then hand to the interviewee at the end.

Score each line from 1 to 5: 1 = Very bad, 2 = Bad, 3 = Neutral, 4 = Good, 5 = Very Good

Delivery

  • Professional appearance: 1 2 3 4 5
  • Overall conduct: 1 2 3 4 5
  • Tone: 1 2 3 4 5
  • Volume: 1 2 3 4 5
  • Speed: 1 2 3 4 5
  • 2-way conversation: 1 2 3 4 5
  • Body / hand movements: 1 2 3 4 5
  • Eye contact: 1 2 3 4 5
  • Other:

Technical Merits

  • Picked appropriate algorithm: 1 2 3 4 5
  • Explained the algorithm: 1 2 3 4 5
  • Brainstorm data to be collected: 1 2 3 4 5
  • Listed best features: 1 2 3 4 5
  • Picked appropriate metrics: 1 2 3 4 5
  • Listed common problems: 1 2 3 4 5
  • Create solutions for all stakeholders: 1 2 3 4 5
  • Discuss model maintenance and updating: 1 2 3 4 5
  • Other:

The single thing the person could better:

Sources of Inspiration:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment