Outsourcing is not new. Many companies have tried it. Not just in CS, but extensively in CS.
Not only are US CS skills higher, but communication is the most important skill in the industry. Good communicators add more value and do it faster than people with whom you struggle to communicate. People that don't understand that now will understand it after a few years of working with a company in a different time zone without a native grasp on English.
Another problem you'll face is that outsourcing means that another company (since you usually just contract with a foreign company) is gaining expertise in your product, domain, and tech stack. That knowledge gained doesn't stick with your company. If you're unhappy with that company or they fail to perform in the future, you have to train a new team from scratch.
A common pattern I've seen is that companies will outsource as a fledgling startup then move to insourcing after the MVP is up because it's easier to work with an internal, local team, and the initial team falls short once you get to the hard stuff.
I do suspect there's selection bias. Most US devs are employed and well paid already. It's hard to get the good ones to apply for new jobs because tech hiring is a pain in the ass. Imagine having a full time job, family, life, and taking a day off for interviews (while working! what, we're supposed to take PTO?), or spending your weekend on a coding challenge? Most of the remaining applicants are probably the lower end of the talent pool - younger or bad. Your individual sample size is also likely too small to make broad judgments about entire nations.
There are sufficiently many companies in the US that don't even like doing this across state lines - much less international boundaries.
---
I won't argue with the "bad and entitled" aspect. I've seen that when doing interviews myself. There's a bit of "if you've got 1000 applications for three different positions, 900 of them are the same across those positions that are having difficulty getting hired". From https://www.joelonsoftware.com/2006/09/06/finding-great-deve...
> Astute readers, I expect, will point out that I’m leaving out the largest group yet, the solid, competent people. They’re on the market more than the great people, but less than the incompetent, and all in all they will show up in small numbers in your 1000 resume pile, but for the most part, almost every hiring manager in Palo Alto right now with 1000 resumes on their desk has the same exact set of 970 resumes from the same minority of 970 incompetent people that are applying for every job in Palo Alto, and probably will be for life, and only 30 resumes even worth considering, of which maybe, rarely, one is a great programmer. OK, maybe not even one. And figuring out how to find those needles in a haystack, we shall see, is possible but not easy.
There's an entire thread to head off on for the why this is the case.
I will claim that for places where the salary isn't tech company stratospheric, the average entitlement goes down a bit.
This works extremely well and everyone is happy. Even a low US salary is often huge by local standards and more than makes up for the overhead of running yourself as a business.
Some countries even incentivize this. In Slovenia for example (where I started my career with this exact model), your effective income tax is 5% if you’re a solo business making under $100k/year. Typical local engineering salaries are $30k by comparison.
I’m sure there’s selection bias at play, but I did a huge interviewing stint recently and US engineers were on average bad and entitled, LATAM were amazing and eager. Guess who interviews better?