Anecdotal evidence: I got far more replies to WhoIsHiring posts when I didn't list my location compared to when I did. Sad, really.
Sorry but you give cheap, you get cheap. No form of software development is a rote, repetitive process that you can just drag in anyone who can fog glass off the street and sit them down at an assembly line to do. It's not amenable to the kind of cheapo outsourcing that can be done with some industrial processes. (And even there, you get what you pay for... it's why the Chinese sweatshop junk is junk.)
I've met plenty of good Indian devs over here in the 'States, and I'm sure there are plenty more over in India. But they're probably only a bit cheaper than good U.S. developers, especially since they can get telecommuter positions at U.S. firms for U.S. wages.
However, when the larger company I worked at outsourced development to India to cut cost, the code quality we saw coming back was terrible. My impression though was that this was due to a combination of factors, including project management, lack of clear requirements definitions, language barriers, and then finally software development.
You get what you pay for.
They don't realize its unfair to pay a good programmer much lower (even considering the Purchasing Power Gap) than one in US and bear the fruits of hiring a bad dev.
The rest can be categorized from moderate to literally the best in the world. Many of these devs end up going to US for an MS/PhD and so the pool shrinks further. Nonetheless, I've seen some really good devs out here as well. Companies like Google, Amazon, Flipkart, Apigee make sure they get the top brass from these lot.
I'm not surprised why many people may stereotype most of the engineers in India as "bad devs". Unfortunately a majority lies in that lot. Filter them out and the rest are as good as any out there.
One of the joys of having worked and gone to school with diverse and often distributed sets of people is that I've been honored to know extraordinarily bright and productive individuals who are dissimilar along many irrelevant dimensions. I'm thankful for the perspective and wish it were so universal that no one would wonder such questions.
I agree that it is sad that we're not there yet.
Short answer: No. Absolutely not.
A longer answer would probably explain that in my experience over 10 years in the industry, much of that working with Naturalized Indians as well as H1Bs, I would say they are on par with anyone else in the industry, you have good and bad.
I've met brilliant Indians, and worthless ones. Just like every other nationality. It's simply not a good metric to use when choosing them, that's why it's illegal to do so.
IMHO, and I'm certainly no expert, but it seems that in india more people see IT work as a path to middle class wealth and this consequently attracts more people to the field, in the same way that people become doctors who have no interest in medicine, and people become lawyers without an underlying interest in law.
There are certainly good doctors and lawyers who aren't 'passionate' about their profession, but for the most part, interest is the path to competence, and so as more people enter the field for financial and social reasons, you end up with a overall lower quality of candidate.
It's been said much of American culture arises from the self selection of those choosing to leave home and come here over the last few hundred years.
Similarly, the choice of geography and company of employment by developers tells you a lot. If you can't choose the individuals, choose the organization all the more carefully as its employees will have made a choice too.
While there is some truth to it, it's important to keep in mind that there are quite a few exceptions to it. Many people have returned from US for various reasons. Many simply didn't go to US because of visa hassles or personal reasons.
As an example, I refused an H1B assignment for a boring Enterprise SW job in Arizona that would have paid 4500$/mo, instead opting for a career with local startups which has worked our rather well, both professionally and personally. (A job with a startup in US sounds definitely better to me than one in India. Few are willing to sponsor H1B though.)
What I mean is that career options in USA are not universally attractive. Some jobs in India are much better than some jobs in US.
I'm not sure if that has to do with a perception of talent or simply a presumption of a language barrier, since I've also seen a fair number of devs from India post content (both on blogs and on places like Stack Overflow) that make me question their communication skills.
It may simply be a case of many people = higher number of proportional incompetence.
Edit: To add, it may be a higher number of proportional sub-par content coming from India due to greater degrees of internet access.
Full disclosure: I'm originally from Sri Lanka, now living in New York.
I have had several professors/GTAs at uni who are native Indians that I highly respect for their CS knowledge. The accent can be a little hard to pick up at first if you've never been around it but after that its all gravy :) Likewise I've had some who I've completely despised, just like every other person of every other ethnicity. I'm sorry you have to deal with that.
Edit: expand on last para
As I said, it's utterly ridiculous.
Jerry average american building a real estate site may have some different biases though, and that bias may cost him some really good talent.
I agree with Kohanz & API ... outsourcing companies throw peanuts at developers and expect quality code.
With that I've noticed Indian developers work with much more languages than a developer here, who 'focuses' or 'specialises' on one or two languages/code stacks.
My only conclusion to the notion that outsourced jobs yield low quality code is that companies DO NOT PAY ENOUGH. Pay more and you get better project management, better project scope, and future proof code.
In the 21st century sweatshop workers should not exist ! that goes for the IT industry too.
I believe that to be just plain wrong. I suspect you're taking a small sample of people and extrapolating that. India contains a great many universities and technical colleges teaching people programming. These places charge money.
I see this blindness a lot here on HN; HN is a small group of motivated technologists. The majority of the world's programmers don't read HN. They don't read programming books. They don't think about other programming languages. They don't learn new things by themselves.
C++ is the mother of all modern languages and I suspect job specification that mention "C++" is an indication of that.
This also is simply incorrect. I see a vast number of job specs without C++ on them. If C++ is being put on job specs just because it's "the mother of all modern languages", whatever that means (and how exactly is C++ the mother of modern C, Objective-C, Ruby, PHP, Perl and a whope bunch of other languages?), do the job specs without C++ on them come from some other universe where C++ doesn't exist? No. They come from jobs where C++ isn't required.
I myself would assume that the skill levels at 90th percentile of all developers from India is well below the median levels of the valley. The distortion is partly contributed by the number of graduates entering the industry. The main contributor of this situation would be people's motives. There is a huge difference between aspiring for fame & world domination/peace v/s what is deemed as a high income job (the notion of "high" is relative to national income levels).
So the obvious answers are as follows: there is fundamental difference in the calibre of people that depends on their motivation and there are dominant motivations that varies by geographies.
What would be interesting is to stop looking at this as a US v/s SEA thing and instead pick a region from any first world country where dominant motivation of developers is to just get by and see how it fares against the valley.
That's why I'm now thinking that a better (even though also potentially flawed) generalisation would be "India = bad management".
Even as a US citizen fluent in pretty much only English, if you give me terrible requirements or can't even express them clearly, I'll give you a terrible product. I would call my work intermediate to advanced though I can cite far more capable people than I, in any nationality.
I think the rep India gets in particular is the cultural shift. Almost all outsourcing when you hear of outsourcing tales went there versus any other country. Of course you'll hear horror stories and of course if you heard them you would likely assume that "India = terrible".
My personal experience is more that management is terrible and have an extremely difficult time properly describing specifications. That you're trying to explain this to developers who by in large are not as fluent in the language as you means this will be naturally more work than just communicating with people in your geographic region. If the labor is cheap but you're spending 2-3x as many man hours just explaining the requirements, how much are you really saving? This really goes for any nationality "offshore" to your own.
The offshore companies profit lies between what they pay people and what they charge the mega-corp. Some offshore companies cut corners in this area - so you will hear things like "they only did the minimum", "they can't think out of the box", etc. This is likely because the developers have too many projects and really aren't encouraged to go above and beyond since that will not help the profit margin.
A lot of the offshore companies have attrition problems as well which help contribute to the stereotype that developers from those countries are unskilled or cheap.
From your writing on your blog, you are a better writer than what I've seen coming from some companies in my day job. You're doing the right things by blogging and maybe you should start a github repo for your side projects so future potential employers can see your capabilities first hand. Work on your spoken English/American English as well (I have nothing to judge on but this can be a barrier), the better you become at this the faster you can break through that stereotype.
If you aspire to work for a startup, see if there is a startup scene in your area.
Relatedly, my experience has been people demand cheap if you're from India even if they do think you're skilled. It's the geographical version of the "but it only took you 10 minutes" argument. This does bug me.
My advice to you is to hide your location at least until they see your portfolio/github first. And be firm about pricing. Maybe a modest discount so you don't lose tiebreaker decisions, but don't fall into the trap of anchoring your worth to geography.
For context, I spent a decade in the US before returning to India and have freelanced in both places. I do have degrees from a couple of fancy US universities that partially address the signaling issue.
That's bullshit. It just means you didn't work with the right people. I've led remote teams (not indian teams) which got very high praise from the US management.
I've worked with three large outsourcers over the years and it's been nothing but carnage. We'd have been better off hiring less local people at a higher wage.
The next stage is the service companies. If you're an A player, and these are as common in the Indian tech. community as in others though they're harder to find because the large number of people you have to wade through to get to them, you'll already have some open source contributions and contacts with other good programmers and they'll get there. The others, who are the bulk, don't have all of these privileges and don't know what to do. To their aid come service companies. These are the organisations I blame for most of the, often justified, stereotypes of Indian programmers. They hire people in bulk, give them some focussed training (since their formal education is often worthless) and then expose them to the world of cheap outsourced software development.
This is where many foreign devs and Indian devs meet and this is the "most average" of the Indian tech. crowd you'll find. They're uninterested, driven by things low on Maslow's pyramid and generally worry about things like saving face, getting promotions, pleasing managers and rising up the social and professional ladder rather than good tech.
Naturally, these people are "cheap" and "unskilled". They were selected from the larger pool for mostly those reasons.
If you've come into contact with Indian devs from good tech. conferences, mailing lists, free software projects, irc or other such fora, your experience is bound to be difference since you're meeting the ones that have gone through another filter.
The sad thing is that the education systems can crush people and make them unmotivated and uninterested. That's what I'm trying to remedy, atleast to some extent, with my latest endeavour. I've taught students at colleges and there's often some spark in them that can be nurtured. I've done corporate trainings for fresher batches at service companies and they often couldn't care less. It's too late by then for many people.