(I think I made a similar comment to a similar submission a while back)
I suggest this type of interview:
Both the interviewer and interviewee get a problem to solve and they work together to solve it. It should be new to both of them, so the interviewer can better assess its level of difficulty without the bias of knowing the solution beforehand. This will enable natural empathy for the candidate.
It also shows how interaction would look like in every day kind of work. You can learn a lot about another person's skill by doing pair programming.
Logistically speaking, you can whiteboard the design/code, or sit around a big screen for the coding part, with whatever tools/IDE the candidate likes to use (s/he should be writing most of the code, even if the solution/design was a common process).