I can't speak to Indian programmers, but their IT techs are trash. Our company (an MSP) hired a few on the promise that they would do the low impact support requests. Automated stuff that rolled in and was easy to fix. Failed backups, missed Windows Updates, that kind of stuff. Our company used them for about 2 years. Between glowing reviews from management (after they had been given a free trip to India to 'check in'), 'wonderful metrics', and the cost of four of their techs being less than one local, it looked like it was a great deal.
We even tried using them for customer facing requests. They worked at different hours but that was great for things like offline servers in the middle of the night. That didn't last long. Between the language barrier and their inability to actually fix simple issues in a timely manner we put them back on automated stuff. On multiple occasions taking 2+ hours to log into an iDRAC and power up a server that the UPS gracefully powered down due to a power outage, for example. Or being completely unable to help clints with printer issues. That was the first sign that maybe they weren't actually very good at their jobs. We then had a client need a file restored from a backup. As it was customer facing, it went to an in-house tech. Uh oh, the backups on their server haven't been running in a couple of months. What gives? Sure enough, every day we got a ticket about the backup failing overnight. In the wee hours every morning one of the Indian techs would assign themselves to the ticket, report that they had started a new backup job, and then closed the ticket without confirming the new backup actually finished. The customer was not happy about not having a backup in place that they were paying us for every month. This was passed along to the head of the service department and he did some digging.
Every backup that was failing was 'fixed' by creating a new backup job and closing the ticket. As you can imagine, this didn't fix the issue very often. This was not how they were taught to fix the tickets but, when asked, it turns out that their management had told them not to fix it our way because it took too long. Fix it the 'standard way' and close the ticket. The same tech would work the same failed backup for the same client for weeks at a time and wouldn't bother telling us or trying anything different. Failing Windows updates on servers? Same deal. Run the update task again and close the ticket. Low space on the server? Run Disk Cleanup, close the ticket. The best part of those is they would start up Disk Cleanup and then log out, which does nothing. Because the tickets were being closed every day before the main office started work our reporting system didn't catch that they weren't actually being fixed. It ran at 7 AM right before management showed up. No open tickets, no bad reports. The opened ticket to closed ticket ratio looked fantastic, so everyone got a pat on the back.
Why were they being pushed by their management to close tickets so fast? Because they were double dipping. We were 'assigned' 4 techs but they weren't exclusive to us. If there were no open tickets they were expected to work on stuff for others. We discovered this when we would try to call a tech with no open tickets and not be able to reach them. Management was less than pleased when this came out because the techs were paid by the hour, not the ticket closed. Who was the management that pushed for hiring these clowns? A former accountant that was made the CTO. The same guy that 'upped our metric game' and was so happy they bought out numbers down by hiring them. That's right, a guy with less technology experience than an entry level tech was the CTO of the company. He was a former client that was 'promoted to manager' after our last real CTO left a (IE he bought a share of the company and wanted the job). What's the lesson here? When the accountants start running the show, get another job.
In the end, we lost a few clients to their shenanigans, damaged our reputations with a few more, screwed up two years worth of metrics so they had to be discarded (only management cried about that one), made a bunch of work for our techs to clean up, and didn't actually make our business any better.