Humans are bad at evaluating candidates and generally we do a bad job of creating criteria to assess people because what we are doing is attempting to assess risk and humans are notoriously bad at assessing risk. Here is one example of how poorly investors assess risk because of our inherent biases and bad information http://www.nber.org/papers/w22143. The same concept applies in interviewing. With all due respect, the software community has no established criteria for what makes a good software developer or engineer bases on hard evidence. It's all anecdotal and every hiring manager leans on their own flawed biases based on their experiences.