Skip to content

General Interview Preparation

Prepare as much beforehand, as the time between being selected and the interview date could be less than a week

Before being selected

Prepare for questions about resume experiences

For each technical experience on your resume, ensure that the source code is easily accessible with documentation and diagrams. For example, push it to a GitHub repository (making it private if required). This is helpful when explaining technical details during an interview

Next, prepare for common interview questions related to your experiences:

  • Describe a time when you had a conflict when working on a team, and how you resolved it
    • I have been asked this many, many times
  • Tell me about yourself
    • Come up with a couple responses for different types of jobs
  • Describe a problem that you solved
  • Describe your process for debugging code
  • Describe a leadership experience

Good topics to practice talking about include:

  • Collaborating with colleagues to find the best possible solution
    • Receptive to feedback and varying perspectives
    • Each person has different strenghts
  • Bottom up approach - reusability, test each small part
  • Besides performance, consider reliability, sustainable, and reparability

Prepare for open-ended technical questions

It is more important to be able to clearly explain your ongoing thought process than to solve the problem

Video on technical interview preparation by Microsoft

Use the STAR method:

Situation

  • Listen/read the problem carefully and multiple times
  • Describe/write the problem in your own words
  • State assumptions
  • Don't be afraid to ask clarifying questions

Task

  • Describe/write a simple example
  • Think about the inputs and outputs

Action

  • Demonstrate logical thinking
    • Give initial thoughts, broad overview
    • Subdivide into different parts
  • Devise initial solution
  • Walkthrough with a simple example to verify correctness
  • Think about potential optimizations

Results

  • Test final solution
  • Ask for feedback, or what they would do, and discuss from there

Gain interview experience

  • Any interview practice is good practice
    • Apply to as many positions as possible
    • Talk with professors about research opportunities
    • Make an appointment with your co-op advisor
    • Ask a friend
  • Explain technical experiences so that even people not in the industry can follow
  • Practice on-the-spot thinking; connect your answers with relevant experiences

After being selected

Study job requisites

Be able to explain them in your own words and relate to your past experiences.

Prepare for position-specific questions

  • Why do you want to work for the company/team/position?
    • Research reputation, work culture, products/services, etc.
  • Prepare questions for your interviewer intended to
    • Help decide if the position is right for you
    • Demonstrate your enthusiasm and passion for the company/position and its products

Position-specific technical questions

Places where you can find past/common interview questions include:

  • Past or current employees and interns
  • Glassdoor
  • Reddit
  • LeetCode
  • Cracking the Coding Interview
  • My hardware and software Reference and Questions pages briefly go over the content covered and questions asked in my past interviews
    • They are intended as a way to review and gauge your knowledge rather than to learn new topics

After the interview

Analyze results

Immediately after the interview, I like to summarize what happened:

  • What were the different sections of the interview, and how much time was spent on each section?
  • What technical questions were asked?
  • What non-technical questions were asked?

Then I can use this experience to better prepare for future interviews:

  • Notes on how the interview went overall
  • Research any technical questions that I was unsure of
  • Prepare for any non-technical questions that I could answer better