Many companies have a hiring process that favors hiring very similar engineers. Hiring different types of programmers would increase their diversity, which for me is a great quality of a team. The challenge here is to identify the competent engineers when you can't use cookie cutter assessment tactics.
Diversity is a strength, and I have learned this managing several teams of varying sizes over the years for different companies, as well as for myself.
I have heard many start up advisers tell people to 'hire people you like to hang out with'. This isn't the best advice. Personality is extremely important, and you don't want to hire people who will be incredibly difficult or toxic or adversarial. But you need different people in different roles, with different viewpoints, to make a strong team.
Suffices to see how several founders (of successful startups) were rejected or quit big companies. I believe Google is one of the worse offenders there.