Š2017 Karat Inc. All Rights Reserved. Confidential.
+
Engineering A Better
Technical Interview
(and how to make sure you ace your next one)
Who are we?
Anthony Rotoli
Building interviewer network
Loves Seattle!
Loves good music and food :)
Formerly at Microsoft
Kevin Bao
Technical Lead
CMU SCS '13
Formerly at Facebook and
Microsoft
Avid paraglider
Zach van Schouwen
Interview R&D Leader
Formerly at Google and
Goldman Sachs
Amateur urban historian
What is Karat?
First Round Interviews. We conduct all of the first round
technical interviews for these companies.
Questions and Scoring. Our interview questions are battle
tested and matched with an accurate and fair scoring
methodology.
Professional Interviewers. We’re building a network of
highly-skilled engineers who love interviewing.
Fair and Accurate Assessment. We’re determined to
develop the most accurate, unbiased, predictive technical
assessment in the world.
Turbocharging hiring through analytics. Leveraging data
through the entire process to get more intelligent.
How did Google, Facebook, Microsoft,
Amazon, etc. become the most successful tech
companies in the world?
ANSWER:
How did Google, Facebook, Microsoft,
Amazon, etc. become the most successful tech
companies in the world?
ANSWER: You guessed it… by sorting linked
lists way faster than everybody else.
What’s been your experience in
interviews?
What’s been your experience in
interviews?
● Were you comfortable? Or intimidated?
● Were the questions relevant to the role?
● Did you leave the interview knowing more about the company
than when you went in? Did the company really learn anything
about you?
How do we make
interviews more
valuable, both for
you and for the
company?
Here’s what we’ve found
What works well
● Human interaction provides insight
beyond tests
● Adaptive problem solving leads to
meaningful conversations
● Passionate technical interviewers
provide great candidate experiences
What could be better
● More relevant interview questions and
consistent scoring methodologies =>
less biased & more accurate assessment
● Interviewing pulls engineers from their
core job and causes interviewer fatigue
● More bandwidth for interviews => more
candidates fairly assessed
● More flexibility in interview scheduling
=> candidates interview when they want
to/are able to
The typical recruiting process
● Express initial interest
○ Career Fairs
○ Applying online - best to email your recruiter directly
○ Attending company talks and other events
● First round of interviews
○ Some companies will send an offline coding challenge before this
○ Typically conducted via video, on your campus, or over the phone
○ Expect 30-60 minutes with some resume discussion and coding questions
● Final round of interviews
○ Typically in person at a company site
○ Expect 3-6 interviews lasting around 60 minutes each
● Offer & Decision
○ Let your recruiter know about other opportunities you are considering
○ Be honest about what you need
○ Negotiate
Prepare for your interview
● Research and practice online!
○ Wikipedia; Cracking the Coding Interview; Codility;
HackathonHackers
● Learn about your target company, and what they ask in the
interview.
○ Learn the vocabulary in the job description.
○ Find out what coding environment you'll use for the interview.
○ Pay attention to the skills they say they're looking for.
● Do practice interviews!
● Schedule your interview strategically.
Get your resume right
● Be persuasive when describing your experience
● … but don't exaggerate. If you say you know Language X, be
prepared for the interviewer to ask you about it! If it's on the
resume, it's fair game.
● If you don't have much professional experience, you can include
academic projects, side projects, open source contributions, etc.
● Frame your experience in terms of how it prepared you for the
specific role you're applying for. Different jobs require different
resumes.
Talking about your experience
Provide succinct, easy-to-follow explanations with context. Don't
assume the interviewer is an expert in your subject domain.
BAD: "I spent this summer working at MaxSense where I increased CTR
by 8% for our playables by using Sixpack to switch copy and aspect
ratios."
BETTER: "I spent this summer working at an advertising network,
specifically trying to drive engagement on our video ads by A/B testing
new ad content and formats. I produced a 8% improvement in
click-through rates across the board over six weeks of testing."
It's OK to brag! The interviewer wants to be impressed by your skills. Don't be
obnoxious… but don't be afraid to give yourself credit.
BAD: "I helped the team develop new testing requirements. I also contributed
to our new data validation features."
BETTER: "I created new best practices for the team around testing that
increased our code coverage from 60% to 80% in one quarter. I developed the
first proof-of-concept, as well as most of the final back-end code, for our new
data validation features."
Talking about your experience
Talking about your experience
● Focus on the experiences that are most relevant to the position
you’re interviewing for
● Be prepared to dive technically into your project and discuss some
of the technical decisions made
● As much as possible, highlight side projects outside of coursework
● If you haven’t developed any side projects yet, start with
something small that you’re really passionate about
The Dreaded Coding Exercise
Ask clarifying questions.
The interviewer is already waiting for you to do this. The problem
that they gave you was probably vague, unclear, or incomplete -- part
of the test is whether you can think through edge cases. Take your time
and consider all the possible inputs and outputs.
Don't make assumptions.
You're probably wrong. Instead, ask the interviewer to confirm
your suspicion.
The Dreaded Coding Exercise
Talk through it.
You don't want to write code without a plan in mind. Even if you
think the solution is obvious, take a minute to think out loud, or outline
your solution in comments. Often, you'll discover a flaw in your own
plan, or the interviewer will ask you a question you haven't considered.
Be prepared.
Almost every company wants you to write valid code in a
programming language. Choose your language in advance, and learn
its syntax. Learn collection types, generic parameterization, and any
other constructs you would use as a daily programmer.
The Dreaded Coding Exercise
Remember -- it's not that hard.
Sure, the problem seems daunting. But there must be a way to
deal with it in the allotted time, or nobody would get hired. And in fact,
there's almost always a trick.
Break down the problem.
Don't try to write a full solution right off the bat. Try to make a
skeletal outline. If there's one piece of the problem you know you'll
have to solve, write a function signature for it and forget it. Write
pseudocode. Write comments. Get something on the board that you
can build on.
The Dreaded Coding Exercise
Consider edge cases.
Every technical interviewer is looking to see how you handle edge
cases. Exhausting the space of possible inputs to a given problem
should be the first thing you do.
Ask the interviewer what they want.
Are they looking for a brute force solution? An algorithmically
optimal one? Pseudocode? Production-quality code? Clarify the
expectations before you start working to produce the right result.
The Dreaded Coding Exercise
Remember… the interviewer wants you to succeed.
Nobody likes watching a candidate struggle in an interview. If you're
really stuck, there's nothing wrong with asking for help. The way you
integrate feedback from another engineer is just as important as the
code you write yourself.
Talking about the company
Ask questions.
It's important to show interest in the company and the team.
Unfortunately, most interviewers still have a lot of subjective
leeway in making recommendations to hiring managers. The more
questions you ask, the more the interviewer gets to talk -- and at the
end of the interview, they feel that they connected with you more than
they did with other candidates.
Talking about the company
You're already on the team.
When you want a promotion, the standard advice is to
demonstrate that you're already performing at a higher level. The
same advice applies at an interview -- act like you've already been
hired. Ask what you'll be doing on your first day. Ask how the team
plans to teach you about their code and their best practices. Ask about
the direction the company is headed. Ask, ask, ask.
Be memorable.
You know you'll be asked to explain your background. Have a
concise one- or two-sentence summary of your career ready to go.
Don’t forget
● Before: PRACTICE! :) and research
● During: Do your best to relax - go into it like a discussion with a friend
or colleague.
● During: Ask plenty of questions - clarify anything you don’t know
before attempting to provide a solution.
● After: Don’t get too discouraged if you don’t make it through the
process. Interviewing isn’t perfect, don’t let a false negative impact
your ambition.
CMU specific resources
● Paying attention in classes help
○ 15-251, 15-210, 15-451 help instill a problem solving mindset
○ 15-213 is fundamental
○ People familiar with CMU will often times ask about 15-410 (it's a plus!)
○ 10-601 is hot right now for getting a job
■ Pre-requisite for 10-605, which is more practical (and fun)
● Go to job fairs and company talks
● Your peers and alum
Interview Science @ Karat
What makes a bad interview?
● Conscious and unconscious bias
● Subjective requirements
● Frightened candidates
● Low signal-to-noise ratio
● Meaningless "quiz" questions
What makes a Karat interview different?
● Conscious and unconscious bias
Professional interviewers peer-reviewing each other's work
● Subjective requirements
Objective, concrete evaluation metrics that measure specific competencies
● Frightened candidates
Interviewers screened for interpersonal skills, and who put candidates at ease
● Low signal-to-noise ratio
Constantly refining our data and measurement points to improve assessment quality
● Meaningless "quiz" questions
Targeted questions relevant to actual engineering work, tested for consistency & quality
Interview Science @ Karat
Do you have ideas that can make
interviewing better?
We’d love to hear it!
Chat with us anytime: anthony@karat.io
Free practice interviews: karat.io/university
Follow us: @karat
Find this deck at:

Karat at CMU

  • 1.
    Š2017 Karat Inc.All Rights Reserved. Confidential. + Engineering A Better Technical Interview (and how to make sure you ace your next one)
  • 2.
    Who are we? AnthonyRotoli Building interviewer network Loves Seattle! Loves good music and food :) Formerly at Microsoft Kevin Bao Technical Lead CMU SCS '13 Formerly at Facebook and Microsoft Avid paraglider Zach van Schouwen Interview R&D Leader Formerly at Google and Goldman Sachs Amateur urban historian
  • 3.
    What is Karat? FirstRound Interviews. We conduct all of the first round technical interviews for these companies. Questions and Scoring. Our interview questions are battle tested and matched with an accurate and fair scoring methodology. Professional Interviewers. We’re building a network of highly-skilled engineers who love interviewing. Fair and Accurate Assessment. We’re determined to develop the most accurate, unbiased, predictive technical assessment in the world. Turbocharging hiring through analytics. Leveraging data through the entire process to get more intelligent.
  • 4.
    How did Google,Facebook, Microsoft, Amazon, etc. become the most successful tech companies in the world? ANSWER:
  • 5.
    How did Google,Facebook, Microsoft, Amazon, etc. become the most successful tech companies in the world? ANSWER: You guessed it… by sorting linked lists way faster than everybody else.
  • 6.
    What’s been yourexperience in interviews?
  • 7.
    What’s been yourexperience in interviews? ● Were you comfortable? Or intimidated? ● Were the questions relevant to the role? ● Did you leave the interview knowing more about the company than when you went in? Did the company really learn anything about you?
  • 8.
    How do wemake interviews more valuable, both for you and for the company?
  • 9.
    Here’s what we’vefound What works well ● Human interaction provides insight beyond tests ● Adaptive problem solving leads to meaningful conversations ● Passionate technical interviewers provide great candidate experiences What could be better ● More relevant interview questions and consistent scoring methodologies => less biased & more accurate assessment ● Interviewing pulls engineers from their core job and causes interviewer fatigue ● More bandwidth for interviews => more candidates fairly assessed ● More flexibility in interview scheduling => candidates interview when they want to/are able to
  • 10.
    The typical recruitingprocess ● Express initial interest ○ Career Fairs ○ Applying online - best to email your recruiter directly ○ Attending company talks and other events ● First round of interviews ○ Some companies will send an offline coding challenge before this ○ Typically conducted via video, on your campus, or over the phone ○ Expect 30-60 minutes with some resume discussion and coding questions ● Final round of interviews ○ Typically in person at a company site ○ Expect 3-6 interviews lasting around 60 minutes each ● Offer & Decision ○ Let your recruiter know about other opportunities you are considering ○ Be honest about what you need ○ Negotiate
  • 11.
    Prepare for yourinterview ● Research and practice online! ○ Wikipedia; Cracking the Coding Interview; Codility; HackathonHackers ● Learn about your target company, and what they ask in the interview. ○ Learn the vocabulary in the job description. ○ Find out what coding environment you'll use for the interview. ○ Pay attention to the skills they say they're looking for. ● Do practice interviews! ● Schedule your interview strategically.
  • 12.
    Get your resumeright ● Be persuasive when describing your experience ● … but don't exaggerate. If you say you know Language X, be prepared for the interviewer to ask you about it! If it's on the resume, it's fair game. ● If you don't have much professional experience, you can include academic projects, side projects, open source contributions, etc. ● Frame your experience in terms of how it prepared you for the specific role you're applying for. Different jobs require different resumes.
  • 13.
    Talking about yourexperience Provide succinct, easy-to-follow explanations with context. Don't assume the interviewer is an expert in your subject domain. BAD: "I spent this summer working at MaxSense where I increased CTR by 8% for our playables by using Sixpack to switch copy and aspect ratios." BETTER: "I spent this summer working at an advertising network, specifically trying to drive engagement on our video ads by A/B testing new ad content and formats. I produced a 8% improvement in click-through rates across the board over six weeks of testing."
  • 14.
    It's OK tobrag! The interviewer wants to be impressed by your skills. Don't be obnoxious… but don't be afraid to give yourself credit. BAD: "I helped the team develop new testing requirements. I also contributed to our new data validation features." BETTER: "I created new best practices for the team around testing that increased our code coverage from 60% to 80% in one quarter. I developed the first proof-of-concept, as well as most of the final back-end code, for our new data validation features." Talking about your experience
  • 15.
    Talking about yourexperience ● Focus on the experiences that are most relevant to the position you’re interviewing for ● Be prepared to dive technically into your project and discuss some of the technical decisions made ● As much as possible, highlight side projects outside of coursework ● If you haven’t developed any side projects yet, start with something small that you’re really passionate about
  • 16.
    The Dreaded CodingExercise Ask clarifying questions. The interviewer is already waiting for you to do this. The problem that they gave you was probably vague, unclear, or incomplete -- part of the test is whether you can think through edge cases. Take your time and consider all the possible inputs and outputs. Don't make assumptions. You're probably wrong. Instead, ask the interviewer to confirm your suspicion.
  • 17.
    The Dreaded CodingExercise Talk through it. You don't want to write code without a plan in mind. Even if you think the solution is obvious, take a minute to think out loud, or outline your solution in comments. Often, you'll discover a flaw in your own plan, or the interviewer will ask you a question you haven't considered. Be prepared. Almost every company wants you to write valid code in a programming language. Choose your language in advance, and learn its syntax. Learn collection types, generic parameterization, and any other constructs you would use as a daily programmer.
  • 18.
    The Dreaded CodingExercise Remember -- it's not that hard. Sure, the problem seems daunting. But there must be a way to deal with it in the allotted time, or nobody would get hired. And in fact, there's almost always a trick. Break down the problem. Don't try to write a full solution right off the bat. Try to make a skeletal outline. If there's one piece of the problem you know you'll have to solve, write a function signature for it and forget it. Write pseudocode. Write comments. Get something on the board that you can build on.
  • 19.
    The Dreaded CodingExercise Consider edge cases. Every technical interviewer is looking to see how you handle edge cases. Exhausting the space of possible inputs to a given problem should be the first thing you do. Ask the interviewer what they want. Are they looking for a brute force solution? An algorithmically optimal one? Pseudocode? Production-quality code? Clarify the expectations before you start working to produce the right result.
  • 20.
    The Dreaded CodingExercise Remember… the interviewer wants you to succeed. Nobody likes watching a candidate struggle in an interview. If you're really stuck, there's nothing wrong with asking for help. The way you integrate feedback from another engineer is just as important as the code you write yourself.
  • 21.
    Talking about thecompany Ask questions. It's important to show interest in the company and the team. Unfortunately, most interviewers still have a lot of subjective leeway in making recommendations to hiring managers. The more questions you ask, the more the interviewer gets to talk -- and at the end of the interview, they feel that they connected with you more than they did with other candidates.
  • 22.
    Talking about thecompany You're already on the team. When you want a promotion, the standard advice is to demonstrate that you're already performing at a higher level. The same advice applies at an interview -- act like you've already been hired. Ask what you'll be doing on your first day. Ask how the team plans to teach you about their code and their best practices. Ask about the direction the company is headed. Ask, ask, ask. Be memorable. You know you'll be asked to explain your background. Have a concise one- or two-sentence summary of your career ready to go.
  • 23.
    Don’t forget ● Before:PRACTICE! :) and research ● During: Do your best to relax - go into it like a discussion with a friend or colleague. ● During: Ask plenty of questions - clarify anything you don’t know before attempting to provide a solution. ● After: Don’t get too discouraged if you don’t make it through the process. Interviewing isn’t perfect, don’t let a false negative impact your ambition.
  • 24.
    CMU specific resources ●Paying attention in classes help ○ 15-251, 15-210, 15-451 help instill a problem solving mindset ○ 15-213 is fundamental ○ People familiar with CMU will often times ask about 15-410 (it's a plus!) ○ 10-601 is hot right now for getting a job ■ Pre-requisite for 10-605, which is more practical (and fun) ● Go to job fairs and company talks ● Your peers and alum
  • 25.
    Interview Science @Karat What makes a bad interview? ● Conscious and unconscious bias ● Subjective requirements ● Frightened candidates ● Low signal-to-noise ratio ● Meaningless "quiz" questions
  • 26.
    What makes aKarat interview different? ● Conscious and unconscious bias Professional interviewers peer-reviewing each other's work ● Subjective requirements Objective, concrete evaluation metrics that measure specific competencies ● Frightened candidates Interviewers screened for interpersonal skills, and who put candidates at ease ● Low signal-to-noise ratio Constantly refining our data and measurement points to improve assessment quality ● Meaningless "quiz" questions Targeted questions relevant to actual engineering work, tested for consistency & quality Interview Science @ Karat
  • 27.
    Do you haveideas that can make interviewing better? We’d love to hear it! Chat with us anytime: anthony@karat.io Free practice interviews: karat.io/university Follow us: @karat Find this deck at: