Reactions and follow-up to "The H-1B Delusion"
Immigration is a touchy subject
When I stuck my neck out on the topic of high-skilled immigration last week, I expected to make people angry, and that’s certainly what happened. I wasn’t expecting to get many intelligent comments, just a slew of accusations and insults. That’s how it usually goes when discussing immigration, and when the topic touches on Indians in particular it gets worse.
Instead, I received quite a few thoughtful comments along with the expected low-effort abuse, enough that I thought it would be worthwhile to publish some of it. I’ll start with some easily rebutted objections before moving on to more substantial things.
To briefly recapitulate my main lines of argumentation:
The chronic skilled labor shortage for programmers is real
Recent increased unemployment of CS grads is primarily due to many more people being awarded degrees in recent years and a corresponding drop in quality of graduates
Moving on to objections and rebuttals:
The shortage is because of wage suppression
I acknowledged in my original post that the H-1B program probably does suppress wages to some extent, although I’m not confident saying how much exactly. But if you believe in basic supply and demand, it should be obvious that a larger labor pool will depress wages, all else being equal.
Some commenters jumped on this point to claim that in the absence of this wage suppression, more native-born people would enter computer science or change careers. If programmers made a half million dollars annually across the board, surely that would induce more interest in the field and lead to more qualified candidates.
I think this is wrong for a couple reasons.
First, we already ran this experiment from around 2005 to the present, when software went from a boring middle class profession like accountancy to a get-rich-quick ticket. During that interval, it became the case that mid-level programmers in elite tech made quite a bit more than most doctors or lawyers or finance bros, and people knew this was the case. But this didn’t induce many people to major in computer science who weren’t inclined to do so already. And many people who were lured by the promise of money quickly discovered they weren’t suited for it and dropped out.
Second, following from the above, the pool of candidates with any aptitude is pretty fixed on a generational basis. Programming is hard, and having the kind of brain required to do it seems to be largely innate and in relatively short supply. There is not a large pool of untapped talent among university students or graduates, there are not droves of bright native kids waiting in the wings for the right price signal to study computer science or re-train. There is some slack, sure: mechanical engineering or law or physics majors who could be successful as programmers as well. But that pool is smaller than commonly assumed, and additionally filtered by inclination. Many people find programming boring and lonely, even those with the aptitude. Should we force them out of their pre-med programs and into Aeron chairs?
Many people who have tried to teach programming to otherwise bright kids have come this conclusion, myself included. They observe a bimodal distribution: kids who get it, and kids who don’t, year after year. You can be trained to program, but only if you have the basic aptitude. If you don’t, no amount of education will instill it. Or at least, if there’s a way to do it universally, we haven’t figured it out.
Note that just because many people struggle to learn programming doesn’t mean they won’t end up graduating with a degree in computer science, leading to this kind of sensational headline.
I don’t know what’s going on with these people in particular, but I do know I interview recent grads from relatively prestigious schools who can’t code all the time. The question of how such students get degrees without acquiring the requisite skills is a long conversation with many factors, but it happens.
The shortage is fake because companies won’t train employees
See the above discussion on aptitude.
But let’s say you don’t believe in the aptitude argument, fine. Imagine that you were hiring house painters, and all the applicants came to you with a four-year certification program in painting. They took courses like “Taping and Tarping 200” and “Brushwork 101”. But then when you ask them to paint a wall during their interview, one of them holds the brush by the bristles and scrapes paint onto the wall with the handle. Another one tapes down the middle of middle of the wall, rather than around the trim. A bunch of them can’t figure out how to open the paint cans. Would you hire these people and try to train them on the job? Or would you decide that somebody this hopeless after four years of training is probably a lost cause?
This is what people interviewing programming candidates see in the trenches day after day. These people couldn’t learn the basics in four years of formal instruction, and you want employers to take them on and hope for the best?
Layoffs prove the shortage is fake
You’ve heard this story: if the shortage is real, why is anyone doing layoffs? And if they’re doing layoffs, doesn’t that prove they don’t need H-1Bs?
I won’t defend mass layoffs in tech, except to say that they’re commonly used to cull a workforce that’s grown larger than can be justified by its current productivity. Firing individuals is legally perilous and time-consuming, whereas a mass layoff gives a company plausible deniability to clean house without any individual impacted being able to object overmuch. Again, I’m not saying it’s good that they do this, only that it happens and has for a long time.
And because these layoffs are happening at still-profitable companies like Microsoft, of course they’re not going to stop hiring. Sometimes they even hire the same people just laid off, since there’s definitely a large element of luck to who gets hit. Independently, Microsoft applies for thousands of H-1B visas every year, including years they do layoffs. The two things have nothing to do with one another — if Microsoft wants access to that talent pool, which they do, then they need to play this game. And since it’s a lottery system, they must apply for many times as many visas as they expect to actually hire, leading to inflammatory headlines like the above.
If the shortage is real, why is it so hard to get hired right now?
No matter how many caveats I include, it’s never enough, but here’s another: I’m sensitive to the plight of qualified people who can’t find work despite lots of real world experience. It really can happen to anyone, and it’s not your fault. It’s also the case that it’s harder to get hired right now for people of any experience level relative to years ago, you’re not imagining it. Lots of people tell me the hiring pipeline is really broken right now, and I believe you.
But you also need to consider this context (h/t
):There have never been more programming jobs than there are today. It’s not close. There has never been a better time to be a programmer, despite how annoying your job search has been. Business is booming.
And in any case, even acknowledging that hiring is fucked, my main point remains: immigration is a relatively small piece of the problem.
You don’t see the HR side of the equation
Here’s an objection that I think has some merit to it: the qualified people are being stonewalled by HR for whatever reason, and I don’t see that because I don’t enter the hiring process until later in the pipeline. HR is hiding good candidates from interviewers like myself, mostly because they don’t check every box on a wish list of years of experience with various technologies that can be learned by any competent programmer. I received a good criticism along these lines on Twitter, which I’ll quote here.
I am trying to convey to you that we focus way too much on nonsense components of qualifications, simply put as credentialism, and that this has reached comical levels in the past few years.
It has been absurdly bad post 2020-2021 tech hiring bubble burst. The problem of "over credentialing" has been present since at least the late 10s, but it has only gotten worse with a short burp for 2 years where eating was goo. I still vividly remember internships asking for 1-3 years of PROFESSIONAL experience back then, and these were undergrad internships, not masters ones.
My biggest thing id like to drive home to you is a point that aligns well with your previous thematic point about "well what about the numbers" I have no doubt *someone* entry level made it through the filters. I also 1000% believe, and even expect, that way too large a portion of the people that do get through the filters would be dogshit.
That's actually part of my point, actually: most of the people that are good cannot get through the filters and the filters are adversely selecting against genuine talent. This leaves you with "more worse candidates " as a hiring manager. Box checking inherently suffocates potential and raw talent.
But 1 out of 1000 entry levels (or more) 'being able to make it through' is not an appropriate number to claim victory with from your PoV, and it is laughable to claim that there is a labor shortage or skill level depreciation when nearly every LI application for entry level tech roles hits mid 3 digits.
The reality is there were probably 20 people in the first 100 - 200 applicants that were qualified; and ATS plus HR will far too frequently pass on ALL of them for not having direct keyword matching, not being from a special snowflake college, or for not being diverse.
We can hmm and haw about the immigration numbers, and there is a bit to unpack there relative to "immigration numbers havent changed" (that, mainly being, that we are not growing like we used to across the economy sans AI and we definitely arent growing in tech sans AI like we used to), but generally there is less to go around and there is too much competition for too few roles.
That is not a macro environment that needs H1B or imported talent. Thats one that is really, fundamentally at odds with corporate nonsense about shortages. There aren't shortages, and the numbers that say there are are just misleading.
I find this argument compelling, and I will agree that I don’t have any direct experience with this part of the hiring pipeline. The mechanism seems plausible. However: I’ve seen the same dearth of competence at lots of places with varied hiring practices, including small startups that hire directly from LinkedIn postings with no HR involvement. My guess is that the truth is somewhere in the middle. HR makes it harder to find good people, yes — but they’re pretty thin on the ground in the first place. Most of the good ones already have jobs.
I don’t know what I’m talking about because of my personal history
The same commenter above had this feedback for me:
Your whole argument seems senior/principal programmer coded and it is extremely naive to the reality of finding a job while being young today.
You dont get that “qualified” today is not skill, its years sitting your ass in a chair. You really dont get what its like to try to find a job if your arbitrary number of YoE happens to be low right now. I am not impressed or convinced, and it seems like youve just never had to deal with HR filters or modern day applications/job hunting in junior and younger mid level roles.
Here as well I’ll admit to being guilty. My last junior job application was decades ago, and in addition to being senior, I’m also elite, mostly working for FAANG-tier companies and startups of a similar caliber. And this personal history also colors my opinion of the competence of H-1Bs.
Again, I think this criticism is fair. Often when reading an angry rant about the incompetence of H-1Bs in tech, I wonder if we aren’t dealing with a two-tier system, where companies like Google get the best foreign talent and less elite tech companies (or technical roles in non-technical companies) get the dregs. I’ve only seen the upper tier myself, so I can’t really comment intelligently about what goes on in the lower tiers. If you have experience there, I’d certainly be interested in hearing about it in the comments.
What to do?
The first sentence of my original essay introduced myself an “immigration restrictionist”, but apparently this didn’t sufficiently convince people that I’m in favor of reduced immigration, including high-skill immigration. I am, but my reasons are primarily cultural rather than economic, and my post was mostly meant to address the idea that immigrants are keeping native born programmers down, which I don’t believe (although see caveats above).
But it’s worth being explicit about what I would like to see happen with H-1B.
Basically: lower the cap and make it an auction instead of a lottery. We wouldn’t have all this talk about depressed wages or true economic need if companies had to compete with one another to hire the talent they say they need. Reduce the cap by at least half to start, and auction each visa off to the highest bidder.
Here is who was getting H-1Bs in 2016:
If you don’t recognize the top three names, don’t worry, that’s because they are all Indian consultancy companies absolutely committed to hiring their countrymen. It’s safe to say that these are not elite human capital, and they shouldn’t be getting that many visas. And they wouldn’t, if they had to compete with the likes of Google and Apple in an auction.
(The only real change to this picture in recent years is that Amazon has jumped into the lead and out-played the big 3 Indian firms.)
Ultimately I am not in favor of scrapping the H-1B program entirely, because I want the US to be the undisputed global leader in technology and science, and top global talent helps to realize that vision. But I also won’t pretend that it doesn’t come at a significant cost, both culturally and economically — even as I continue to insist the economic case is overstated — that’s getting harder to stomach every year. Reduce the size of the program and make companies pay full price for the privilege of its use, and we’ll go from there.










I have a story.
On a Saturday ten years ago, I went into the office to do something. I was surprised to see Sunil (not his real name), whose wife had delivered their first child the previous night.
"Oh hello, Sunil," said I, "what are you doing here? You should be home with your kid."
"I can't leave!" he said, absolutely frantic. "I have to finish this project!"
Of course, Sunil is an H-1B.
Now, maybe Sunil is just a workaholic with issues. But it was clear to me from our discussion that he legit believed that if he didn't finish THAT project on time, the company would fire him, and he and his family would be sent home.
This guy was good at his job, too. He wasn't on a performance plan or anything like that. It struck me that the H-1B program creates a kind of indentured servitude, and employers exploit that.
I absolutely support a high skilled visa auction. But with both a number cap and a salary floor.
If you say you want the best <whatever> on earth, you can afford to pay at least $300K for them.
And maybe it will make some companies fire their HR drones and reform their hiring process to actually find the best Americans for whatever job they are doing instead of the best at playing HR-keyword bingo.
Also, a better hiring process would incentivize universities and other training systems to actually teach people the thing they are purportedly being taught to do.