I couldn't agree more with the sentiments of this post. Apart from anything else 'software developers' vary massively in their core strengths and job positions require different strengths in the candidates. Skill in developing algorithms and solving puzzles on the fly is just one of those strengths. There are so many more in terms of software engineering practices, knowledge of programming patterns, awareness of different programming paradigms, ability to solve higher level problems / combine technologies effectively to solve a business problem rather than a low level programming problem etc.