Situation -> Task -> Action -> Result context -> challenge -> action / solution -> results
  • Haseeb:
    • Almost every question you’ll be asked will be a permutation of one of these four:
      • What’s your story / walk me through your resume / why’d you leave your last job? (these are essentially the same question)
      • Why us?
      • Tell me about a challenging bug you faced and how you solved it.
      • Tell me about an interesting project you worked on.
    • The first question is particularly important. Essentially, they want to hear your personal narrative. Your answer will strongly influence their perception of you.
    • This really just comes down to storytelling. Consider yourself a character in a story, and structure the story with a beginning, middle, and end. There should be inflection points, characterization, and easy to understand motivations. Keep it as short as possible, while preserving color and what makes you interesting. Try not to be negative. Frame your story around seeking challenge and wanting to better yourself, rather than rejecting or disliking things.
    • You will tell this narrative again and again. If you interview enough, eventually it will congeal into a script. The best way to improve at it is to literally practice it out loud and listen to a recording of it. Also try to get feedback from someone whose judgment you trust, and ask them to be as ruthlessly critical as possible.
    • For the remaining three questions, you should have have pre-crafted answers. If you’re at a loss for stories, it may help to sit down and just brainstorm every relevant story you can remember (for example, every bug you remember working on), and then narrow it down from a larger list.
    • It’s hard to practice this effectively in a vacuum, so this is a good thing to work with someone else on.
  • Interview Cake:
    • Chitchat like a pro.
    • Before diving into code, most interviewers like to chitchat about your background. They're looking for:
      • Metacognition about coding. Do you think about how to code well?
      • Ownership/leadership. Do you see your work through to completion? Do you fix things that aren't quite right, even if you don't have to?
      • Communication. Would chatting with you about a technical problem be useful or painful?
    • You should have at least one:
      • example of an interesting technical problem you solved
      • example of an interpersonal conflict you overcame
      • example of leadership or ownership
      • story about what you should have done differently in a past project
      • piece of trivia about your favorite language, and something you do and don't like about said language
      • question about the company's product/business
      • question about the company's engineering strategy (testing, Scrum, etc)
    • Nerd out about stuff. Show you're proud of what you've done, you're amped about what they're doing, and you have opinions about languages and workflows.
  • Questions to ask:
    • https://www.reddit.com/r/cscareerquestions/comments/4ce2s3/resource_interview_questions_my_massive/
    • http://treycausey.com/data_science_interviews.html:
      • What does success look like for this position? How will I know if I am accomplishing what is expected of me?
      • What is the last project you shipped? What was the goal, how long did it take, what were the stumbling blocks, what tools did you use, etc.
      • What will my first 90 days in this role look like? First 180 days?
      • Who will I report to and how many people report to that person? Do they have regular 1:1 with their team members?
      • Why did the last person who quit this team leave? The company?
      • If a startup, how long is your runway? How are financial decisions made?
      • What would be my first project here? Has someone already been working on this or is this in the aspirational stage?
      • What is the current state of the data infrastructure? How much work needs to be done on getting the infrastructure and pipeline into shape before we start analyzing that data?
    • What's the biggest technical challenge or problem on this team currently?
    • What makes this team unique compared to other teams?
    • What do engineers on this team do day to day? How are projects to work on decided? How closely do people work with other teams or functions (PM, DS, etc.)?
    • What does the ramp-up process look like? Is there a formal mentoring program?