Skip to main content

How to interview a candidate?

How to interview a candidate/programmer -- Version 0.0.1


Note: It's based on my process of short-listing candidates/programmers and experiences so far in selecting and building my great team. I'll expand it whenever I get time and will amend versions.

Not many of you were wise in the way the world judges wisdom. Not many of you had great influence. Not many of you came from important families. But God chose the foolish things of the world to shame the wise, and he chose the weak things of the world to shame the strong. - St. Paul

Core facts



  • Interviewing is a serious effort and interviewing has great career prospects. Take it as a serious profession.

  • Interviewer/interviewee – no one is genius.

  • You cannot find a person who knows everything.

  • You're not a foreteller and so you cannot identify people by appearance. That's the need for the interview.

  • No interview question is right or wrong. You need to take good decision based on many factors—not just by the answers of the candidates

  • In most of the ideal cases, the interviewer and interviewee will share only a part of the knowledge (see the Venn diagrams below)

    • Interviewer-Interviewee1

    • Interviewer-Interviewee3

    • Interviewer-Interviewee4

    • Interviewer-Interviewee2



Intro



  • Interviewing—face-to-face interviewing needs at least 1 hour

  • Big job – think of career

  • Projecting company and our name – marketing ourselves

  • Serious and selfless process

  • Identifying potential is plus and a good for everyone. If you identify and appreciate a potential, they'll remember you for their lifetime

Preparation



  • Interviewing needs tough preparation.

  • Learn what is interview and why interview is important and how to interview


  • Read at least 3 books and articles on interviewing. Remember again that there is no correct approach; every author may have his own opinion. Take opinions or ideas that are very rational to you.

  • Technical questions preparation

    • We're looking for programmers. So, technical is very important and needs great amount of preparation.

    • Prepare as many questions possible in DB, PHP, General, Programming, etc

    • OOP – Prepare as many as questions on writing OOP code. Many people ask theoretical definitions; but that many not help to identify the real programmers. Give suitable problems that can be approached by OOP. Give suitable problems to use reuse OOP code or write OOP based library.

    • Have at least 3 form of questions prepared for a single answer. That would help avoid the question is been leaked over Internet



  • Communication preparation

    • Prepare well on how to ask questions, how to open questions, how audible you should be, and the modulation needed.

    • As English is the formal language for interviewing in India, understand proper pronunciation for the words you may have to use while interviewing



  • Prepare lot of bogus and or tough questions

    • This is merely to project the name of the company—something like Microsoft interview. If the questions are too easy, the candidates may feel bad about the company and current employees' potential. But, these questions are not deciding factors. These answers shouldn't be accounted.



  • Prepare lot of "deciding" questions

    • Question such as "find whether the given integer is odd" is deciding type of questions. If the candidate doesn't answer such questions, he is most likely not a good programmer.

    • For PHP OOP, this question may be considered "deciding" question: using the following class, how will you find the area and perimeter of a ground that is 1250meters X 5290meters in dimension?


    
    <?php
    class Rectangle{
        public $width = 5;
        public $length = 10;
    
        public function getArea(){
            return $this->width * $this->length;
        }
        protected function __getPerimeter(){
            return 2 * ($this->width + $this->length);
        }
    }
    ?>


Facing interview



  • Dress

    • Should be decent, no vulgar, not disturbing – so that the interviewee will not feel uncomfortable facing the interviewer



  • Punctuality

  • Policies – no mobile phone, etc

Basic objectives



  • Smart candidate (with reading, writing/typing, programming skill, attitude, aptitude)

  • Candidates for getting thing done—our current job

  • Growth for both interviewer and interviewee

    • No growth for the interviewer, if interviewee has lesser knowledge than the interviewer (refer the Venn diagram above)



Don'ts



  • Insult

    • Even if you reject the candidate, there is 99% chance that the candidate can still become a CEO of other company, president or prime minister of the country. Always be kind to the candidates.



  • Interviewing is not choosing life partner

    • The jollu nature of the interviewers is wasting majority of the interviewing process in India. ("jollu party: [Tamil Slang] Jollu refers to spittle. Party refers to a person. A jollu party is someone salivates at the sight of the opposite sex." -- http://www.vsubhash.com/die.asp?word=jollu%20party )



  • Judge over appearance

  • Judge over dresses or dress codes

    • If the dress code is too informal, ask for the reasons. If the candidate has no answers, then the candidate may not be serious about the career in the company. But, if his answer is something like "I thought that you'd look at my stuffs—not at my dresses", then it shows his confidence.



  • Judge over answer

    • This is very important: do not ever judge the person by merely looking at the answers. If you think the answer is wrong, ask for the reasons. The guy may be next Newton or Einstein to disprove the theory that you've believed to be the answer of the question.



  • Stop asking after few questions by judging the person by previous answers (see above) or judging the person with set of prepared questions. If the candidate is not answering anything, it's better to ask for the reasons and his knowledge domain.

  • Speak in other language that the candidate is not comfortable with. It's not the right time to showoff your linguistic skills.

  • Look at salary

  • Look at disability

  • Face the candidate without question sheet.

    • Many think that interviewer should showoff and so having question sheet is shame. In fact, having the well-prepared question sheet will focus the interview in right direction and will save lot of time.



  • Blinking with each other

    • If the interviewing is done by more than one interviewer, don't ever blink at each others.



  • Think for question–blinking

  • Underestimate & overestimate

  • Showoff your skills

    • It's not a time to showoff your skills

    • It's not a time to prove that you're smarter than the candidate.

    • Avoid prejudices such as poor reasoning for rejection of candiates such as the one mentioned in The nightmare interview: "Data Modeling" (it shows showoff by the interviewer)



Dos



  • Listen

  • If the answer is unexpected, check practically or ask for the reasons

  • Identify real interest & experience

  • Read resume & check projects (links, etc)

Common steps



  • Start with ice-breaking type of questions

  • Understand about the nature of work and project

  • Understand about domain

  • Understand about involvement and percentage of contribution

  • Start with medium level question

  • Go up to the level of the candidate

  • Fix the weightage of the candidate – ranking

  • Close with ice-breaking type of questions

  • If the candidate isn't doing well, ask for reasons

  • If you think that the candidate has some other potential—other than what you’re looking for the current job, politely inform him that he may focus on that area. Also, if there is a scope for that potential in the company, suggest and refer him for that position. For example, the person may have good designing skills, but he may have applied for programming positions for "survival reasons"

Interview framework



  • Prepare set of questionnaires – software based questionnaires (possible with LimeSurvey)

    • Ask for personal details (Educations, Experience, Project Details or domain)

    • Provide them with collection of tougher and "deciding" type of questions—both in analytical and programming



  • Evaluate the candidate's performance by "deciding" type of questions

  • Even if the candidate isn't performing well, conduct face-to-face interview. You'll have the opportunity to ask for reasons for not performing well or can able to find if the candidate's interest lies in other domain or if the candidate isn't feeling well or if the computer/keyboard/mouse that the candidate used for filling the answers isn't perfect.

  • Shortlist the candidates based on the performance in questionnaires and face-to-face interview, for the next real time round.

  • In the real time round, give the candidate computer with Internet access and possible problem from current projects.

  • Take final decision based on all the rounds.

Comments

Popular posts from this blog

Problems with CakePHP - follow-up

Some people have responded including the Datepicker fame Marc Grabanski . So, this follow-up... First of all, I was not ranting nor complaining; I've just blogged/documented my experience. The common problem most of the people pointed out are that it scales for addons.mozilla.com. Those who have accessed their source code can understand that they've done lot of things and also the site is not database-intensive. You should really create a real database-intensive website to understand what I mean. The other point that been pointed out is about open source and community. Lot of people may not be knowing that it's 2 people pushing it and don't want others to be credited . The generic model or dynamic model idea was originally been from grigri and Marcel . It's hard to be called as open source as only few and sycophants are driving it's direction (I'm not talking about svn access) So, here are my humble checklist before you start shouting at me Did you read a...

BehaviorS.js - An alternative to Behaviour.js, event:Selectors and Low Pro libs for unobtrusive JavaScript programming

BehaviorS.js yet another unobtrusive JavaScript library similar to Behaviour.js and event:Selectors but in implementation uses hash based lookup without extending elements; so presumably it should be faster than the rest. The original script and idea was by JLof ; I extended it for DOMContentLoaded support, optimized a bit to avoid scanning of more depths, and added new rules support. I wanted to document the plug a long time and just got time to do it. For the time being BehaviorS.js is available here Update (2006-09-11) : Coralized the link to BehaviorS.js so as to save the load on free brinkster.com webpage Update (2006-09-27) : If the coralized link to BehaviorS.js doesn't work, use http://www21.brinkster.com/guideme/BehaviorS/

Teachers' Kids: The Topper Syndrome

Tao Te Ching Fill your bowl to the brim and it will spill. Keep sharpening your knife and it will blunt. Chase after money and security and your heart will never unclench. Care about people's approval and you will be their prisoner. Do your work, then step back. The only path to serenity.