In my previous job, I spent a considerable amount of time interviewing candidates. After years of interviewing candidates, I finally realized that a candidate’s personality and attitude are as important as her technical skills. Even though I’m going to describe what may seem obvious to most of you, I’d like to share my short and limited experience interviewing candidates.
As we all know, making a decision about hiring or rejecting a candidate is very, very difficult. There is no clear “black and white,” and intuition is usually involved. Unfortunately, I was not aware of this when I started interviewing candidates. As a result of inexperience, I naively focused, almost exclusively, on the candidate’s technical skills.
In the first couple of years I rejected several candidates, mostly because of their poor performance when solving technical problems. At some point in that time frame, I was lucky enough to interview two great candidates, who later on became my co-workers and good friends. Because my interviewing skills at that time were not mature enough, I didn’t realize that I gave them “thumbs up” not only because of their great technical skills, but because they are nice guys with a very positive attitude.
It finally hit me when I interviewed a very interesting candidate. He solved the problems I presented in record time, with the cleanest solutions I’ve ever seen. For a moment I got really excited about the possibility of having this brilliant guy in team!
It was literally “for a moment,” a tiny and brief moment. As in any interview, I asked the candidate about any questions he might have. He asked questions about the position he was interviewing for, the team and the Bay area in general. I tried to answer his questions the best I could but he never let me finish any sentence. At the end, it seemed that he got bored: he simply cut me off by saying that “we could talk about it after he gets the job.”
The candidate was not only rude. To make things worse, he made sure we understand he has better problems to solve and he is looking for a job flexible enough to give him enough time to concentrate on his own stuff. What I understood instead is that even though his technical skills were excellent, I definitely didn’t want to work with him. For the record, it was an unanimous decision.
After that experience, it was a lot more clear to me what I needed to look for in a candidate: a developer with strong technical skills that I can get along with, an open-minded person and a team player.
Finally, a few weeks before I switched jobs, I got a chance to put my new perspective about interviewing into practice. The interview did not start that well: the candidate needed more hints than expected to solve the first problem, which I considered to be only a warm-up exercise.
I was tempted to think that his technical skills were not strong enough. Instead of jumping into conclusions, I decided to take a break and talk about his background. He was a very nice and polite gentleman. After talking for a few minutes, I realized he was the type of person that cares about doing his best everyday. From the conversation I could tell he was a developer passionate about technology, looking for opportunities to learn new stuff. The candidate was surprisingly humble too: he created and lead a popular and successful open source project! He didn’t say a word about it until I asked him about his hobbies! This guy, as a person and as a developer, was great!
I was glad we stopped and talked for a little bit. He turned out to be nervous! After our short chat, he was more relaxed and he just solved the rest of the problems flawlessly! I’m sure if I didn’t change my point of view about interviewing, I would have dismissed this terrific candidate after the first exercise!
Few days after the interview, I was very happy to hear he was going to get an offer! :)
In conclusion, my lack of experience led me to evaluate candidates based on their technical skills only. As I got more experienced interviewing, I realized that personality and attitude are as important as technical technical skills. These days, in order to make a decision, I ask myself if I’m going to feel comfortable working with a candidate in the same team. More specifically:
- Do we have compatible personalities and similar technical points of view?
- Did the candidate show me I can trust his judgement?
- Was it pleasant to discuss technical problems with the candidate, even if we didn’t agree?
- How did the candidate and I behave when we disagree?
What do you think? I’d love to hear your experience interviewing! :)
Update: The nice folks from DZone have posted this entry at Javalobby.