I Heart Balsamiq Mockups

My response to Hussain's post on Technical Interviews.(read it first and come back here).

Crazy Questions

I never liked that "...can you fit your hand..." question.  It's abstract-ish but has an answer.

I've seen some ridiculous microsoft questions(eg, "What would you do if you were to meet the Prince of Darkness?"), but they are intended to get you to show your creativity and thought process, there is no actual answer.

An interview for a technical position ideally would be conducted by the people that the individual fulfilling the position would have to interact.  The interview questions slash activities are driven by the job description  and the candidate themselves.

The Technical Interview

There are different facets of an interview(assuming anyone actually cares about who they are hiring).  Sure you wanna know if they are professional and passionate about technology, that makes sense.  How do you find out if someone is professional? You'll find out during the interview, do they trash past employers or employees? Note: Trashing previous employers and/or employees is perfectly acceptable, just not in the interview :) Are you passionate about technology? Too easy to answer yes to, so interviewers have to plan some questions that cause candidates to give up examples of how they are passionate.  But is that all? Nope.

The Job Description and Hands On Test

Let's say you're hiring a software developer with at least 3 years experience developing websites using ASP.NET, C#, and Sql Server(or any other database for that matter).  A laptop would be required for the interview, something I'd bring for the candidate(or a desktop, whatever is easiest).  And since I'm into the virtual image kick, I'd have one created already for the candidate, complete with visual studio 200x and Sql Server 200x, and firefox set as the default browser;i'd actually hide all of the ie shortcuts too :)

Requirements

I would have some requirements typed up, preferrably written by a business analyst or someone who's not a software developer.  And I would make some of the requirements vague(so they have to ask questions in order to complete the task).  I'd hand the requirements over to the candidate with the instructions, "fulfill the requirements, no visual designers are allowed in either of visual studio or sql management studio".(details like connection strings would be included).  At that point the interviewers would sit back and watch the show.

Watching the Show

Watch what?  Well did they clarify the requirements, remember, they're written too vague to be able to actually complete correctly, so questions are expected. 

How do they type? I'm convinced that if you're clumsy on the keyboard, or if you're poking around visual studio menus for the "Build" menuitem, you lied on your resume about having ANY experience with visual studio.  I would expect that for someone who types, and is not used to the provided equipment, would type fast and make a lot of fat finger mistakes, which is fine.

The database part would interest me the most.  How many people put "Sql Server Expert" on their resume, and can't issue a CREATE TABLE command in a query window(and yes, it has to actually create a table)?  OK.  Don't know the command? that's no problem, but i wanna see how or if the candidate can find the answer.  This also downgrades their status of "Sql Server Expert" to "i've connected my .NET app to MS Sql Server and that's about it". 

The task would be simple enough to complete within say an hour, actually maybe even 30 minutes.  I'd love to see if they're smart and pick up some tool of their choice(Subsonic, LLBLGEN trial version, their own CodeSmith templates, whatever) to help them complete the task on time; or is most of the time spent writing sql.  The data access code would drill their knowledge of System.Data as well.  Did they write something like "select * from blah where somefield = '" + somevar + "'"? or did they write "select * from blah where somefield=@somefield"(note the use of the parameter).  Lack of parameter use is a pet peeve of mine.

Lack of a designer is good too.  If you're really passionate about what you do, you'll know, maybe not prefer, but you'll know how to type html into the text editor.

Other Questions

What your favorite unit testing framework? How many computers do you have at home and what are they? What OS? What hardware?  Who's blogs do you subscribe to?  What was the last project your were proud of? What made you proud of it? Do you own an IPhone? MP3 player? Any other geeky gadgets? What would you do if you met the Prince of Darkness? Have you ever been to the Rio? What's your favorite beer? Which is better, Blade or Roadhouse? (It's a trick question, they are both awesome).  Who's better, Killswitch Engage or Motley Crue? (again, another trick question; and yes I am going to the Cruefest next month) How many times have you watched Old School? How bout Office Space?

For those who know me, you might be thinking, but all of those questions reflect things specific to me, they're not general questions, but they're things that _I_ look for, and that, my friends, is the point.  Questions like that have to, at some point, come from those the candidate would be working with as part of the interview process.  Can the candidate get along with the people already working there? Candidates interviewed by recruiters or anyone else they won't be working with are ultimately going to suck.

Questions I Don't Care About

I could only think of one off the top of my head: Can you draw a UML diagram? If you can, sweet, teach me the next time I'm finding it difficult to fall asleep, I don't how to do that, and I don't plan on learning.  UML == BORING.

 
Author: , 0000-00-00