Conducting interviews is hard. Hard enough to make Google fail. In fact, so many companies are bad at it that failure is somehow expected, and finding one that does it well makes you wanna hop on board without asking much else.
The question we face is whether this candidate can succeed. The question we seem to answer is whether she interviews well. Let's not substitute –– Daniel Kahneman, Thinking, Fast and Slow
We're humans, biased, sometimes a bit lazy, and not that good at estimating complex things as we think we are. We need discipline and determination to overcome this.
But is there any hope we can fix this process? I'm not sure, but here are a couple of things that improved it in my case:
1. Define the scope Make a shortlist with all the skills the ideal candidate would have. Keep it simple, 5 to 10 skills, weighted by importance. This usually emerges naturally from your tech stack, but you could also include soft skills. In any case, it has to fit your project/team/company. Also, a good way to ensure you don't overdo it is to consider how many of your current colleagues/employees including yourself would score enough to pass.
2. Let the data decide for you Grade the candidates' competency on each skill and simply select the one that ranks highest.
3. Stop having "a feeling" If you drive your candidate selection based on intuition, I have bad news for you, you're better off shuffling the screened résumés, pick one at random and call it a day.
4. Don't substitute skills for likeness You might like some candidates better than others, that doesn't make them a good match, and not even decent persons (remember, you've just met them). Extroverts are overrated in our society. Focus on finding someone that can get the job done and brings value to the team, else, you might end up working double-time just to have someone nice to chat with during the ever-shrinking breaks.
5. Be fair If you're looking for tricky questions on the Internet to prepare for the interview: you're doing it wrong. The things you're asking should organically emerge from the things you already know and encounter in your daily coding activities. Otherwise, you're not qualified to hold the interview in the first place or you're hiring for a different position.