I think most of this is, or should be, uncontroversial. While it's incredibly important to avoid bad developers, once you hit a certain high level of technical ability other traits become more important. Besides, this isn't a fixed scale. Except for a few outliers, the concept of "more skilled" doesn't really have a meaning once you pass a certain level.<p>At that point, what many shops do is hire people they enjoy being around, which is usually a shorthand for hiring people just like them, and then create all sorts of pseudo-psychological justification for it. The truth is that one day isn't going to tell you much about a dev. Some people are really good when first meeting strangers, some people are very uncomfortable for at least a week. Everyone deals with that nervousness differently, and on the other side, most people are incredibly unaware of their own prejudices that might be affecting their one-day reaction to a new person.<p>At the end of the day, there's really no magic formulas for creating great teams.