Technical Job Interviews
What is the best way to interview for software developer positions? I've been on both sides of the job interviewing table, but have been on the interviewee side of some not too great interviews recently. They are somewhat reminiscent of back when I was fresh out of college and looking for an entry level position. I'm just not a great interviewer, it would seem, but this gets me to thinking about things more critically because, honestly, I think I'm a decent software engineer. So is it that the most common interview processes don't accurately gauge developer talent? It seems that the most common interview technique is white boarding problems. I'm not going to delve too deeply into my abysmal white boarding skill, but it seems like even the most accomplished artisan would have trouble with this medium. I think it's difficult to write programs on anything where you can't insert lines in the middle or shift things around. But my biggest question about this approach, though, is does this accurately predict how a person may perform on the job? Personally, I think it would be more indicative of how a person may perform under immediate pressure, which, in my experience, doesn't come up too frequently whilst developing software. Sure you occasionally have a fire to put out, but even then, you don't have someone looking over your shoulder and critiquing you along the though process. I recognize that a lot of this may be closely related with how invested a company wants to get with their candidates--there's never really enough time or people to conduct all these interviews, so long drawn out processes are bad. But I have to believe that at least giving a candidate a little bit of time to think about a problem before hand would allow for a more accurate reflection of his or her ability. Maybe even a bit of homework. Am I wrong? What techniques do you think work best?

