On hiring developers (Part IV - Eye-to-Eye Interview)
In this part I’d like to share few patterns and anti-patterns you should be aware of when candidate comes to eye-to-eye interview. Don’t forget to read other parts too - Part I - Part II and Part III.
Make sure there are at most 2 interviewers (experienced interviewer + apprentice combination works very well). More interviewers reduce intimacy and decreases quality of discussion. Since we’re talking about technical interviews and a set of social skills is not the strongest quality of a techie — responding to 3 people can be very uncomfortable.
One more trick — if you have girls in IT, make sure girls are interviewed by girls. Pretty keen and interesting discussions tend to bubble up there. Seriously ☺
Often interviews look like going through a check-list. Having a list of questions you think are important to ask is fine, but don’t be too formal. Interviewing is a process of discovery. Discovery cannot be planned ahead, since people are so unique and answers can be so unpredictable. In order to truly understand the essence of a candidate, you should run a deep conversation that is possible only if you discuss and discover things together, like partners. You’re looking for a partner, aren’t you?
I’ve seen situations when candidate is over-promised something company can’t really give. For example, a colleague of mine joined a product company as an Android Developer — the plan was to re-build mobile application, potentially from scratch. The reality was a bit more complicated and the guy still works with legacy app. And he’s very, very sad :-) Be careful with your promises.
Superman and Santa do not exist
I met many interviewers who try hard to prove relentlessly that the company is the best on the market, products it builds are flawless and people are rocket-scientists. It’s very important to admit that you suck at many things. And your company sucks. And products suck. Even better —admit that you suck and want to improve. Or even better — you’re already improving. It’s all about staying humble — a very good quality to have, regardless of your level of experience.
And one more thing — your goal is not to show how cool you are, but how cool candidate is. Feel the difference.
Save the tree
Be eco — don’t let candidate code on paper alone in the room. God save the candidate from brainteasers or logic tests! I think it’s improper to put someone’s basic logical reasoning under question.
I’ve heard that people use computer to write code and normally write code in pairs. 20 minutes of pair-programming will tell you a lot about the candidate (ideally — use technical-assignment submitted by the candidate as a foundation for programming).
Collaborative white-board problem-solving is very close to reality. Don’t forget that number of markers should be equal to number of people in the room. Collaborative is key — individual performers are poisonous.
Give before asking
The idea is pretty simple — if you want candidate to fight for the job, the first thing you should do is pitching. Tell about your product, people, process, tech stuff, candies and free coke. Tell everything you’re good at!
From time-to-time I hear candidates jumping off the bus just after receiving homework assignment. Traditional conclusion —
Homework is too complex and time-consuming!
Bullsh*t. If candidate feels that you don’t worth a day of work — you’ve failed the pitch. Or homework sucks hard.
Give constructive feedback
Everyone deserves constructive feedback. Make sure that you give immediate feedback and improvement suggestions during interview (e.g. what should candidate read, how particular problem can be solved etc.). You can send feedback via email later, but there are few problems with it:
- Feedback can’t be immediately challenged by candidate
- You have to write during interview (which is annoying). Then you have to read again and remember what you’ve felt while writing the feedback. That sucks!
Use continuous and timely feedback to rule them all.
Don’t forget to collect feedback — otherwise how can you improve your interviewing process?
Sometimes you know that a candidate is not a good fit (or you’re not a good company for the candidate) just after 5 minutes of interview. Don’t be afraid to wrap-up and stop interview by giving feedback and reasonable situation explanation. Respect each other’s time.
Make it fun!
Nothing can be worse than boring, formal interview. Seriously, inject some fun and melt ice. Firstly, make sure there is at least one interviewer with a well-developed social skills☺Tell some funny stories from your experience, ask for funny stories, pitch the company from non-standard perspective. Stay positive and creative. Even if you will not make a hire, you can make someone’s day special. Positively special.