To do a good programming job, is "skills" the most important factor? The blog seems to assume so, which leads to the confusion. Scientifically, when conclusion seems confusing or contradicting, challenge your assumption.
I think a very important factor in a good programming job is communication. It takes communication to convey requirement and expectation, it takes communication to understand requirement and expectation, and it takes communication to spot and clarify misunderstanding and confusion. Reviewing my own work, I think I am dealing with clarifying misunderstanding and confusion most of the time. It is rare I gave a code review and the author understand my comment spot on right away. There is always some misunderstanding and cross-talking. I think the issue is so bad that even within the same department where we can freely discuss face to face with a whiteboard, we often ended up avoiding touching controversial code, avoid refactoring, instead embracing add-on orthogonal patches, and only focusing the review on trivial stuff such as white spaces and test failures. Our software sucks because of this communication factor. In fact, I think the OOP prevails because it allows us to sidestep the communication to some extent (at the cost of bad code (but functional) ).
The communication factor dictates that we hire people within the culture, within the location, and within the education background -- regardless of the correlation to skills.