Tech interviews that don't suck
Marc Tamlyn
Photocrowd
Slide 2
Slide 2 text
Disclaimer
• I am not an expert
• I have hired about half a dozen people
• This is what works for me!
• Mostly relevant to small companies
Slide 3
Slide 3 text
What makes a bad interview?
• Employing the "wrong" staff
• Formulaic and overly specific
• Interviewees feeling like they haven't been able to
demonstrate what they know
• Misleading about what the job will entail
• Biased
• Diversity
• Background
• Time
Slide 4
Slide 4 text
What makes a good interview process?
• Good staff employed
• Personable
• A learning engineer
• Attitude to perfection, prioritisation, criticism
• Fair process, promoting diversity in the team
• Suits the role the interviewee will fill
• Adaptable to the interviewee
• Positive impression of company - to successful and
unsuccessful applicants
Slide 5
Slide 5 text
Interview process
• Design a process
• What role are you interviewing for?
• What are the priorities for that role
• Where could they be in 6 months?
• Who needs to be involved?
• Future colleagues
• Team leads
• Non technical people
• Anyone they would work directly with
Slide 6
Slide 6 text
My interview process
• Advertisement
• Screening
• Initial contact
• Pre interview
• Interview
• Coding
• Company chat
• Review
• Discussion
• Feedback
Slide 7
Slide 7 text
Initial contact
• Don't require a complex process
• Redacted demographics
• Or, be deliberately more accepting of alternative
backgrounds
• Look for positives, not negatives
• No Github profile does not make a bad engineer
• A strong Stack Overflow profile may suggest a
helpful nature, or someone who spends a lot of work
time on Stack Overflow…
Slide 8
Slide 8 text
Pre interview
• Keep it short - 15 mins max
• Give them choice of phone/video/in person
• Get a feel for their background and experience
• Why are they interested in your company?
• Ask one or two specific knowledge questions
appropriate to the level of experience they have
• Give them an opportunity to ask questions
• Explain how the rest of the process will work if they are
successful
Slide 9
Slide 9 text
Coding
• Non-production
• Short time frame
• Task is more than is achievable in the time frame
offered
• Set expectations
• Multiple valid approaches to the problem
• Give them an opportunity to solve problems
• Give them an opportunity to make decisions
• Leave holes where they might ask for clarification
Slide 10
Slide 10 text
Coding
• Asking them to code at home will tell you how much
spare time they have, not how good they are
• Minimal setup
• On their own machine
• Allow use of any tools and libraries they think will help
• Make yourself available to them during the process
Slide 11
Slide 11 text
Review
• Involve as many of your staff as possible
• Look at prioritisation of parts and discuss with them
what they didn't do and why
• Tests? Documentation? Style?
• The quality of their code is NOT the assessment criteria
• How they respond to the review IS the assessment
criteria
Slide 12
Slide 12 text
Review
• Pick up on a few things they have done
• Something good
• Something not so good
• Something they haven't done
• Discuss each one
• Why did they do it that way?
• What other approaches can they think of?
• Given this other approach, which one would you choose
and why?
• Disagreement is fine!
Slide 13
Slide 13 text
Bias
• Accounting for interview pressure bias
• Not everyone will perform at their best in an
interview
• Give an opportunity to provide an example of some
code they have written, but preferably don't require it
• Review that similarly, look for learning opportunities
or discussions
Slide 14
Slide 14 text
Discussion
• What makes a good question?
• Has a different answer depending on knowledge and
background
• Opens up the opportunity for discussion and
learning
• Something the interviewer knows a lot about
• Something the interviewee may have an opinion on
Slide 15
Slide 15 text
Discussion
• Examples of open ended questions
• What's the most interesting piece of code you wrote
recently?
• If you could master one technology in the next year, what
would it be?
• What's the difference between a Form and a ModelForm?
• What is the purpose of a database index, and when should
you use them?
• Name two common security flaws a website can have and
what $FRAMEWORK does to prevent them?
• How could I do break that if I wanted to?
Slide 16
Slide 16 text
Company chat
• With non-engineers
• Talk about ethos, company background, direction,
product development, clients, benefits, socials…
• Lots of opportunity for them to ask questions
Slide 17
Slide 17 text
Feedback
• Give an estimate of when you'll get back to them
• Give positives and negatives, even to candidates you are
offering a job to
• Take the time to explain your decisions as much as
appropriate
Slide 18
Slide 18 text
Summary
• It's about them as well as you
• Design the process for the role in question
• Give the candidate the opportunity to shine
• Avoid bias
• Be honest
• Give yourself time
Slide 19
Slide 19 text
Thank you
github.com/mjtamlyn
twitter.com/mjtamlyn
photocrowd.com/mjtamlyn
All photos by Photocrowd users