
Bad Indian Programmers - factorialboy
http://www.srirangan.net/2013-10-bad-indian-programmers
======
anuragramdasan
So...Indian programmer here. Well. I was just about writing some similar
anecdotes for an article and I came across this. So, let me share what I have
seen related to this.

Firstly, right now in India, programming(Computer engineering) is one of the
most widely adopted courses. This obviously means a lot of programmers and a
lot of web shops, IT services and whatever. More the companies, more chances
of you ending up finding a mediocre one.

Most of these companies and their employees consider it as a 9-5 regular job.
It is a chore. They do not care about you or your product. As long as project
managers meet the deadline and programmers get their salaries, no one cares.
Not everyone can be a "hacker".

You outsource to India to save money. You wont outsource to India if a
developer/company charges the same as its US counterpart. So you end up
outsourcing to mediocre companies eventually.

I have interviewed at a really big Indian IT company and their interview
process made me realize that they weren't serious about hiring talent. They
just wanted more people, whom they'd eventually train to 'get shit done'. For
more clarity, I was asked about movies and stuff in my technical interview
which lasted 15 minutes and then I was offered a job. No kidding.

There are some brilliant Indian programmers too. You probably wont ever
outsource to them because they are expensive.

In a country of a billion people, where computer engineering is one of the
most dominant fields and education levels are mediocre, even if 20%(at most
50%? lets not get our hopes high) of each class produces absolutely brilliant
engineers, that still means a huge number of crappy engineers.

So while there are brilliant, good, bad and horrendous programmers in India,
the math totally inclines towards you finding bad programmers more often.

~~~
tieTYT
This reminds me of a quote in Machiavelli's The Prince about Mercenaries:

> I say, therefore, that the arms with which a prince defends his state are
> either his own, or they are mercenaries, auxiliaries, or mixed. Mercenaries
> and auxiliaries are useless and dangerous; and if one holds his state based
> on these arms, he will stand neither firm nor safe; for they are disunited,
> ambitious and without discipline, unfaithful, valiant before friends,
> cowardly before enemies; they have neither the fear of God nor fidelity to
> men, and destruction is deferred only so long as the attack is; for in peace
> one is robbed by them, and in war by the enemy. The fact is, they have no
> other attraction or reason for keeping the field than a trifle of stipend,
> which is not sufficient to make them willing to die for you. They are ready
> enough to be your soldiers whilst you do not make war, but if war comes they
> take themselves off or run from the foe; which I should have little trouble
> to prove, for the ruin of Italy has been caused by nothing else than by
> resting all her hopes for many years on mercenaries, and although they
> formerly made some display and appeared valiant amongst themselves, yet when
> the foreigners came they showed what they were. Thus it was that Charles,
> King of France, was allowed to seize Italy with chalk in hand; 1 and he who
> told us that our sins were the cause of it told the truth, but they were not
> the sins he imagined, but those which I have related. And as they were the
> sins of princes, it is the princes who have also suffered the penalty.

> I wish to demonstrate further the infelicity of these arms. The mercenary
> captains are either capable men or they are not; if they are, you cannot
> trust them, because they always aspire to their own greatness, either by
> oppressing you, who are their master, or others contrary to your intentions;
> but if the captain is not skilful, you are ruined in the usual way.

Source:
[http://www.constitution.org/mac/prince12.htm](http://www.constitution.org/mac/prince12.htm)

~~~
logicallee
As interesting as Machiavelli's thoughts are read as a blog entry about tech
consultants, don't you think it's a stretch?

~~~
tieTYT
As a tradition, no. Old books like this are _often_ read in a management
context. For example, at my local book shop, The Book of Five Rings is in the
Business section[1]. The Art of War by Sun Tzu[2] can be applied to any
context you want and it's usually still good advice. Re: The Art of War[3],
wikipedia says:

> There are business books applying its lessons to office politics and
> corporate strategy. Many Japanese companies make the book required reading
> for their key executives. The book is also popular among Western business
> management, who have turned to it for inspiration and advice on how to
> succeed in competitive business situations. It has also been applied to the
> field of education.

Here's where I start talking out of my ass: If you think about it, aren't
generals the original managers? They had to coordinate the actions of
thousands of people. Sometimes hundreds of thousands. They have to delegate to
their subordinates because it'd be impossible to micromanage everything. Also,
I think it's more than a coincidence that the quote seemed to fit so well.
Outsourcing is hiring mercenaries.

[1]: [http://www.amazon.com/Book-Five-Rings-Miyamoto-
Musashi/dp/15...](http://www.amazon.com/Book-Five-Rings-Miyamoto-
Musashi/dp/1590302486/ref=sr_sp-
atf_title_1_1?ie=UTF8&qid=1381173518&sr=8-1&keywords=the+book+of+5+rings) [2]:
[http://www.amazon.com/The-Art-War-Liddell-
Hart/dp/0195014766...](http://www.amazon.com/The-Art-War-Liddell-
Hart/dp/0195014766/ref=sr_sp-
atf_title_1_1?ie=UTF8&qid=1381173657&sr=8-1&keywords=the+art+of+war) [3]:
[http://en.wikipedia.org/wiki/The_Art_of_War#Application_outs...](http://en.wikipedia.org/wiki/The_Art_of_War#Application_outside_the_military)

~~~
pjungwir
For more "generalship as management," you can read another classic, Caesar's
Gallic War. One caveat: a lot of modern Classics scholarship would rather take
this less as an example of great generalship and more as an example of great
propaganda. But either way it's a treatise on how to command, containing if
not quite the unvarnished truth, at least Caesar's opinions of what good
management/generalship ought to look like, as well as several anti-models.

------
notacoward
The "bad Indian programmer" meme seems to have less to do with India itself
than with India as a place where lots of people go for cheap outsourcing. It's
the cheap outsourcing part that's the problem. I've been fortunate to work
with some very good Indian programmers, most of whom were first part of an
independent company with their own products and then were colleagues within my
own company when we bought them out. I've also worked with some really crappy
Indian programmers, and some really crappy Russian ones, and even some really
crappy American ones, who all worked at "body shops" offering the lowest bids
for the kinds of programming everybody wants to outsource. There's a pattern,
and it's loosely related to nationality, but it's not as simple as programmers
from one country being better than programmers from another.

Who remembers when "made in Japan" meant "cheap plastic crap"? As their
manufacturing industry matured, they went from that to leading the world in
quality and precision. Similarly, India might once have been the place one
went for cheap programmers. As their IT industry matures, it will become more
and more a place where one can go for _good_ programmers. Some of this is
already happening, as outsourcing to India becomes more expensive and people
turn to cheaper alternatives. Welcome to the global economy.

~~~
astrodust
There's a lot of this in play, there are truly terrible programmers all over
the world, but most of those in the US aren't doing freelance contract work,
they're buried in some giant organization turning out awful code nobody will
ever see.

Still, there is a certain change in flavor on places like Stack Overflow when
India wakes up and starts asking questions. Maybe this isn't a sign of "bad
programmers" so much as it's a sign that there's a _lot_ of people in India
that speak English and are trying to learn how to program better. There could
be just as many in China or even Brazil but there they prefer to ask questions
in their native language instead.

~~~
piyush_soni
Yes, on the whole, we somehow learn broken English pretty soon to ask
questions on the internet :) (we take ages to learn _good_ English). I guess
everything is governed by survival instincts when it comes to such a big
population.

One reason is also the outdated Computer Science courses in India that teach
wrong things to start with (The 90's Turbo C++ anyone? - That's the defacto
"C++" that an average Indian is taught in schools even today). Then as you
said, so many outsourcing companies want manpower (not talent) - and they
(Indians) start to find it as one lucrative job, mostly not out of interest,
but to earn a bread and butter for their families.

------
smoyer
"They're not stupid ... they're demotivated"

Maybe ... or their incentives aren't aligned with yours? We used several
different Indian out-sourcing shops at various points and if there was the
slightest ambiguity in a specification (and how do you write one without any
ambiguities?), they would (purposely?) do what you'd least expect. As a
contract programming shop, this led to the most billable hours.

We later purchased an a company that included an in-house division in
Bangalore. These programmers were therefore employees of the same company that
I was and therefore motivated by the same factors (successful projects meant
more work ... unsuccessful projects meant looking for another job). In
general, the in-house Indian programmers were competent other than slightly
inflated grades (a lead JavaEE programmer with 2 years of experience?).

So from my experience, there are some brilliant Indian programmers, and some
worthless ones, with the vast majority falling in the middle ... just like
here.

P.S. I'm in the US, but I imagine that "here" is valid for many values.

~~~
alephnil
I have some of the same experience. If you outsource to a consultancy company,
things are less likely to go well. In my current job we have an office in the
area, and some of those programmers are excellent. It is harder to find good
people though. You really need the fizzbuzz test there, but good people
exists.

In a previous job I had some coworkers that had previously developed a system
for a major European telecommunication company. The project was now mainly in
the maintenance mode, and they (the telecommunication company) decided to move
the maintenance to an Indian consultancy company, and my coworkers would only
help with the transition. The result was that my coworkers got more work to do
than they had before the transition, and this never ended. The new developers
was simply unable to get anything working. Part of the problem was that there
was high turnover and many inexperience developers, but not only.

In the end the project was moved to the telecommunication company's own
employees in China. That actually worked really well.

This is only a few cases, but it is my experience that having an office in
India often works well, but outsourcing to a consulting company is usually a
bad idea.

~~~
stephenhuey
A few years ago, we saw the same problems with turnover and lack of experience
and hesitancy to say no or admit it when they didn't understand the
requirements. It was a small consulting company and our boss wanted to go with
them for the cheap rates. I've worked with many great Indian programmers here,
and I imagine most of the really good ones in India are much more gainfully
employed than those in the small mediocre consulting company we hired. I think
the outsourcing boom and bust a decade ago could be largely blamed on
companies chasing after a gold rush of cheap talent, assuming there was a
virtually endless supply thanks to the large population. In trying to get
something for almost nothing, they forgot all sorts of other costs.

------
kemiller
So I've worked with a couple Indian outsourcing firms. The best we ever
managed was to break even in terms of quality product per dollar. I visited
there a couple times, and I can completely corroborate the poor working
conditions. Grinding pollution, horrible traffic, crushing heat, often without
any AC, frequent power outages, substandard equipment. The trouble is,
regardless of the reason, the net quality tends to suffer. There are a few
other factors that we would never have predicted:

* Working at a small firm is very low prestige, unlike here. You want to have a big name you can tell to your prospective father-in-law. There are of course big, reputable outsourcing firms there, but they tend to either be hiring mills with low quality, or expensive enough to negate any labor arbitrage advantages.

* The very best and the brightest (and there are MANY MANY of those) tend to go in-house at Google, etc. rather than do the outsourcing-for-hire shops. Or, frankly, they've moved here.

* As with any consulting, their interests and yours are not always in alignment.

* In western nations, there are many routes to success and prestige. Business, professions, even the arts. In India, for the time being, there is generally only one that matters, if you're not already upper class: technology. So that means everyone tries to do it whether they're well-suited or not. So there is a HUGE pool of labor, throngs of people show up in person for certain job openings, but a large percentage of them literally cannot do fizzbuzz, yet lots of those will get some kind of job or other.

* It is often really difficult to get a "no" or any kind of bad news in time to compensate for it.

I'm just scratching the surface. It's a huge, complicated, amazing country,
and the potential remains enormous, but there are a TON of very real cultural
problems facing a western firm looking to partner with an Indian firm.

EDIT: This was the in the context of a smallish startup. A bigger firm looking
to make a permanent presence will have more resources and more leverage to
compensate for some of this, and will also, if they have an international
brand, attract much more capable people.

~~~
EpicEng
* It is often really difficult to get a "no" or any kind of bad news in time to compensate for it.

This is one of the larger problems I have encountered. It's a cultural issue.
They (Indians) view "no" or "we have to lengthen the schedule" as verboten.
So, you will always get a "yes"... and, often times, crappy software.

~~~
jmagoon
This was my experience when traveling in India: "Is this train XXXX going to
XXXX?" "Yes."

Four hours later--no, definitely not the right train.

~~~
crucialfelix
This is a well known cultural quirk. Never ask a yes no question. The answer
will always be yes. Yes is more polite. If the answer is unknown then yes is
always the correct answer.

------
mrng
> So you want to hire somebody for less than ~ $20 per hour.

> And you expect the quality of $200 per hour experienced developer.

> Stop having crazy expectations.

Enough said.

~~~
rb2k_
That being said, cultures on the asian subcontinent seem to have a certain way
of avoiding the word "no".

So while they will charge the $20 per hour, they will assure you that their
work will be completely up to par with the $200 per hour work of experienced
developers. Usually there will also be a problem with quality/time estimation.
I've seen a few "will this be done in two weeks?" questions result in a "Yes,
certainly answer" although no engineer I knew would have said this was
possible. At least that was my experience in a few larger projects that had to
outsource some of the programming.

I know that agencies in the US/EU tend to market themselves pretty
aggressively too, but not QUITE as aggressively :)

~~~
DjangoReinhardt
Yeah, I've been on the other side of this, working in the trenches. Granted, I
wasn't a developer but the situation wasn't any different. The problem is no
one asks us how much time it will take.

As an (exaggerated) example, the conversation usually goes like this:

Project Manager: Guys, we just landed a huge project from Acme Inc. Guess
what, you guys are gonna be paid a bonus this month!! YAY!

Developer: Great!

PM: There's a tiny caveat though: The bonus was promised only if we had
delivered it yesterday.

D: FML.

PM: But don't worry, we still have a week to finish it!

D: WTF? But this will take at least three weeks!

PM: Ah, don't worry. I know you can do it in one week. In fact, I am so sure,
I promised them you would! Isn't that great?

D: Well, what if I can't?

PM: Oh well, we won't get paid and it will certainly reflect in your appraisal
and you won't get that promotion that you have been due for the last three
years. But I'm sure you won't let that happen, amirite?

D: FML.

------
ishansharma
I'm an engineering student (IT) and I think there are two problems that cause
this:

First, as the article says, people lack motivation.

In India, the decision of choosing IT/CS does not come from children, it is
often influenced by family or friends. Tell anyone that this field pays well
and they will be happy to join it without second thoughts. This happens with
majority of people.

Second is education system. Article clearly states:

    
    
      I don't blame the quality of education here. That's a common
      excuse. If a person is motivated, he'll surpass that
      constraint.
    

Well, motivation is one thing but when you have non-programmers teaching
programming courses, it becomes hard to surpass that constraint. Last
semester, we were asked to make a project in a class. I was really motivated
as I had a side project idea (a personal attendance tracker) and wanted to do
it. When I presented it to teacher, the response was this:

"Why are you building a 2 page project? Others are making big projects, expand
it and make something big!"

I tried to explain that it would take time to nail down UI and design and it
was good enough for a single person project. But teacher just didn't
understand. And in the end, I ended up making a "Learning Management System"
using WordPress.

And in final viva, the questions asked were these:

"What is SSL?" "What does "collapse" button do?" (This is a standard WordPress
button, just hides the menu)

Since number of students was large, no time was given to explain/present it!
This system of having such people as teachers kills any motivation one has. I
can't say about others but for me, spending 6 hours in an environment like
this and then staying motivated about programming is very very hard!

Add to this that you need to be an expert in Physics, Chemistry and Maths to
get to the top institutes (IIT, NIT) even if you want CSE/IT course. This
filters majority of people with interest in programming. I have been
programming since 9th standard but I wasn't good in Chemistry and Physics, so
I couldn't go to a good institute.

Quality of education is a big factor. The education system is blurting out
engineers who are experts in cramming and lack any interest in programming.

Edit: Spelling and grammar.

~~~
anaphor
No offence but if you have to use PHP or Wordpress for a university level
engineering course then that is a major indictment of the school. You could
get a better education from MIT OCW and Coursera. Also I don't see a problem
with requiring an interest/aptitude in math to get into a CS program since CS
is applied mathematical logic, although physics and chemistry are less
relevant unless you want to work with applied scientists.

~~~
ishansharma
Can you explain a bit about how using PHP is an indictment of the school?

Imagine an environment where PHP is considered cutting edge and where 90% of
students (and 80% teachers) don't know even C properly. That is the
environment we have! PHP is something that is completely unknown to teachers
and considered cutting edge.

And I don't have any issues with Math. Mathematical logic is indeed required.
BUT Physics and Chemistry are totally irrelevant as requirements!
Unfortunately, they have 66% weight!

~~~
anaphor
Using PHP for anything is not an indictment in my opinion, but making it the
focus of an _engineering class_ is, imo. My point of view is that formal
education should be for things you would have a difficult time learning on
your own, and I don't see writing a Wordpress app as something you can't learn
on your own. The only reason to take such a class is to boost your average,
which is fine, but you're not expanding your way of thinking at all.

Anyway I completely agree that physics and chemistry should not be heavy
requirements like that.

------
adambard
My personal experience in this discussion is as a freelance developer living
in Canada. Being hired to clean up/review code written by a $10/hr shop in
India makes up a sizeable segment of freelance work available in North
America.

I saw mostly PHP written by these outsourced developers, and what I saw is
mostly what you would see from any underpaid/undermotivated developer (who
bills by the hour). The most illustrative habit I found was the tendency for
what I call "Manual loop unrolling"; that is, writing by hand in the code
something that I wouldn't expect any self-respecting programmer to fail to
automate (or just use the language's built-in tools!):

    
    
        $months = array(1 => "January", 2 => "February", 3 => "March"...);
        $days = array(1 => "1", 2 => "2", ...);
    

The impression I get from reading accounts (disclaimer: this is where my words
cease to have any authority) is that in India, "software developer" as a
career is a household name; it carries at least some status and pays
relatively well, and it seems to be a popular choice.

I'm not sure how long this will be true with the current "learn to code"
movement, but in North America many people who are currently software
developers found themselves here by accident; they discovered something cool
they could do with a computer, and then discovered that people would pay them
to do it.

~~~
anuragramdasan
>> The impression I get from reading accounts (disclaimer: this is where my
words cease to have any authority) is that in India, "software developer" as a
career is a household name; it carries at least some status and pays
relatively well, and it seems to be a popular choice.

well, you are somewhat close to the reality there. Software engineering is a
traditionally well paying profession. This creates a general tendency for
students to opt for it. Before you know, there are too many in that profession
already and things start getting messed up. We are in that messed up phase
now.

------
badman_ting
I worked for a company whose flagship product was a slapdash VB6 app that was
first offshored to India, then brought back in-house in an attempt to fix the
horrific mess. The Indian devs did a terrible job, but there is no reason to
think that was their fault. I place the blame with the people who decided to
execute so terribly. I seriously doubt they did their due diligence about who
they were offshoring to, et cetera.

I understand why the author gets offended, because the whole "crappy Indian
programmers" thing is really about self-superiority and xenophobia, not
technical prowess. People see the crappy results and think it's because of
India, since they're not willing to dig any further.

At this point in my career I've worked with talented folks from everywhere,
including the subcontinent. But I won't lie, hearing that a project was
offshored to India will make me wince, because offshoring is often the result
of a broken business run by people who don't really know what they're doing.
The crappy results are just a symptom of that.

------
arunitc
I'm a programmer from India. Here its more of quantity vs quality. We have a
ton of programmers, but really small number of good ones. Most of us come into
this field not for the love of programming, but for an "onsite opportunity".

~~~
cruise02
I suspect that if the same proportion of the U.S. population decided to become
programmers, we'd have the same problem here. People who wouldn't make good
programmers have more opportunities in the U.S. to go do something else.

------
jarrett
As the author hints, there's nothing about living in India or being Indian
that makes you a bad programmer. (Which I would hope would be obvious, because
believing otherwise would amount to racism.)

The problem is an economy that pushes too many people, including many of the
wrong people, into a job that is extremely technical and geeky. Coding is an
often thankless and unsexy job. It involves many hours wrestling with
compilers and obscure error messages, memorizing arcane rules of your
programming environment, and conducting long and confusing email discussions
with clients. If you're not one of the warped individuals who loves this kind
of stuff, you'll have a hard time finding the motivation to get good at
coding.

So when someone takes up coding as nothing more than a day job, the odds are
against that person becoming good at it. I've heard from a lot of Indians
(including the author of this article) that young people often fall into this
trap. The same thing happens in every country, but it seems that economic
conditions in India encourage it to happen more there.

For my part, I've met _plenty_ of Americans who fit this profile--bad
programmers, not interested in the field, just trying to make a buck. The
lesson is: If you're looking for coding talent, it doesn't matter what country
you're looking in. You must screen rigorously.

------
unlimit
I agree with the author on every point he has made. But I would like to add
one more to his list, the good ones eventually become demotivated because
nobody gives a shit about good code in these outsourcing shops. Add to it the
bad working conditions in some places, I work on a remote desktop/vmware
desktop, the servers being in USA, it is so slow, so slow that I get 4 hours
of productive work out of 8 hours that is billed. And because the estimation
will not change, I start taking shortcuts. Don't blame me, I do what I have
do.

And writing good quality code will not give you good rating, will not give you
promotions. These firms make profit when they have more headcount. A good
experienced coder becomes a liability because he/she has to be paid more and
therefore the firm makes less money off him/her. To make profit these firms
need more fresh out of college kids, who can be paid peanuts to make more
profit.

I love programming, so I keep reading and updating my skills at home. I build
mobile apps, explore new tech at home in hope that someday I will get a call
from a good firm somewhere or one of my side projects becomes a hit and I can
quit. Till that happens I will just bite the bullet and continue to go to
office.

EDIT: Grammar and spelling.

~~~
MarkMc
> in hope that someday I will get a call from a good firm

Tip: Update your Hacker News public profile to tell us a little about yourself
and describe a few of your most enjoyable programming projects (and link to
them if open-source).

------
nikhizzle
I have what is probably a unique view here.

I am a US educated Indian programmer who finished half a PhD here and got a
master's degree in CS along the way at a top school. Since then I've worked at
fb, apple, and yahoo.

But I have also spent some time earlier in life taking a course at NIIT, which
was at that time the most common vocational school for programming in India. I
say vocational because you are only taught the bare minimum you need to build
an app or a DB etc. No fundamentals, and no ideas on why things work they way
they do.

They take anyone who can pay as a student.

A large portion of India's IT workers have gone through such courses and
learned the basics of one language and a few web queries. They have no
motivation in the area (as the OP says), and just want to make a living.

So what you get is many people with no passion and inadequate training. They
definitely serve a purpose, but it is very unreasonable to expect them to
write clean code with a salient architecture to solve difficult problems.

There are of course the exceptions who go through NIIT and then teach
themselves everything else they can, but these are the exception.

------
dutchbrit
"So you want to hire somebody for less than ~ $20 per hour. And you expect the
quality of $200 per hour experienced developer.

Stop having crazy expectations."

I'm sorry, but I have also had my fair share of bad Indian programmers. No
actual good ones, but then again, I stopped trying after 8 or so. 200 dollars
is worth a lot more in India than, let's say, San Francisco. Living expenses
are a lot lower over there. I have however experienced geest Ukrainian,
Russian and Romanian programmers.

I don't want to be ignorant, but Indians I've experienced also have a
different concept of deadlines (they never met them, by a long shot).

I think all of the good Indians probably get awesome job opportunities outside
of India, which would make a lot of sense, causing some of these problems. And
as the Author stated, IT is one of the better jobs, there's a huge demand. But
this indeed causes people to choose IT for opportunities over something that
they'd enjoy more.

------
neals
Have been paying an Indian Programmer $35 an hour. Writes great C++ code,
couldn't be more happy. We have been raising his salary every now and then (we
started at $20 and we can raise it to $50 over time).

There's two sides of this: If you don't get paid a lot, you probably are
demotivated and yes, you can choose to deliver below average quality. However,
that way, it is very unlikely that you will every get paid more or get better
projects. Hence: You're stuck at where you are.

If you however sacrifice yourself a little bit, deliver great code, put in the
extra effort, you probably negotiate your way up.

At least, that's how I got from an unexpierenced webdeveloper to owning a
business and having a great staff <3.

~~~
pessimizer
If you're talking about an Indian who lives in India, you probably got a great
one because you are paying an elite rate. If you're talking about a local
Indian, you're talking about something different than the subject of the OP.

Finding a good C++ programmer for 70K a year might be worth sharing tips on,
though.

~~~
neals
He lives in India and this rate is pretty low for what we are getting, in my
expierence. Can't really go below $20.00 and not just get some kid with a
laptop, right?

------
gesman
When you hire cheap indian/pakistani programmer through some * lance *.com
site - without knowing it, in many cases you'll be paying rock bottom rate for
middleman who pays less than half of it to actual programmer.

Welcome to the cost "efficient" world of outsourcing!

[http://toprate.org/FILES/programmers.jpg](http://toprate.org/FILES/programmers.jpg)

------
drunkpotato
Interesting post, and I think very true. My takeaway: If you want quality
{employees,contractors}, you have to pay them well. Other takeaway: Blaming
others for failure is easier than introspection.

------
bliti
I guess the author has not worked with programmers from other countries. There
are bad programmers everywhere. I've had the opportunity to work with
programmers from all over the world, and the worst have been from the USA.
Yes, American (read white). For example, the programmer who had worked in NASA
who did not understand the concept of SQL injection. Yet wrote a whole system
full of such security holes. Or the programmer who used to work for a big name
startup. Who thought that python had to be written as if it were Java. Maybe
the guy who leads a software team for a billion dollar mega corp, but does not
care about source control (no GIT there).

On the other hand, I've met very smart Indian programmers. Guys who write
awesome stuff and get paid well (and also get bought out). And smart Russians,
Italians, English, Japanese, etc. There are good and bad programmers from
every country in the world. Pointing the finger at India doesn't really do
anything for anybody. The reason this argument exists is due to how big corps
fell for the off-shore dream. They went out and off shored their software to
places that lacked properly prepared employees. It was done in India, but it
was also done in other places of the world. You mostly hear about India,
because there are a lot of Indians in tech (which is a good thing).

Rather than point fingers at other ethnic groups, you should try and walk in
their shoes a bit. Not everyone is born in a place full of opportunity. A lot
of people out there have to do whatever they have to do in order to acquire a
better life.

------
lmm
So I'm happy to agree that outsourcing to bad programmers is done by bad
managers. That doesn't mean they're not still bad programmers.

And, y'know, even the best organizations make mistakes sometimes. If a company
tried outsourcing to India once, for good reasons, discovered the results were
bad and has sworn off ever doing it again, it could be there's nothing wrong
with the company - it just made a mistake. Less than that in fact - it did a
worthwhile experiment and got a negative result.

------
wslh
Well, if you look at the Google top management page you can count more Indians
than Americans. Probably, just an speculation, there are more ways to be a
developer in India, more people, and that produces a wide range of skill
levels.

~~~
gaius
The top people in any field in any country are not working for bargain-
basement outsourcing companies. India or America, is the same.

~~~
wslh
I know exceptions. For example the Argentinian outsourcing company Globant had
an excellent staff and they have low wages. Obviously the employees move to
other companies once new opportunities arises.

------
bencollier49
When I've seen bad jobs done by Indian companies, it has generally been as a
result of poor project management from the client. Given the right milestones,
targets and contractual obligations, and no goalpost-shifting, the results get
better.

That said, I heard tell of a piece of code where "if n < 20" was implemented
as a series of 20 "if n = 0", "if n = 1" conditionals, which beggars belief.

------
jmspring
One consistent thing I've seen on the outsourcing front is there are those in
the management chain (and thus the ones who sign off on outsourcing) that will
insist on setting up some form of outsourcing -- first just the non-business
critical stuff; a little later on more and more will be outsourced. This can
be fine and a good way to grow.

However, many of the times I have encountered this there was a desire to do
more outsourcing where the quality of prior work didn't merit the expansion.
More often than not, the one insisting on the outsourcing had some sort of
personal relationship with the group the outsourced work was going to.

This happened with a couple of different regions/nationalities.

Why relevant to this article? It's not just about pay, but specifically with
outsourcing, you need to look at whether or not the decision makers are
listening to feedback about the quality of work produced or insisting on
steaming ahead regardless.

------
bjoe_lewis
Meanwhile in India,

\+ A guy who thinks programming is about taking a course and passing a
certification exam, gets hired in iGate as a software engineer along with a
bunch of other mechanical engineers

\+ An OS class staff thinks real world softwares are created by drawing logic
in Rational Rose and clicking 'generate code' button.

\+ A guy who's good in cracking maths puzzles because college told them to get
good at it, for cracking interviews, gets placement orders from five different
software companies.

\+ A guy who convinces his staff to build a cross platform app development
framework for his final year project gets put off, because the staff wants a
'big' multipage project with a close button on the right top.

\+ And finally a bunch of hackers, give shit about the rest of the country and
is either trying or helping to build the next big thing in coffee shops and
tech startups.

~~~
middus
What is a non-relational object-relational mapping framework?

~~~
bjoe_lewis
Thanks, for pointing out. Updated with a more sane bullet.

------
mguterl
Unfortunately, paying someone well does not necessarily mean you're going to
end up quality either.

~~~
danmaz74
No, but if someone accepts to be paid very little, you can be almost sure he's
not one of the best.

~~~
DjangoReinhardt
Allow me to disagree with you here.

Good people, who are starting out, often undercut their rates to ensure they
stay competitive with the plethora of options available to the buyer in the
market.

Suppose, I value my work at $30 an hour and I don't have too many projects to
show for it but someone else is offering the same skills at $15 an hour but
they have a whole portfolio of (somewhat-)shoddily done jobs, 99 times out of
hundred, I will lose my contract to the $15-an-hour competitor.

My only option: Quote $15 or less an hour and build up my portfolio.
Unfortunately, once you 'sell' yourself for $15 an hour, no one will want to
pay you more than that for subsequent projects. Sadly, what no one understands
is that $15 an hour only buys you my time; it doesn't buy you my motivation to
apply myself to the job. :(

~~~
adambard
> Unfortunately, once you 'sell' yourself for $15 an hour, no one will want to
> pay you more than that for subsequent projects.

In my experience, this isn't true. I only freelance part-time now, but I've
managed to raise my rate by $10/hr for each separate client I've landed in the
past 3 years. Granted, I haven't raised my rates on any of my long-term
clients in that time. But the evidence I have (and what I've read) suggests
that above a certain price point, many clients have a much higher ceiling for
per-hour rates than you'd expect, and that the clients who are strongly price-
sensitive are often the ones that you'd as soon not take on.

------
VinzO
Over the years, I had several bad experiences with outsourcing to big
companies in India. But recently I had a discussion with an Indian colleague.
She used to work for a company for which my previous company outsourced to.
She told me most of workers there are just out of school or the rest are bad
programmers. Good programmers find quickly a job in better paid positions in
other companies.

It seems the main issue is deciders in the west are happy to find cheap
outsourcing companies in India. Their pick goes to the company with the lowest
hourly rate. What they don't realize is that the good programmers move very
fast in better paid position elsewhere... letting you work with the less
qualified people.

------
qeorge
Its a selection bias. Do the best programmers in any country accept low paying
outsourced work with crazy demands? Of course not!

There are plenty of terrible developers available for cheap right here in the
USA too.

You get what you pay for.

------
ateevchopra
As mentioned, the main reason for this is that for an average Indian, software
industry seems job promising. So they take it as their course in colleges. But
the problem arises when after 2 or 3 years in college they realize their
mistake. But there is no turning back. So either they opt to be in IT
industry, or they take management path.

So really the problem is motivation. They opt IT because of job security, and
not interest. When I had to choose between different streams of engineering,
at that time recession was going on. Everybody suggested me to take anything
but IT. They said IT will fall so don't take it. But it was my interest and
passion for computers that I chose Computer Science. And after 4 years, I am
more than happy with my decision and looking for a job at a place with more
passionate people like me.

I have many friends who just took IT but aren't happy with it. So after 4
years, they are looking for other fields like management and army. So as you
can see, the problem is motivation. they are not motivated towards a
particular interest. They had just followed the herd.

I'm gonna quote steve here :

"You've got to find what you love. And that is as true for your work as it is
for your lovers. Your work is going to fill a large part of your life, and the
only way to be truly satisfied is to do what you believe is great work. And
the only way to do great work is to love what you do. If you haven't found it
yet, keep looking. Don't settle. As with all matters of the heart, you'll know
when you find it. And, like any great relationship, it just gets better and
better as the years roll on. So keep looking until you find it. Don't
settle..."

------
at-fates-hands
It's also interesting to note you can run into pure cultural issues as well.

In one situation, we had one incredible "junior" Indian programmer who was
working under another Indian senior developer. The senior developer did not
have nearly the experience or expertise the younger, "junior" developer had.

Simply because of cultural norms surrounding age and seniority in Indian
cultural, the more senior developer took pride in pushing the younger more
experienced developer around. Telling him he didn't know what he was doing,
telling him his code was all wrong, and generally threatening him with firing
if he didn't follow what he was doing. This lead to many a heated argument and
the younger developer having to let other American counterparts argue his case
for him.

It made for a crazy environment. My manager confided in my that it was like
living in high school all over again where the senior QB was getting pushed by
the younger freshman QB who was bucking for his starting spot. Eventually the
senior developer was let go and things got back to normal, but it showed even
cultural norms can interfere with the quality of work getting done.

~~~
enry_straker
Isn't the sample size too small for such generalizations?

The so-called "senior" guy just comes across as a bully. Nothing more. Nothing
less.

It also indicates that the indian side did not have a good filtering system in
place to keep such folks out.

It also shows that the project management was not quick to spot this trouble
and try to correct the senior developer's behavioral issues.

But drawing conclusions about the culture of a billion plus people based on
that seems a bit extreme.

~~~
avenger123
It's not so much a generalization but somewhat of a reality of the culture.
There is definitely the notion of where you are on the hierarchy ladder in
India. Being of a lower or higher caste does change the dynamics of the work
environment. Of course, it can be argued that its better now but the caste
system is still a major part of Indian culture. Aside from the caste system,
there is a large 'follow the leader' mentality.

Also, respect for your supervisor means doing what you are told and not
speaking out (even if you should be).

Take a look around a typical company that may have a lot of workers from
India. It's very likely that most will be in non-leadership roles and are are
very good followers.

------
qdog
The note about inflated titles is the biggest real difference I see. If you
hired a bunch of brand new US/EU recruits and stuck them in an office and just
said "get it done" you'd probably end up with the same amount of work/issues.

Actually, now that I think about it, a friend of mine worked at Andersen
Consulting, he was one of the few from CS, most were Business people who had
majored in whatever Business Computing program their school offered. Abyssmal
would be a good word for the quality of work done there (this was a decade
ago, may have changed). It was hire new grads at 40k, bill them out at
$300/hr. Other than the scale of money, I doubt it was much different than
what you'd find in most Indian consulting firms.

I've worked with many different Indians, most were not incompetent. The
biggest problem we seem to have is hiring someone decent, new recruits are
easy to come by, but retention of quality isn't working so well. I expect once
wages are more even on a global level things will change, but that's still a
few years away.

------
DjangoReinhardt
> So you want to hire somebody for less than ~ $20 per hour.

> And you expect the quality of $200 per hour experienced developer.

> Stop having crazy expectations.

Replace the word developer with its equivalent in any 'talent'-related job and
it still applies, e.g. Radio, Voiceovers, Writing, Editing, to mention a few.

If you can't value my time, I won't find enough motivation to value yours. You
pay peanuts, you get monkeys. :/

------
haskerl
To put in another perspective, I am an Indian programmer quite proficient in
Haskell and Erlang (relatively rare skills I hear) with lots of real world
experience. And the rates I get offered by most US companies are in the
vicinity of 25 USD/hour. I would not take up such low paid assignments at all
but many would, and turn in shabby work. You get what you pay for.

~~~
_random_
Well done! Rare skills deserve rare money.

------
gexla
I wonder how much of the bad Indian programmer experience could just be bad
management. How many of these places just fill up an office with warm bodies
and throw everything they can bring in the door to anyone regardless of
expertise?

If you go look through a site like Elance you will see some of these places
just applying to everything. Some of the worst jobs I have see were largely
because the developers put on the job didn't know the platform, so they had to
spend a lot of time doing research and produced something which looked like as
ugly as anyone's first crack at something.

Developers who charge relatively high rates (solo developers, not full service
agencies) are most likely working a specific niche or platform which they are
expert at. With huge Indian shop which takes on everything and claims
expertise in everything, who knows what you are going to get.

And do these places ever kick something back? Do they ever say no? How much of
a pain do you have to be to get an Indian dev shop to fire you as a client?

------
xradionut
I'm not as experienced with outsourced programmers, but I've met a large gamut
of technical people, both good and bad, native and not over two decades in the
field. The best are the best, doesn't matter what the background.

The reason that Indians get such a bad rap in the States is due to the large
numbers and the cultural differences. Behavior that is required/acceptable to
survive/succeed in India and much of Asia, is regarded as fraud in the States.
Cheating and experience inflation on resumes is so bad, that my colleagues
that conduct interviews, state that 80-90 percent of resumes have at least one
or more blatantly false claims (This is for all candidates.)

The collective experience of non-Indians in the field is one of doubt and
suspicion in many cases. It's so bad that qualified Indians face more barriers
and mistrust. And that's sad. No individual should be judged by the actions of
others, but it happens. (I know people make assumptions about me too...)

------
not_bad_Indian
So you want to hire somebody for less than ~ $20 per hour. And you expect the
quality of $200 per hour experienced developer.

Why do you forget that the the person you hire gets around 10$ to 40$ PER DAY.

The #$ are being consumed in between by the contract making companies(aka -
the outsourcing companies) .

Agreed that you hire at $20 per hour , and $10 per hour is quite good money in
Indian Conditions , but the engineer gets $10 per day or even less.

The rest of the money is consumed by the CEO and the greedy non Engineers in
the company.

Would that not demotivate anyone?

You really want an engineer to work out legacy code at 15$ PER DAY??

It's not about The American and The Indian -

It's about non technical management of both companies - The American and
Indian.

The American 's company management wants to save cost and The Indian
Outsourcing Company wants to milk out the cost.

Who suffers?

It's the technical people who suffer - on both sides.

To all American Companies - Please stop outsourcing via Some Other body shop
like TCS,WIPRO,INFOSYS -

Open up your own offices in India and hire people. You would see the
difference in motivation

------
ivanhoe
Well, we all are a bit xenophobic in our perception of the world around us,
there is always a notion of "us" and "them" hardcoded into our brains. And
when one of "us" is bad we think "this dude sucks" because we think of him/her
as a person. When dealing with a foreigner, and specially in an online, very
non-personal way through a middle-man, for us that person is always just one
of "them". If he does a bad job we will almost always jump to generalize the
situation and get a "these guys are stupid" conclusion (works the same way
with the positive experiences too). You never do that with "us", because you
know it's not true, you know there is a lot of brilliant people around you,
but you don't know "them" good enough to be able to think outside the black &
white picture of your very limited experience.

------
mcv
If someone outsources a job to another company, then surely it's that other
company's job to keep their programmers motivated, right? If they can't do
that, then that's a reason not to outsource to that company.

The article sounds a bit like: don't blame Indian programmers for being bad,
it's the client's fault for outsourcing to them.

Personally I've worked with a few excellent Indian programmers. They worked
on-site in Amsterdam. I later discovered that there was also a 20-man team in
India working on the same project. I never saw anything productive come from
them (the only time I even noticed them, was when someone checked their "My
Documents" folder into SVN).

The ones working on-site were clearly the cream of the crop, and I wouldn't
mind working with them again, especially the one I keep running into at
various open source meetups; he's clearly dedicated to his work.

------
rjuyal
Totally agree with the post. I see lots of software professional in this field
who really don't want to code.

------
enry_straker
How many organizations that outsource

a) Send senior management to personally oversee the outsourced work in india (
at least initially )?

b) Send detailed SRS (Software Requirement Specification) to the outsourced
team?

c) Personally interview and hire the programmers who will be working on their
projects?

d) Personally perform a skills audit and then try to correct any deficiencies
noticed through training for the programmers?

e) perform a thorough software estimation exercise based on the previous work
history of the group they plan to work with?

The reason i raise the following questions is that i notice a tendency among
many to stereotype the indian programmer for various reasons, but the reason
for most software failures is probably a combination of bad management, poor
tracking, bad estimation practises, lack of domain expertise among
programmers, and the need to save a quick buck by the folks at cxo levels.

Just my two cents

------
startupstella
Stella from matchist here. Our whole business is based on the fact that
outsourcing development overseas leads to a bad experience (not all the time,
but statistically). There are a lot of negatives to outsourcing (cultural
issues, time zone differences) that already make a collaborative process like
development even more challenging. There are ways to mitigate the negative
effects of outsourcing, but they then negate the whole reason to outsource:
labor arbitrage. If it's cheaper to hire local, there are good reasons to hire
local (domestically). I actually just wrote a post about this on the
KissMetrics blog: [http://blog.kissmetrics.com/in-house-or-
outsource/](http://blog.kissmetrics.com/in-house-or-outsource/)

------
legedemon
I think you have covered most of the factors already but I wanted to recount
my experience here to give everyone an idea of the kind of Indian programmers
who get hired.

I used to work for a MNC who had an office in Bangalore and had good relations
with most of the senior staff. After a while I joined a start-up (which kind
of became successful) and my salary went high pretty quickly. Fast forward 5
years - I get a call from the GM of my business unit (who had become the VP by
then) who asked me to join the company back and offered me 20Lpa(Lakhs per
annum) when I was already working for 24Lpa. He just couldn't reconcile with
the fact that my salary had become more than the people who went for on-site
visits by staying in the same company. I had to politely refuse.

------
fareesh
Hello first world HN readers! I am the tech lead at a development shop in
Mumbai, India, that I started with my childhood friends two years ago. The
generalizations that exist about software development in my country are quite
valid, and are one of the main reasons we sought to get into this business in
the first place - to provide value that is otherwise scarce. If you or your
company is looking to outsource to India, please feel free to get in touch
with me, I'm confident I will be able to objectively assuage any reservations
that you may have about the work we do. We are reasonably expensive compared
to other developers here, but our work generally speaks well for itself in
comparison.

------
rgovind
My heuristic for choosing Inidan programmers (I am an Indian) 1) Choose from
top colleges. Apart from the well know ones, each state in India has a
something called NITs. Apart from this, each state has one "top" college.
Then, each major metro has 3-4 colleges which produce good programmers. I
generally stick to these coleges. It comes to about 50-60 colleges, so not a
bad number

2) Look at good 10th class marks...I find that it is a good indicator compared
to engineering marks.

3) Look at quality of english in terms of grammar. Almost all of us were
educated in English medium. If they didn't pick up good grammar for whatever
reason, you know they are bad.

Again, this is a heuristic

~~~
DjangoReinhardt
Interesting process, especially the emphasis on the 10th class marks - I think
I know where you are coming from.

However, I'd disagree with you about the top colleges criterion: top colleges
don't necessarily produce the best programmers. There can still be mediocre
programmers that graduate out of top colleges, right?

Also, please don't discount someone because they have bad English skills. I
know a few really good programmers (educated in good English-medium schools)
who still can't express themselves in grammatically-perfect English but their
knowledge of programming can blow you away.

That said, in the current job market, any opportunity is welcome. The onus is
certainly upon the job-seeker to make sure they make the most of the
opportunity you give them and one of those is definitely about how they
present themselves to you.

~~~
rgovind
>However, I'd disagree with you about the top colleges criterion: top colleges
don't necessarily produce the best programmers. There can still be mediocre
programmers that graduate out of top colleges, right?

Well its a heuristic.

~~~
mailshanx
You probably mean "it's"

------
walid
The article makes a crappy defense as to why there is poorly written code
coming from India. However the points as to the reason in the comments section
are much better. In my opinion you get what you pay for. So if you hire an
Indian programmer based solely on price then you made the mistake as an
employer. Qualifications are not the issue but rather supply and demand.
Everyone wants to pay the lowest price and get the best outcome. It works as
long as supply of good developers is less than the demand. However the demand
is outstripping the supply because there can only be a finite amount of
experts in a field.

------
pagade
Indian developer here. I think one point is missing here.

There are two categories of software development jobs in India: Service Based
and Product Based.

Service Based - which means you are working in a org taking outsourcing
projects (Cognizant, TCS etc).

Product Based - A product based org has set up its development center in India
(like Google, Amazon etc).

You get better salary, better work, better environment, better decision making
power in Product Based Orgs - which simply translates to this: better
developers are present in Product Based Orgs.

I have seen Job Descriptions that said 'Only for developer working in a
product organization'.

------
nichtich
This got me thinking. If you keep running into people "bad" at a job, there's
usually something else in the play. If you found a restaurant has very rude
waiters, but manage to keep open for quite a while, it usually means it have
really good food or really cheap price. Same goes here. The "badness" of the
"Indian programmers" is only a indication of their other "goodness", including
cheap, responsive and maybe on schedule.

------
zekenie
There are a few other reasons these cross-continental relationships often sour
and produce bad work: * dialect differences * time zone differences

Sometimes there's a simple 5 min question that needs answering before a
programmer can proceed, if they have to wait for the other party to wake up,
it can slow things down.

If the employer and employee speak different versions of English, there can be
misunderstandings, and frustrations.

------
tn13
I think the biggest problem with Indian programmers is that they are not
really programmers. Most of them people who work in the outsourcing companies
are barely educated in the field they work and lack competence. Their jobs
mostly are not about writing code to create something new but just to fix
legacy code or put lipstick on a bulldog.

The real Indian programmers are as good as any American or Russian or Korean.

------
ChikkaChiChi
If you let shit management outsource a shit project with a shit budget, no
amount of pressure in the world is going to turn that turd into a diamond.

My alternative comment was just going to be a link to "The Monkey's Paw"
[http://en.wikipedia.org/wiki/The_Monkey's_Paw](http://en.wikipedia.org/wiki/The_Monkey's_Paw)

------
benjash
In my experience. I've seen a lot of people calling themselves web developers
who are in fact just average web designers with some basic scripting
expertise. Regardless of nationality, it's hard to find people who can
actually code something without copy and pasting from stackexchange.

------
sonabinu
by telling everyone that STEM is the place to be, isn't America doing just the
same - creating people who are uninterested in what they are doing, but doing
it anyway because it is the most likely way to stay employed in a field where
the skills are in demand!

~~~
GrinningFool
We saw a surge of crappy American programmers in the late 90s, arriving on the
other side of the dot-com boom. The exact same kinds of problems, _slightly_
mitigated by the fact that when someone is on-site sitting next to you, it is
a little easier to walk them through what they're doing wrong.

You've hit the nail on the head though - we're setting ourselves up for
exactly the same kind of problems we first started seeing in the 90s, and then
much more as we started importing 'cheap talent' from abroad and created a
boom in demand for warm bodies that could type.

------
jedmeyers
As a user, I feel offended when I zoom in on subject webpage in my iPad and
the nav menu gets on top of the text I would very much like to read in a
slightly bigger font. Not much motivation to check how the page is displayed
on the most popular tablet, right?

------
rudhouse
I have personal hands on experience of hiring/ working with 1, 2, 3, 4, 5, 6,
7 and 8 messihas who claimed they were the best programmers. And guess
what......well, keep guessing to know how I feel about programmers now!!!

------
CmonDev
Who is the article addressed to? As western developers we are happy to stop
every and any outsourcing ASAP because it will improve both salaries and
quality of code. Most managers will never read your post.

~~~
enry_straker
He was probably venting.

Sadly, outsourcing is here to stay and is decided upon by CxO level folks with
little to no input from the tech staff.

------
crucialfelix
If you are a good programmer than you usually have constant demand and many
opportunities. Really good ones aren't working in web shops unless they are
busy working their way up and out.

90% of anything is crap

------
geuis
Hopefully the owner of the site sees this.
[http://imgur.com/rwvk8k](http://imgur.com/rwvk8k)

Your layout pushes the content into a single thin column on the right on
mobile.

~~~
epo
Hopefully? The site has a contact link. Why post your asinine one-upmanship
here where it is of no relevance to the discussion?

------
rbanffy
Saying this is an "Indian Programmer" problem is unfair. Bad quality is what
happens when you only optimize for price.

------
pekru
Obligatory quote (and a simple TL:DR): paying peanuts would only get you
monkeys.

------
saltvedt
Some anecdotes from Bad Indian Programmers at a larger Indian outsouring
company:

When implementing a touch version of a website (to be hosted on
touch.example.com) one programmer copied the entire project, changed the
relevant views/templates and deployed it, effectively creating a new, separate
codebase. This was never checked into version control anywhere, I discovered
it when I was looking into some unrelated issues with the server.

One programmer was struggling with an image being "corrupted" after being
uploaded to a server. He struggled with this for hours, attempting to upload
the image in different formats and zipping/extracting the image with no luck
before asking for help. When trying to access the image on the webserver the
server responded with a 401. After pointing out that this was an issue with
permissions, the programmer resolved the issue by running the command "sudo
chmod 777 -Rf logo.png". ("chmod 655 logo.png" would have sufficed.)

Needing to get the number of models in a backbone collection, one programmer
placed a script-tag inside a javascript template used by backbone. This was
one line of jQuery which counted the number of elements in the element used by
the backbone view. The number of elements was then stored as elements in the
DOM, adjacent to the elements in the template. So when backbone rendered a
collection with N models, the javascript in the template would run N time
times, storing the number of models in N different elements. The number of
models in the collection were then fetched using jQuery and the :last-child
selector. This whole mess was replaced by a simple call to collection.fetch().

I've got dozen of experiences like this (although these are the most
memorable), and I'd like to reiterate that these programmers worked at a
larger Indian company who specialized in outsourcing. It's what I think of
when I hear about "Bad Indian Programmers".

>"Could it be it wasn't 'those Indian guys' who caused your project to fail?"

The project could have failed with good programmers. Bad Indian Programmers
virtually guarantee it.

>"Everybody else's code sucks."

There is bad code, and then there is really, really, really bad god-awful code
which no amount of "change in requirements" or "failure of communication" can
explain. It really is _terrifying_ how much technical debt can be incurred by
Bad Indian Programmers.

>"Stop having crazy expectations."

I don't think anyone hires $20/hr programmers and expect $200/hr quality work.
The expect some value to be created. Instead, Bad Indian Programmers create
_negative_ value when the work they do is worthless and has to be done over
(often by a more expensive programmer).

