Avoid employing unlucky people - throw half of the pile of CVs in the bin without reading them.

-- David Brent in The Office

I'm interviewing. Again. Though I've done this many times before, I'm still racked with uncertainty and doubt.

Joel Spolsky recommends asking yourself just two questions about each applicant:

To be sure, these are important questions. We don't want a brilliant PhD who seems unable to deliver because he keeps getting side-tracked with "interesting" yet impractical theoretical problems. Even worse is the numbskull programmer who gets a lot done but leaves behind a trail of wreckage in the form of great wads of buggy (often cut'n'pasted) code -- which can cost you an arm and a leg in support calls and take years to put right.

Joel seems unconcerned about relevant experience, presumably because computing changes rapidly and skills you have today may well be obsolete tomorrow. I also remember Ovid mentioning that his team is happy to recruit good developers with no Perl experience and train them in Perl. While that might work out well, it is risky. Here's why. Some years ago I was hired as a Java programmer even though I had no Java experience. I learnt Java easily enough, to be sure, but after learning it, I discovered I disliked the language and hated its culture. That is, I was a poor "cultural" fit for that company's Java-loving team. I resigned four months later. That was an expensive hiring mistake.

So, in addition to being smart and getting things done, I add two more, making my primary hiring criteria:

Which of these do you think most important? What's your list?

The next step is to devise a set of interview questions that help identify the right applicant. I've listed below some of my favourite interview questions. What are yours?

General Questions

Trivia Questions

Some people feel these are a waste of time. OTOH, they are cheap to ask and help me judge the applicant's personality and cultural fit with my team. Certainly, I've been shocked at how many highly experienced developers cannot answer any of these questions!
Update: Based on feedback to this node, I no longer ask these questions.

Behavioral Questions

Behavioral questions try to predict future performance based on actual past behavior, not on responses to hypothetical questions. The question format is sometimes referred to as PAR:

Behavioral questions should be chosen to match the desired attributes you're looking for -- based on job descriptions, desired skills and personal qualities. You might identify desired skills and personal qualities based on a historical sampling of your employees -- both highly successful and highly unsuccessful ones.

Some sample behavioral questions:

Before asking such questions, you should explain to the candidate what you are doing and why. You'll further need to take notes to check with the candidate's referees to ensure the candidate is being truthful.

STARR

Related to Behavioral Questions is STARR:

See "References Added Later" section below for more information.

Auditions

DeMarco and Lister, in their classic Peopleware book, recommend holding Interview Auditions. In the audition, the candidate gives a fifteen minute presentation on some aspect of their past work to an audience consisting of all the applicant's future co-workers. This helps ensure new hires are a good cultural fit with the team. Moreover, allowing all team members a say in whether to hire or not helps build team spirit and cohesion.

Role Playing Questions

I've never asked any of these but am toying with doing so. The idea is to play out a scenario with the interviewee to see how he reacts in inter-personal relationships in various (e.g. stressful) scenarios. Has anybody tried doing this? How did it go?

Meta Questions

Towards the end of the interview, you can often gain useful information by asking the candidate questions about the interview itself. For example:

Developer Questions

Update: To protect yourself from hiring developers who talk a good game -- yet are unable to deliver in the workplace -- candidates must be asked to write some code ... and then explain their thought processes behind it in a debrief session. For some examples of different ways to do that, see Re^4: Rosetta Dispatch Table (Interview Question).

QA/Testing Questions

General Skills

Some general skills employers may be looking for:

Not sure how to test for these, apart from Behavioral Questions and STARR above.

Perl Monk References

Outside References

References Added Later

Related to Organizational Culture and Teamwork:

Updated April 2006: added new Auditions section. Feb 2008: added new Behavioral Questions section. July 2008: added new Meta Questions section. Jan 2011: added modern perl book perl questions link. Aug 2018: added new "STARR" and "References Added Later" sections (Structured Interviews, STARR etc). Sep 2018: added LanX Self Assessment Reference; added "General Skills" section. Jan 2021: Added extra modern perl books links


In reply to On Interviewing and Interview Questions by eyepopslikeamosquito

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.