There are top developers everywhere, not just in SF or Seattle or NY. But not everyone wants to work at giant companies, some would rather work for a small team that does great work but doesn't burn itself out. Some people like living in smaller towns. Some people want a life outside of a job as well. Some would prefer working in a startup where they can make a huge difference and do something amazing. I think a lot of those companies aren't any better at evaluating talent than anyone else and often succeed due to market position, luck, being first to something, or something other than simply hiring "top" talent.