Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: India == bad devs?
36 points by aviraldg on Aug 1, 2013 | hide | past | web | favorite | 40 comments
Do you subconsciously assume that developers from places like India and China are "cheap" and "unskilled"?

Anecdotal evidence: I got far more replies to WhoIsHiring posts when I didn't list my location compared to when I did. Sad, really.

If there's a "India == bad devs" stereotype, it's more the result of cheap American outsourcers trying to get bargain basement prices on Indian dev labor and then being unsatisfied with what they get.

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.

100% agree. When I've worked side-by-side with devs originally from India, I have not noticed a difference in skill level from others.

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.

The problem with these outsourcers is they that they expect Indian programmers to work out quality code while paying < 5$ an hour. I met an employer who was impressed by my SO profile and wished to hire me $2 per hour when I asked to be paid at least 10$ (which is very good income here), he says, "Why should I pay you 10$ when I can get developers at much lower rate at Elance, GAF?".

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.

Even $10 is way too low (at least an order of magnitude!) for a good dev.

If you pay peanuts, you get monkeys

Short answer: Depends where you're looking at. Long answer: In India, you'll find engineers dime a dozen. IT service companies like Infosys, Accenture, etc. recruit the bulk of the students from the universities. They don't care which background you're from. A CS/IT Engineer is at the same footing as an Electronics/Mechanical engineer as far as these companies are concerned. They train these undergrads for 2-6 months on a particular skil set (usually something outdated like JSF or Struts in Java or say some proprietary software) and these devs are responsible for delivering the projects for the off-shore companies. Most of these engineers have no clue what they're doing. They're not interested in the field. The only reason they continue to work there is because the work experience can be leveraged to do an MBA. To work on the projects, they pick up snippets from the Knowledge Base these companies maintain, manipulate the snippets enough to make them work with their project and then move to some other similar project. This probably covers 75% of the "devs" out here.

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.

In the long run, such misguided stereotypes will intrinsically hurt and marginalize those who hold them.

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.

I am trying to fight my stereotypes. Could you please point me to some github repos started by chinese/indians and that are awesome?

This has the potential to blow up into a huge flamefest.

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.

The ones who come over here beat out all the ones back home for it. I've worked with many developers from India, and the ones over here tend to run rings around the ones over there.

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.

This answer adds value to the discussion.

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.

> The ones who come over here beat out all the ones back home for it.

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.

This isn't from HN, but I've noticed an implicit bias against devs from South and Southeast Asia (can't speak for China). On my resume, I go by the shortened form of my first name, not "eksith" and that was a conscious decision after putting my full name resulted in very few calls and emails.

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 remember reading a study (it is pretty generic and I'm sure done many times), where a research group put a stereotypical 'white name' on a resume and sent it out, then put a stereotypical 'black name' on the same resume and sent it out. I'm sure you see where this is going in that the 'white' resume received many more calls and interviews. This bias is unfortunate but pretty prevalent in most organizations, and is even seen in university admissions frequently (same ethnic bias, different reasons).

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

It is possible to test yourself for such biases:


That "test" is completely ridiculous and meaningless.

Would you like to make an argument in favor of your assertion?

The implication is that by changing the word/picture associations at each level, they will eventually trick you into revealing that you are racist, as you mistakenly associate the negative words to the race which you are allegedly prejudice against. Wouldn't it be just as likely that people would click because they simply mixed up which side of the screen the association was supposed to go on? Such a mistake could also be attributed to a lack of attention or even clumsiness. It seems like the test takes a huge leap of logic by automatically associating the mistakes with racism. Twice throughout the test I mistakenly clicked the wrong side for a negative word association. Once it was with an African American portrait and once it was with a European American portrait. One would think that this would even things out, but the test determined that I'm a racist because I got blue and red mixed up.

As I said, it's utterly ridiculous.

I would definitely say that's a presumption for many people, but I think things are changing. Working at a very large fortune 100 that dealt with a lot of H1-Bs and foreign talent, I saw a lot of managers who learned to shed that bias, and it helped them.

Jerry average american building a real estate site may have some different biases though, and that bias may cost him some really good talent.

It does seem to be awfully common in Indian schools to teach C++ from before 1998 (i.e. before formalising of the first standard), considered simply wrong today, using tools made 25 years ago (Turbo C++ for DOS is popular). Those taught this end up hitting the workplace knowing incorrect C++ and knowing how to use a 25 year old tool for DOS. I've no doubt they can learn modern C++ and modern tools, but it certainly creates a bad image.

Meh, we had to learn Pascal here in the UK (2005). In my opinion, learning C++ early on is better than jumping on a bandwagon language like PHP, and expect to learn JavaScript with relative ease.

I agree with Kohanz & API ... outsourcing companies throw peanuts at developers and expect quality code.

The problem isn't learning C++. The problem is paying a fortune to be taught some kind of franken-language from two decades ago in the belief that it's what employers mean when they say "C++" on the job spec.

What, who pays a fortune ? .. most indian developers are self-taught geeks who pick stuff up easily. C++ is the mother of all modern languages and I suspect job specification that mention "C++" is an indication of that.

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.

most indian developers are self-taught geeks who pick stuff up easily.

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.

Disclosure: I am based out of the Indian subcontinent & have deep professional ties with the bay area for little over a decade.

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.

Most individual Indian developers I have worked with have been good developers -- not to mention good people. But at the same time my experience has been that as a group they tend to fail at an alarming rate.

That's why I'm now thinking that a better (even though also potentially flawed) generalisation would be "India = bad management".

I would rephrase that to be "Bad outsourcing = 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.

If you've worked in a US Corporate IT shop, then it is very likely that this is the case. One way large corporations structure the work is deliverables based. That means the company is paying the vendor to deliver design docs, code, tests, etc. on a schedule and aren't necessarily paying per hour. The offshore companies hire a couple of Java enterprise developers with 6 months experience and don't pay them much. They assemble the basics of an application together and the work is billed out as $X,000 for development. The cost for development seems inexpensive for a large corporation where if they staffed someone themselves, that would be less than 1 month and there's certainly no way 1 person could write an entire app in a month (that should be in sarcasm font - but that is how upper mgmt thinks).

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.

I think most people do make that assumption subconsciously. Hard to blame them, the signal to noise ratio is awful so it's probably easier to not bother.

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.

Speaking as someone who just hired a developer I steered away from India and the whole overseas market in general because I wanted someone locally who I could speak with In person.Some conversation in my opinion have to happen in person.My friend just had a app completed by a Indian developer quality work from what I can tell but time barrier slowed completion of app considerably.

A lot of businesses would prefer someone local because of timezones, even if the overseas dev is more skilled. For a startup, for example, it is advantageous to get a bunch of devs in a room to bounce ideas around. It is harder to schedule Skype calls at odd hours and get the same effect.

Doesn't quite apply, because I'm comparing "Remote (India)" against just "Remote"

The time zone problem is indeed the cold water here. Even when folks are working remotely, it's faster and easier to work with people who have similar office hours. "Remote" could be a time zone over and worth an email. "Remote(India)", however, means project questions sit unanswered because I am asleep. If more information is needed to provide clarification, even a simple matter, normally settled in 60 minutes across roughly aligning time zones, can take 36 hours to work out.

There's nothing wrong with the skills (you'll find similarly skilled people locally), but the communication and the pride in the work sucks from experience. This is true regardless of the remote culture: it's universal with outsourcing.

> This is true regardless of the remote culture: it's universal with outsourcing.

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.

That was probably because they were cheap rather than efficient.

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.

Many Indian developers choose their field based on parental and social pressure. I've been working with students in Engineering colleges in India and a significant fraction say that they joined Engineering just because their parents told them to and/or because they want high paying jobs. It's considered undignified in some sense to not have a professional degree. This causes an increase in demand and consequently, private players and others step in to meet it. These institutions churn out a huge number of engineering graduates every year who don't particularly care about their field or their job. That's the first stage. You have a huge pool of (at best) average developers. They're entire "programming education" is four years of working on outdated technologies and a shaky theoretical foundation taught to them by (mostly) uninterested teachers.

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.

This fits with my experience. It's not that Indian engineers are inherently bad, it's that they are often uninterested in what they do for a living. They're not passionate. They feel forced into engineering because of social expectations. And it shows.

Grow up.


Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact