My experience with Indian devs has been their English is as "proper" as anyone's, and their technical skill levels vary with about as much variation as in the U.S., where there are also plenty of not very good developers.
The thing is, once a company has decided to prioritize saving money on developers, they are probably willing to take devs who are really not very good to get cost savings (whether they realize it or not), and there are a lot of companies in India which exist to help them do that. If they wanted to hire not very good developers at cheaper rates in the U.S., they could easily do that too. Perhaps the people making the decisions fool themselves into thinking the rock-bottom-rate devs they are hiring in India are magically highly skilled, and somehow it's easier to fool yourself this way when they are on the other side of the world.
Because California, number one, and because everything costs 3-10X what it does elsewhere. I could easily double my salary if I moved to SV, but I'd have to live in a van in the parking lot like a hobo, instead of being able to afford a decent house and have a goodly amount of disposable income.
Remote work allows for a better diversification of work forces across regions. For example, if somebody who lives in Detroit because that is where they were born and family is can have the same high tech job as people in the Bay Area it helps Detroit be more resilient and flexible to regional business fluctuations.
You vastly underestimate just how cheap outsourcing is
This is anecdotal but over and over again, this was the scenario:
1. local firm collects bids
2. As courtesy firm tells us we were 2-5x more expensive than winner, winner is in far east.
3. 1,2,3 years latter firm returns to us asking if we can re-submit but on a more shorter timeline (maybe the project would have been 2-3 engineers for 6 mo)
4. We come back with a new bid that is 8-12x more, has a bigger team than we would have used orgiinally, less favorable risk analysis..
5. They paid us to take them on! Often-times we had to throw away almost everything their Bangladesh contractors had been working on for years (fundamentally bad schema, no unit tests, bad bad code)...If engineers in India are, say, 5x cheaper fully-loaded than in the US; and some of them are awesome engineers; why are there not startups in the West competing to pay the rock-stars a Western salary but have them stay in India?
With all the close ties between the Indian IT sector and Silicon Valley I would expect it to be common practice especially among startups to try recruiting the best away from, say, InfoSys by simply paying them what you'd end up paying an inferior engineer locally.
As far as I can tell this is not done very often. Anybody know why? Or am I just not aware of it?
The hardest part would be to build a team of true startup hustlers, because the outsourcing industry has not been built around those types of people. Traditionally you have to have very strong top-down management and clear requirements since the mentality on the other end is to do what your told, avoid giving bad news, and maximize billable hours. This is something that large companies with established products can do a lot easier than startups.
In general the reduced execution risk is not worth the cost savings because you don't yet have a business, you are trying to build one. The safer bet for a startup very tight team working hand in glove where every employee is obsessed with the high-level product.
I've seen people who've got really cool sites to show that they've worked on in their spare time, or worked on with local collaborators.
Somehow, and it's hard to pinpoint how, when they try to work with someone in the West, it breaks down. Understandings that are natural to you sitting in one part of the world may have been completely missed by your remote guy in the East. Doesn't always happen, but it's enough to warrant a risk premium.
If you're paying them a Western salary, why not relocate them to be local? In my personal experience this is what I see happen when we do ID an engineer who isn't local but good
Doesn't that remove any kind of gain from outsourcing? What would be the point? You now have the downside of SV salaries and the downside of managing remote teams across the globe.
"With all the close ties between the Indian IT sector and Silicon Valley I would expect it to be common practice especially among startups to try recruiting the best away from, say, InfoSys by simply paying them what you'd end up paying an inferior engineer locally."
Usually those worth their salt aren't working for Infosys in the first place.
There's also control, if you outsource your whole project then why do your workers even need you? They could just do it themselves and cut you out completely.
I understand that this is just a single anecdote but I work with quite a few people who have moved here from SF – and have friends who have made the opposite move – and they have all reported something similar.
If you meant "overall net income", then the Houston dev would likely come out ahead after taxes and rent/mortgage.
Plus, you get to be out in the sticks, not cheek by jowl with a million other people.