Are there really no qualified local candidates, or are there no qualified local candidates who can also solve theoretical CS problems on the spot while pretending they're not doing it from memory?
Or qualified local candidates who refuse to lie and say they only took 3 hours on the take-home exercise?
For every 100 candidates a CS job gets, probably 80 are truly unqualified, 20 are truly qualified, but only 2 were both qualified and could pass an arbitrary list of brainteasers.
And that lie lets managers run around saying "see, we can't hire enough talent! Skills shortage!" (where "skills" means "brainteaser skills", not software development skills)
Then they hire H1B people who look good on paper.
This to me is a huge problem. And it upsets me greatly because its unfair and counter-productive.
Have you actually done hiring? The truth is that there really is a shortage of qualified applicants (at least, at existing prices). I've literally never met a fellow hiring manager who thought there was a surplus of good engineers.
I've also been a person applying to jobs, where I know I'm fully qualified (usually because I already do the same thing in the same way for a competitor) and where I'm told "we think your a good culture fit, but we're worried about your technical abilities". I can't know exactly why they said that, but when I've showed working code they say their happy with, but I know I struggled on their brainteaser questions, it feels safe to infer.
So, I've seen qualified candidates turned away because they were "unqualified" (but they really weren't), from both sides of the table. I'm not claiming there is a huge surplus of engineering out there, but there is no real shortage either. There are enough engineers, just not enough employers willing to hire them.
People always push it to the extreme and mention some very difficult algo question they were asked, and say how it's irrelevant. And if you have been asked a question like that, I agree it's irrelevant and that sucks.
But having a basic understanding of algorithms and data structures is important to writing decent software. Can we please stop pretending like expecting people to roughly know and understand the content of the freshman data structures course is some kind of unreasonable expectation?
(That was me a few months ago.)
What positions were you trying to fill, and what pay and working conditions were you offering?
Supply and demand are not suspended just because it's tech. There's a huge amount of demand, but not much supply for highly skilled software developers at $75k a year in San Francisco. There's a huge supply at $500k a year, but considerably less demand.
From what I can see, for San Francisco, the brunt of H1Bs (which is not the totality of foreign nationals, doesn't include L1s and T1s) in San Francisco in 2016 earned a salary in the 100K-150K range[1] (without accounting for extra perks like food, health and stock grants). Is that low? High? I don't know, but it seems in line with what I would have expected. Keep in mind that that's the salary, you have to add the cost of actually bringing that person to the US (lawyers, relocation, temp housing, etc.).
As for the BMW, you can get a 10 year old one for that price[2].
[1]: http://h1bdata.info/index.php?em=&job=Software+Engineer&city...
[2]: https://sfbay.craigslist.org/search/sfc/sss?sort=pricedsc&ma...
"Is it too low?" That isn't really for me to say. Generally speaking, it isn't for the government to say either. In a market economy, the market determines this. I see no reason to put corporations in control of the immigration system, with the power to decide who is allowed to come here and what jobs they're allowed to work, just because they don't like the market's answer.
> All the really qualified people are in the bay area working for tech startups, etc...
> So a company outside of the bay area would have to bring in H1B workers who are willing to live in the area.
So the answer to a lack of local candidates is to start reaching across oceans? How about elsewhere in the massive expanse of North America, where many people don't even need a visa or can get one much more easily?
There are plenty of qualified candidates out there. But as you mentioned, they are mostly already working somewhere else, for someone else. In order to hire them, you need to offer more or better than they already get. That isn't all just a salary number, but almost everything has a conversion rate.
Guest workers on a non-immigrant visa are simply cheaper to employ. As are young, unmarried, childless, and inexperienced workers.
It's fundamental economics. Supply is not a single fixed quantity, but a function of price. Likewise for demand. Where they cross, the market clears. Everyone willing to pay more than the clearing price gets an employee, and everyone willing to work for less than the clearing price gets hired. If you can't find a job, you are asking for too much money, and if you can't find an employee, you are offering too little.
Companies deliberately set criteria that guarantee a local search for candidates will fail, in order to save money on labor costs by hiring an imported candidate more cheaply. That is the heart of the unease surrounding H1B laborers. If the company truly cannot find suitable local candidates, the person they do find is in a great position to ask for more pay. If they need you that much, they should be paying more than any local would even dream of asking for, right?
Does that happen? Are H1B workers paid more than their local equivalents?
If you want to see how stark the difference is, look at the compensation calculator gitlab developed: https://about.gitlab.com/jobs/developer/
All the really qualified people are in the bay area working for tech startups, etc...
So a company outside of the bay area would have to bring in H1B workers who are willing to live in the area.
I am not sure if there are costs concerns for the company in making that decision, but I figure if they were willing to hire me, they probably don't have a problem hiring local candidates if possible.
Edit: Since people want more details, I'll elaborate on the VERY LITTLE that I know. Right now consulting agencies in Sacramento, CA need Senior Ruby Devs and they can't find any. I am not 100% sure on what salary is being offered, but I am guessing around 100K. A junior dev fresh out of college can make about 40K (remember its Sacramento!). (I want to make it clear this is all hearsay, don't quote me on this)
I was told an agency that hires out H1B workers can get paid as much as $50/hr. I have no way to verify this, but this is what I heard.
Another thing is, these are short term, project based, positions --- not very attractive to people seeking a career.
They also have a constant need for .NET and Java devs.
That being said. I am very much against outsourcing jobs that could be hired locally. But Sacramento has a very small developer community, so I don't blame them for using H1B to fill the gap. But who knows... maybe it's all a ruse.