> From what I've seen, there sure are a lot of not so great developers working in the valley. At least judging from the copycat designs, the clumsy UIs, chronic UX issues, etc. from typical startups I don't think that the grass is greener over there in any meaningful way.
This is not the fault of "not so great developers", this is the fault of "agile development".
Whereas a decade ago you could go into a store and buy an AAA game, you could expect that it was free from major bugs and generally playable from start to 100% on decent hardware. Today? Gonna be happy if the patches on first run are not consuming more space than the original game itself and you don't have the feeling that the game you shelled out 50$ for is not just a green banana that ripens at the customer.
The same is valid for general software and especially web apps. Time-to-market is everything, who needs a QA department (it can all be done by developers in their spare time / overtime, no need to hire persons who know how to write proper testcases), who needs a proper ops department (the people who actually know about how Linux operates, what security is and what ACID means, compared to full-stack devops developers who cost a tenth of the money a good DBA or system architect can command) and if it works in a half baked A/B test (cheaper than running user studies or, heaven forbid, actually inviting power users from your target market to fly to you and show you how they use your product) then it gets rolled out indiscriminately to all your users. And when the pile of layers of shoddy bugfixes and other general crap (e.g. foundational architectural issues) finally collapses after a couple of years, the original creators have long since jumped ship and cashed out. It's definitely not sustainable.