20 USD/hour is not what developer earns, but what you pay for developer time. Overhead (buildings, managers, computers, toilet paper), sales commissions, taxes, and off time and eats big big part of that money.
I've seen rate cards for quite a few bpo providers and major it body shops, and unless it's like an extreme case (Chennai and one or two other cities), the devs are getting slightly less than 10% of their billed rate, the rest being overhead.
Hell, I look at the delta between what my firm bills me out for and what I take home, and it's about 12% of my fully loaded day rate.
I've seen two type of compensation schemes during my agency years: ~60% take home, but zero during my downtime and around ~15% when I was salaried developer, which make sense as utilization of around 60% was expected.
The rule of thumb used to be, total costs = what you pay them * 1.5 to cover that stuff.
So 3200 becomes $4800 (or just under $57k a year) - that's still a good deal given what you'd get.
I've worked with eastern and central European developers and some of them are phenomenal (the skill breakdown is about equivalent to UK devs as a pool maybe tending towards them been slightly better but there will be some element of selection bias in that, language barrier is the biggest hurdle, many of them speak/write good English - my partner is Hungarian and her written English is at least as good as mine) but when the tiniest miss-understanding on requirements is costly during development and potentially devastating in production that really starts to matter.
I think you are misunderstanding what the $20 refer to. They are what the customer is paying to the company for a single billable hour. That money is not only used to pay the developer but usually the rest of the company too. Sales, marketing, accountants and other employees that aren't directly assigned to a project or are waiting for their next project will have to be paid from that billable hour as well. You can call them greedy or whatever but usually they get away with a 50% cut or sometimes more. Ok, now you are left with $10 which represents the labor cost + office space + equipment needed by the developer himself. So the employee gets paid $6.66 per hour before taxes but the customer is paying $20 for that.
Indeed. The starting salaries of fresh grads in (Wipro/Infosys/TCS/etc.) has been stagnant at INR 300,000 to INR 350,000 / year for the last 10-15 years. Converted to USD this is: ~ 4000 - 4700 / year.
Of course, experienced ones don't receive that might higher salary either. About 5 years of experience would probably get you around double to triple the starting salary.