I'm a senior engineer at one of the top tech companies. I hold the opinion the interview processed is heavily biased towards college grads or kids who are fresh on algorithms.
I think this helps us hire mostly kids who are book smart but aren't necessarily great (or even "good") employees... I'll do some hand waving here and define good as some combination of being driven and motivated, being able to work independently, and actually caring about what they're doing.
The question is then - well, how do we do this better? Honestly, I'm not sure. Hiring quality workers is a difficult problem. Technical interviews allow you to somewhat measure one of the key aspects of your hire. That being said, some people aren't made to stand in front of a white board and get judged. They don't handle that situation really well, and just because of that, they'll make mistakes that they might not otherwise make.