Why your technical interview sucks

I really dislike the direction modern technical interviews are taking.  I have interviewed with several companies over the years and I am starting to recognize trends in the hiring community.  One of the biggest and most difficult to deal with is "How do we hire the best people?" I've been a key player in the hiring process for 3 fairly well-known companies at this point so I want to share my opinions on the matter. 1) The phone screen should be no more than 15 minutes Honestly, you can learn *a lot* about an individual in 15 minutes.  What are they up to now?  Why your company? What do they do for fun? What online communities are you a part of?  Some companies prefer 30 minutes with technical questions; I like them short and sweet. 2) Algorithm questions on the phone are worthless If your company truly needs somebody with a strong skill in algorithms then you should probably be hiring a masters or PhD student in computer science; not a random engineer without a published body of work on the matter. Is that to say don't ask logic problems?  Not necessarily.  The purpose of the phone call is a cursory screen, so ASK a question that most people are likely to be able to say something about.  Algorithm questions aren't easy to verbalize, that's why math notation was invented and why college campuses keep white boards everywhere.  Think about how you would verbally describe how you would figure out how many jelly beans fit in a VW bug as opposed to describing the inner details of a network algorithm.  I'm willing to bet the jelly bean question is much easier to talk about and still offers considerable insight. 3) This is the era of social media.  Use social networks to find people All the best engineers I deal with are highly social people.  They have accounts on github, are located on Facebook, and probably have a minimum of five other networks linked on their personal domain not counting their blog.  If someone sends their resume to you and it has their personal domain listed you have an opportunity to learn more about their background as an engineer than any phone screen will reveal.  It also makes the interviewee feel like you aren't wasting their time because you checked out their background FIRST. 4) Personality is more important than technical skill A douchebag that knows the entire Java API off the top of his head is still a douchebag.  Douchebags work poorly in teams and quickly accumulate animosity poisoning the team environment.  Someone with less technical skill, but who gels nicely with the team, can be taught fairly easily and brought up to speed.  If your in an agile environment that practices pairing, than this choice is even easier. As a corollary, the team that will be working with the individual should have the final hiring decision.  They, after all, are the ones that will have to work with the person.  Hiring the aforementioned d-bag will undermine your respect as a manager and the rest of the team will alienate the misfit causing productivity to plummet.  I've seen it happen at several companies across a wide spread of teams.