How to Hire Software Engineers: Best and Worst Practices
-
Upload
gayle-mcdowell -
Category
Software
-
view
1.596 -
download
1
Transcript of How to Hire Software Engineers: Best and Worst Practices
![Page 1: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/1.jpg)
Gayle L. McDowell | Founder / CEO, CareerCup
gayle in/gaylemcdgayle
Dev Interview TrainingHow to Interview Developers: Best & Worst Practices
Oct 15, 2015
![Page 2: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/2.jpg)
gayle in/gaylemcdgayleGayle Laakmann McDowell 2
Hi! I’m Gayle Laakmann McDowell
Author Interview Coach Interview Consulting
<dev>
</dev>
(CS)
(MBA)
![Page 3: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/3.jpg)
Core BeliefsPhilosophies around hiring01
![Page 4: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/4.jpg)
Gayle Laakmann McDowell 4gayle in/gaylemcdgayle
#1: Interviews don’t need to mirror the real world
![Page 5: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/5.jpg)
Gayle Laakmann McDowell 5gayle in/gaylemcdgayle
#2: Good candidate experiences matter
![Page 6: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/6.jpg)
Gayle Laakmann McDowell 6gayle in/gaylemcdgayle
#3: You’ll never have a perfect process
![Page 7: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/7.jpg)
Gayle Laakmann McDowell 7gayle in/gaylemcdgayle
#4: You need to THINK about your process
![Page 8: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/8.jpg)
The InterviewGoals & Questions02
![Page 9: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/9.jpg)
gayle in/gaylemcdgayleGayle Laakmann McDowell 9
Goals
Great employees, not great interviewees
Good in 6 months, not 6 days Reduce false negatives Keep candidates happy
9
![Page 10: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/10.jpg)
gayle in/gaylemcdgayleGayle Laakmann McDowell 10
Core Question Types
Experience/Behavioral Questions Knowledge Design/Architecture Problem Solving/Algorithms Coding
10
Can be mixed and matched!
![Page 11: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/11.jpg)
Behavioral/ExperienceWhat do you ask and why?03
![Page 12: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/12.jpg)
gayle in/gaylemcdgayleGayle Laakmann McDowell 12
1. Why?
Is this a person you want to work with?
Technical expertise Has made good, interesting technical
decisions Culture fit/personality
Not arrogant, curious, initiative, etc Communication
Can they articulate impact?
![Page 13: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/13.jpg)
gayle in/gaylemcdgayleGayle Laakmann McDowell 13
2. Bad Practices & False Negatives
Undefined “cultural fit” Interviewer assumptions Overly specific questions Not focusing on self
“We” not “I”
![Page 14: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/14.jpg)
gayle in/gaylemcdgayleGayle Laakmann McDowell 14
3. Best Practices
Probe deeper Be nice and friendly
(Even if you feel differently) Stick to more technical discussions Challenge YOUR assumptions In every interview
![Page 15: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/15.jpg)
gayle in/gaylemcdgayleGayle Laakmann McDowell 15
4. Evaluation
A factor in ALL interviews Err towards listing minor concerns
Even if it’s just a “feeling” Challenge your assumptions
![Page 16: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/16.jpg)
gayle in/gaylemcdgayleGayle Laakmann McDowell 16
5. Examples
Dive into a technical project Walk through design on whiteboard Discuss tradeoffs, key decisions, etc Extensions to project (scaling, etc) Focus on personal impact
![Page 17: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/17.jpg)
KnowledgeWhat do you really need?04
![Page 18: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/18.jpg)
gayle in/gaylemcdgayleGayle Laakmann McDowell 18
1. Why?
Do they know the stuff they should? Do they have the relevant job
skills?
![Page 19: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/19.jpg)
gayle in/gaylemcdgayleGayle Laakmann McDowell 19
2. Bad Practices & False Negatives
Only basic knowledge Requiring stuff you don’t really
need Too many factual questions
![Page 20: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/20.jpg)
gayle in/gaylemcdgayleGayle Laakmann McDowell 20
3. Best Practices
Hard to acquire OR a red flag Relevant to job Discussions > fact grilling
Evaluation should be mostly qualitative OR: Questions easily Googled are bad
![Page 21: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/21.jpg)
gayle in/gaylemcdgayleGayle Laakmann McDowell 21
4. Examples
How does ____ work? How do you think it’s implemented?
![Page 22: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/22.jpg)
DesignBig, meaty problems05
![Page 23: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/23.jpg)
gayle in/gaylemcdgayleGayle Laakmann McDowell 23
1. Why?
Tests: Ability to tackle open-ended problems Communication/teamwork skills A different side of problem-solving
Respects experience of senior candidates
![Page 24: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/24.jpg)
gayle in/gaylemcdgayleGayle Laakmann McDowell 24
2. Bad Practices & False Negatives
Unreasonable knowledge expectations
Some candidates don’t know “the flow” Can’t ask questions More of a factual answer Don’t drive the process
![Page 25: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/25.jpg)
gayle in/gaylemcdgayleGayle Laakmann McDowell 25
3. Best Practices
Ask open-ended problems Encourage follow up questions Have candidate walk through Let candidate drive
![Page 26: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/26.jpg)
gayle in/gaylemcdgayleGayle Laakmann McDowell 26
4. Evaluation
Ability to make tradeoffs Ability to identify issues Separate knowledge from attributes Response to feedback
![Page 27: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/27.jpg)
gayle in/gaylemcdgayleGayle Laakmann McDowell 27
5. Examples
Design API for… System for Amazon book rank System for TinyURL OOD for a music library
![Page 28: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/28.jpg)
AlgorithmsMake ‘em think06
![Page 29: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/29.jpg)
gayle in/gaylemcdgayleGayle Laakmann McDowell 29
1. Why?
Smart people do good work Hires adaptable people Very effective if done well
![Page 30: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/30.jpg)
gayle in/gaylemcdgayleGayle Laakmann McDowell 30
2. Bad Practices & False Negatives
Easy questions Questions with “a ha” moments Well known problems (or patterns)
![Page 31: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/31.jpg)
gayle in/gaylemcdgayleGayle Laakmann McDowell 31
3. Best Practices
Ask the right questions Be nice and friendly Coach
MAKE THEM THINK
![Page 32: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/32.jpg)
gayle in/gaylemcdgayleGayle Laakmann McDowell 32
3a. The Right Questions
Medium-to-hard questions Multiple hurdles Unusual questions Avoid obscure knowledge
![Page 33: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/33.jpg)
gayle in/gaylemcdgayleGayle Laakmann McDowell 33
3a. Reasonable KnowledgeData Structures Algorithms ConceptsArrayLists Merge Sort Big O Time
Hash Tables Quick Sort Big O Space
Trees (+ Tries) Breadth-First Search
Recursion
Graphs Depth-First Search
Memoization / Dynamic Programming
Stacks / Queues Binary Search
Heaps
![Page 34: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/34.jpg)
gayle in/gaylemcdgayleGayle Laakmann McDowell 34
3b. Be Nice and Friendly
Intimidated candidates do poorly Candidates cling to every word
Use this! “Good job”, “great point”, etc.
Especially if they’re struggling or nervous
![Page 35: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/35.jpg)
gayle in/gaylemcdgayleGayle Laakmann McDowell 35
3c. Coach
Give hints as necessary Encourage examples (input/output) Remind them of key details Stop them from writing code too
early
![Page 36: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/36.jpg)
gayle in/gaylemcdgayleGayle Laakmann McDowell 36
3d. Phone Interviews vs. Onsite
Don’t “go easy” on the phone But avoid problems needing
diagrams Strings, hash tables, linked lists are easy
to draw Trees and graphs are hard
![Page 37: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/37.jpg)
gayle in/gaylemcdgayleGayle Laakmann McDowell 37
4. Evaluation
Not just correct vs. incorrect How optimal? How quickly? How many
hints? Compare to other candidates
Early on you won’t be calibrated More of a “gut feel” than a metric
![Page 38: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/38.jpg)
gayle in/gaylemcdgayleGayle Laakmann McDowell 38
Rand7: Given rand5(), implement rand7() Has “a ha” moment
5. Bad Questions
![Page 39: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/39.jpg)
gayle in/gaylemcdgayleGayle Laakmann McDowell 39
Sub Permutations: Given two strings, s and t, find all permutations of s within t.
5. Good Question
![Page 40: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/40.jpg)
CodingPractical stuff07
![Page 41: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/41.jpg)
gayle in/gaylemcdgayleGayle Laakmann McDowell 41
1. Why?
Code quality matters Not everyone can translate
algorithm into code
![Page 42: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/42.jpg)
gayle in/gaylemcdgayleGayle Laakmann McDowell 42
2. Bad Practices & False Negatives
Requiring every detail Tedious questions Taking over the testing Letting the candidate code too
early
![Page 43: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/43.jpg)
gayle in/gaylemcdgayleGayle Laakmann McDowell 43
Goal: “Seemingly compilable” code. Don’t waste time
Do you really need that Node class? Encourage abbreviations, skipping
uninteresting parts, etc. Make it clear when they should/shouldn’t
code Encourage testing, refactoring, etc
3. Best Practices
![Page 44: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/44.jpg)
Gayle Laakmann McDowell 44gayle in/gaylemcdgayle
4. Whiteboard vs. Computer
More communication
More thought More focus on
essentials
BUT: slow & tedious
Can be more comfortable
Can write faster
BUT: compiling can be distracting
![Page 45: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/45.jpg)
gayle in/gaylemcdgayleGayle Laakmann McDowell 45
5. Evaluation
Look at structure and style But differentiate what’s trainable
Not about complete vs. incomplete Let the candidate test
![Page 46: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/46.jpg)
Final ThoughtsThings to remember07
![Page 47: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/47.jpg)
gayle in/gaylemcdgayleGayle Laakmann McDowell 47
Remember:
It’s on YOU to get the info you want Challenge your assumptions Separate “did they do X?” from
“can they do X?”
47
![Page 48: How to Hire Software Engineers: Best and Worst Practices](https://reader036.fdocuments.in/reader036/viewer/2022062903/58cf0f031a28ab5f2b8b6171/html5/thumbnails/48.jpg)
gayle in/gaylemcdgayleGayle Laakmann McDowell 48
Remember:
Err towards noting it on feedback
Be nice and friendly MAKE THEM THINK
48