interviewing great developers: reverse engineering interview coaching to create great candidates
DESCRIPTION
Every engineering department says it wants to hire the very best, but few actually do. Most coding interviews focus on programming language knowledge and trivia. But companies that hire the very best ask questions that go much deeper. In this session, you will discover what hiring managers at “elite” companies look for when hiring developers, architects and program managers. Discover why, in some cases, it’s far more important that engineers exhibit “soft skills” like communication, structured thinking and creativity than exhibit proficiency in a specific language. Gayle, author of three books on interviewing (for devs and PMs), will “reverse engineer” her coaching and advice to hopeful candidates, to help recruiters screen and select the ever-elusive A-players, gurus, rock stars, and ninjas.TRANSCRIPT
twitter.com/gayle facebook.com/gayle
technologywoman.com
Interviewing A-PlayersReverse Engineering Interview Coaching
to Create Great Candidates
Gayle Laakmann McDowell
June 2014
twitter.com/gayle facebook.com/gayle
technologywoman.com2
Gayle Laakmann McDowell
<dev>
</dev>
Author Interview Coach Interview Consulting
(CS) (MBA)
twitter.com/gayle facebook.com/gayle
technologywoman.com3
What I Coach
Download at: CrackingTheCodingInterview.com
twitter.com/gayle facebook.com/gayle
technologywoman.com4
Traditional Dev Questions
Startups “Elite” Other
Behavioral/Experience
Knowledge-Based
System Design/Architecture
Algorithms/Problem-Solving✔?
✔?✔
??
Disclaimer: So. Many. Exceptions.
twitter.com/gayle facebook.com/gayle
technologywoman.com5
How can you help candidates be their best?
Behavioral Problem Solving
twitter.com/gayle facebook.com/gayle
technologywoman.com6
Behavioral Questions: Mistakes
• Underplaying individual contributions• Using “we” not “I”• Not elaborating on actions
• Don’t assume• Probe for details
twitter.com/gayle facebook.com/gayle
technologywoman.com7
Generalist vs. Specialist
• Generalist (algorithms/problem-solving):– Reasonable test of intelligence if done well– Hires highly adaptable people– BUT necessitates that you will train people
• Specialists (knowledge & experience):– Tests that someone can “hit the ground running”– BUT is the knowledge actually difficult to acquire?
twitter.com/gayle facebook.com/gayle
technologywoman.com8
Algorithm Questions
“Problem-Solving Questions”
= Solving a problem you have NOT seen before.
twitter.com/gayle facebook.com/gayle
technologywoman.com9
Problem-Solving Questions
few false positives(only good people pass)
but…
lots of false negatives(many good people fail)
twitter.com/gayle facebook.com/gayle
technologywoman.com10
Why Problem-Solving Questions Work
• Smart people do good work.• Hires adaptable people
So why so many false negatives?
twitter.com/gayle facebook.com/gayle
technologywoman.com11
Why Smart People Fail
1. Knowledge gaps2. Intimidation3. Arbitrary questions4. Not knowing how to be good
These are [partially] solvable problems.
twitter.com/gayle facebook.com/gayle
technologywoman.com12
Why Help Candidates Be Great?
• Goal: good employees, not good candidates.• Do you want to eliminate…–Everyone who doesn’t know ___?–People who are insecure?–People who are bad at interviewing?–People at random?
twitter.com/gayle facebook.com/gayle
technologywoman.com13
1: Knowledge-Gaps (Why?)
• Not knowing fundamental CS knowledge– Especially older people!
• Obscure CS knowledge being tested– Making questions “hard” via knowledge.
twitter.com/gayle facebook.com/gayle
technologywoman.com14
2: Intimidation (Why?)
• Low self-confidence.• Scary questions.• Candidates misunderstanding interview goals.• Interviewers being [unintentionally] rude.
twitter.com/gayle facebook.com/gayle
technologywoman.com15
3: Arbitrary Questions (Why?)
• Well-known questions.• Easy questions.• “A-Ha” moments & singular hurdles.
twitter.com/gayle facebook.com/gayle
technologywoman.com16
4: Not Knowing How To Be Good
• Didn’t use an example.• Tried to rush the process.• Didn’t walk through problem.
twitter.com/gayle facebook.com/gayle
technologywoman.com17
Design Around This
1. Decide what you value.2. Ask the right questions.3. Give candidates tools to prepare.4. Train your interviewers.
twitter.com/gayle facebook.com/gayle
technologywoman.com18
1. Decide What You Value
• Is problem-solving skills a top priority?• What sorts of specialist skills do you need?• Are fundamentals of CS sufficient?
twitter.com/gayle facebook.com/gayle
technologywoman.com19
2. Ask the Right Questions
• Right topics:– Avoid scary topics.– Require only basic CS knowledge.
• Right difficulty:– Medium & hard problems. – Avoid common problems.
• Logical path with multiple insights.
twitter.com/gayle facebook.com/gayle
technologywoman.com20
3. Give Candidates Tools to Prepare
• Tell them:– What to expect.– How they’ll be evaluated.– Struggling is normal.
• Links to preparation resources.
twitter.com/gayle facebook.com/gayle
technologywoman.com21
4. Train Your Interviewers
• How to design good questions.• Be extra nice to candidates.• Coach candidates to be great
twitter.com/gayle facebook.com/gayle
technologywoman.com22
4b. Coach Candidates To Be Great
• Encourage the right example.• Remind them of details.• Don’t let them dive into code.• Encourage shifting gears.• POSITIVITY & SENSITIVITY
A good coach can make a HUGE difference!
twitter.com/gayle facebook.com/gayle
technologywoman.com23
Need The Right Infrastructure
• Interview training• List of good & bad questions -- and why• Standard resource sheets for candidates• Feedback from candidates• Assigned roles• Continuous evaluation & shadowing
twitter.com/gayle facebook.com/gayle
technologywoman.com24
It sh
ould
n’t c
ome
to th
is…