Running a coding school (Codeup), I get this email all the time from recruiters:
"Dear xyz,
I've been hired to fill this not-so-great job THIS WEEK and we want this crazy exclusive unicorn skillset that about a dozen people in the world have and, you know, we aren't going to pay much anywhere near going rate and we're going to hire as a contractor so we can fire you any time and we're not really interested in training a person who'd actually want this gig at the rate we're wanting to pay. So, do you know anyone?"
Just as an individual, I get similar recruiter pings all the time. It's always contractor jobs (typically with a set term of 6 months and a "possibility" of longer-term work) with a tangential relation at best to the skillset and experience on my resume.
The cherry on top is that the pay, if it's even outlined at all, is always insultingly low compared to the job I already have. On the upside, just mentioning my current salary to some of the please-call-me-I-have-just-the-job-for-you recruiters has been enough to make them stop trying to contact me at all.
I get calls for potentially awesome jobs from people I can't fucking understand even though they're apparently speaking English. Not "don't want to understand" - literally, can't.
If there was really a tech shortage -- and had been for years -- wouldn't the labor supply rise to meet demand? Wouldn't there be people willing to work less than the going rate (which is far above a living wage), wouldn't the going rate be dropping?
I don't know the answer, I think what is going on may actually be kind of complicated.
But that's the kind of question raised, you can't explain away the question of whether there's a shortage or not by saying "It's just that people aren't willing to pay the going rate."
> Wouldn't there be people willing to work less than the going rate (which is far above a living wage), wouldn't the going rate be dropping?
Possibly, except that there are a lot of pressures on people to move out of programming. Some examples: folks over 35 aren't welcome a lot of places; financial incentives often push programmers out of programming into e.g. project management. So you have a lot of people constantly leaving the field, somewhat by the design of the roles offered.
Oh, and every programmer is reading HN trying to figure out how to start their own gig. Higher wages and other job fixes (e.g. security, status, professionalism) might bring a lot of these people back into the recruiting pool.
The real problem is that to compete in today's world, your website:
1. Needs to have great design
2. Needs to be rock-solid in terms of stability
3. Needs to be snappy to use
4. Needs to be able to handle a Reddit traffic swarm
5. Needs to have individualization and customization
6. Needs to play nicely on computers, tablets, and phones
The person (or people, more likely) who is good at all of this just isn't available at rates the companies want to pay. This is the important distinction. Hiring somebody for 100k/yr is pretty much the minimum ante for a good developer in a tech city. But these "entrepreneurs" and "founders" think that is too much money, and instead claim there's a shortage.
In reality, if you're competing for top talent, 150k/yr should be your ante, and be prepared to go well into the 200s. This shouldn't be a surprise. To get even average talent from a consulting/contracting company, you're paying about 125/hr (of which 60-70 goes to the developer). That's 250k/yr. So why are companies freaking out at paying over 100k/yr for a full-time person who they can invest in? Hell, cut out the contractors and pay your people 200k/yr, and watch the good people come talk to you.
This is what Amazon and the like are doing now. I'm hearing 22 year old kids who haven't coed a line of code in a professional capacity, getting offers of 120k/yr with a 20k signing bonus. Netflix pays a significant chunk of its engineers over 200k.
The only real problem is that it's getting more expensive to do business in a tech world. But compare the skill sets that used to draw 100k/yr, and the skill sets now required to get 145k/yr (100k/yr in 1998 dollars = 144k in 2014 dollars). Before, you could just know HTML and some shell scripting. Now, you need to know multiple frameworks, how to deal with scalability, multiple data stores, "full stack," etc.
If anything, the good talent in this industry is still dramatically under-paid. A common metric is that the company should make from you about 7x your salary to justify your position. So if a company is making 2.1 million, you should be getting 300k. But we all know that's not what's happening. Instead, our wages are being capped and forced down due to illegal collusion between the top tech employers.
This all comes down to the people who own the businesses wanting to treat tech people as interchangeable cogs, despite all the evidence to the contrary.
The thing is, it's not usually easy to make money at that rate as a small company, especially on the consumer side. That is objectively a lot of money.
I'm not saying that good devs aren't worth a lot, but they're typically only worth that much when applied to a problem that impacts a huge number of people, as at Google, FB, Netflix, etc. The same dev working on a project that a small company launches may only have a $20k/yr impact on the bottom line. It takes a serious amount of usage to create the $2M/dev revenue figure you're quoting, and at that point, how much of the marginal impact is due to the dev vs. the corporate machine that enables him to have that large an impact?
Because there's something you want to make? And it's possible in the long term to ramp up to that point, it's just that these salary expectations make the first few years rather difficult - almost dependent on raising money at the absurd valuations that are currently the norm.
>>The thing is, it's not usually easy to make money at that rate as a small company, especially on the consumer side. That is objectively a lot of money.
This is like saying you want a F1 car, but won't driving fast at all. But you need it anyway. Much of this making money thing depends on knowing how to use people to make money. If you can't use a rockstar or don't even need one why expect them to work for you.
>>they're typically only worth that much when applied to a problem that impacts a huge number of people, as at Google, FB, Netflix, etc.
Ironically, the chances of a somebody good ending up working on something trivial are high in such places. You can easily get 'placed' into some place where your skills can just rot without having any hope of moving out.
So why are companies freaking out at paying over 100k/yr for a full-time person who they can invest in?
That's a good question, but I'm afraid there's a fatal flaw therein. The assumption is that companies want to invest in training employees, but it seems that they don't. Startups don't have time or money to do it, and established big companies that are engaging in collusion on salaries certainly aren't going to spend money on training (or even mentoring) since they are collectively clutching their strand of pearls at the horrific thought of their best employees getting hired away and taking their newly-minted skills to a more competitive business.
1. Needs to have great design 2. Needs to be rock-solid in terms of stability 3. Needs to be snappy to use 4. Needs to be able to handle a Reddit traffic swarm 5. Needs to have individualization and customization 6. Needs to play nicely on computers, tablets, and phones.
That's what standard products are for, starting with hosted Wordpress and going up from there. Why are you building a web site from scratch?
If there is a tech labour shortage, that is to say, too many jobs and not enough employees to meet those jobs, then we expect the price of labour to rise until enough people are incentivized to work. Think the logic behind Uber surge pricing
If there are too many jobs and not enough employees, then you would not at all expect people to be willing to work less than the going rate.
Additionally, you would expect the price to rise first, as the most productive/profitable firms can pay a higher salary and still make money. You would expect the price to rise until a) Less profitable companies stop looking for labour because they won't make money on it; and b) enough extra people, motivated by riches, enter the job market.
The fact that there seems to be chronically unfilled positions at every tech company I've ever seen, would predict that salaries should rise until they're filled. But they don't. We can make a few hypotheses about why this is. For funsies, here's some:
1) Government immigration caps. There is plenty of developer supply out there.... outside the borders. We aren't letting enough of them in
2) Greedy corporations. They simply don't want to raise salaries, because they're soulless MBABots.
3) Skills gap. As many people are pointing out in this thread: Most journalists' treatments of "Silicon Valley worker shortage" seems to be of the formula "There are X unfilled jobs at software companies. There are Y citizens in the United States with certifications A, B, and C. NOW KISS". And yet this is pretty simplistic. Perhaps there is an abundance of (say) people able to do grunt-level IT work, but skilled software architects are in short supply
4) The B Word. Maybe all of these startups and brand name tech companies are unprofitable, and only surviving on investor storytime. Maybe they legitimately can't afford to pay developers more. Maybe we're all going to be out of jobs in a year or two
5) Location gap: maybe there's plenty of talented engineers elsewhere, and they can't or won't relocate to California.
I've seen a lot of 5) where I work. The company that owned our business prior to the current owners had a policy of intentionally hiring local engineering graduates and building their skills. This has held wages in the area below average, I believe, because we have a solid local talent pool who don't want to leave home sweet home (myself included - it's a nice place to live). Part of this is also cost of living - you can get a very nice, new-ish 4000+ sqft house on two acres here for just a bit over $300k.
I'd argue that it is rising - in the form of code schools and accelerators. But, as others have pointed out here, that is feeding dev talent into startups, it isn't fixing the lack of IT talent fed into corporate America. Corporate America reaped what it sowed on that though. And, really these code schools are producing supply, but not necessarily quality.
I don't think the world has fully realized this yet, but there's huge divergence in skill of developers. I know a few developers who are worth $500k/year, if not more. And I know plenty of others who are not worth that, but are easily worth $100k/year. With all of them under the same label of "developer", it can be hard to distinguish what you're getting.
Car example! Imagine wanting to buy a car, but not knowing anything about cars. So you call Kia, and ask how much a car costs, and they say, $15,000. Then you call Honda, they say $20,000. A few others, similar prices. Then you call Rolls Royce, and they say $500,000 and you think they're trying to pull a fast one on you. And to compound this, if you were to list everything that you want in a car, you'd probably come up with something closer to a Rolls Royce than a Kia. So you're shopping for a Rolls, and you've budgeted for a Kia. Also remember, you don't know anything about cars, so you don't know how to distinguish important features (ie. wheels, a functioning engine), from luxury ones (ie. a fancy sound system, heated seats).
In terms of people not being willing to pay the going rate - plenty are! All of the big west coast tech companies pay handsomely for developers. Outside of big cities though, things are slow to catch up. So I think that a lot of the sentiment comes from people not wanting to move to SF or NYC or Seattle, but also wanting to get a competitive rate. Eventually these companies will have to adapt, but it can take time, especially if there are enough people who don't want to leave the city they're in. There's also the quality divergence taking place - as much as we'd all like to think we're good, Google and co. are very selective.
In terms of working for less than the going rate (which as you said is generous) - for sure that's happening. But there's adverse selection happening there, in that people who are taking jobs below market are either desperate and will quit when they find something better, or are of low quality. Developers aren't paid well out of the goodness of the company's heart, they're paid because they make money for the company. And bad developers can have extremely negative productivity even ignoring their salary.
Finally, labor takes time to catch up, especially skilled labor. From no programming knowledge to junior developer at a top company takes typically five years - ie. an undergraduate degree in computer science and some tinkering on your own (yes there are exceptions). And we are seeing supply increase - enrollment in computer science programs is up across the country. Imagine we had a severe shortage of doctors - you can't just suddenly triple the supply of doctors over a couple of years. Now if you have a huge shortage of brain surgeons, which might take a decade or more to train you're in for a lot of trouble.
>In terms of working for less than the going rate (which as you said is generous) - for sure that's happening. But there's adverse selection happening there, in that people who are taking jobs below market are either desperate and will quit when they find something better, or are of low quality. Developers aren't paid well out of the goodness of the company's heart, they're paid because they make money for the company. And bad developers can have extremely negative productivity even ignoring their salary.
I would add two more reasons to that.
1) Dunning-Kruger; the developer is really good but doesn't realise it.
2) The developer isn't confident or knowledgeable enough to know what the going rate is and ask for it. Sort of an overlap with desperate, but perhaps not as likely to move on.
Nit: Dunning-Kruger is actually when you're bad but don't realize it. I think you mean "Impostor syndrome," where you're good but feel like an unskilled fraud. :)
The reasons tend to vary by region, but they still often come down to people playing games with job postings to try to get someone to fill a role that is bigger than what they are willing to pay for. I've had two employers give me a job title that didn't reflect the work I was doing, and allowed them to pay me less than they would with the correct title.
Job postings in my region tend to either have a pay range that looks like it belongs on a posting which requires 5 fewer years of experience, or they put something into the requirements as a "must-have" skill that would normally bump the rate.
Another part of the problem is that much of the educational system has put itself into the position of job training instead of educating when it comes to development and systems/network administration. It is often difficult or impossible to find a good curriculums for administration. Computer Science curriculums often choose languages based on the insistence of employers that those languages are necessary in the job market (though the average lifespan of some languages in the job market is less than the average student spends getting a BS in Computer Science).
Meanwhile, employers often mistake experience with a given language as a higher qualifier than overall development experience and ability to learn and adapt what you have learned in one language to working in another. This seems like it should be especially relevant in web development, since full-stack developers have to be familiar with front- and back-end languages, markup, stylesheets, and often at least a little SQL.
Finally, there's high turn-over and the ever-present revolving door positions. I've met far too many people who go back to school to either get their MBA and move into management or to get a degree in something else just to get out of the field completely. People get stressed out, treated terribly, and often feel like they have to completely re-learn their job every few years to maintain basic skills. After 5 or 10 years they may reach the salary cap for their job title, and they may have no opportunities for upward movement in a technical position. A new person might come on board to do nearly the same job, sometimes with the same (or more) pay, while being less qualified and less capable.
All of these things still trend in one direction, though: employers undervalue an applicant's overall experience while over-emphasizing a combination of skills which isn't often found in one person, all because they not only aren't willing to pay the going rate, but don't even want to hire enough people to do the job.
> All of these things still trend in one direction, though: employers undervalue an applicant's overall experience while over-emphasizing a combination of skills which isn't often found in one person, all because they not only aren't willing to pay the going rate, but don't even want to hire enough people to do the job.
Great summary of the situation. This "shortage" is self-imposed.
This is a great comment. I think the part about employees reaching the salary cap and then going to business schools is particularly true. In fact, I've seen it go 3 ways:
1) smart person reaches salary cap and gets tired of software, goes to business school and comes back as either product lead/CETO/VP etc.
2) smart person reaches salary cap and has tremendous amount of software engineering/design experience, uses experience to get a VP/CTO position in another company with better prospects.
3) smart person does not take time to update his skills, has done lots of work but still does not have insight to architect/design complex systems. Faces unemployment. (Sadly, this was one of my former co-workers)
> we want this crazy exclusive unicorn skillset that about a dozen people in the world have
Can you elaborate on this? Some specific examples?
My hypothesis is the reality is that much of technology has become commotitized...and peoples' expectations for what they need don't line up with reality.
Previously, this has to do with experience: We want to pay a senior java engineer with 10 years experience $75k. Rarely does it have to do with "skillset" outside of experience, as far as I've seen anyway.
Hm. I don't know if it's a new shortage or not. But I'm currently hiring and finding good developers/engineers that are also a culture fit is pretty difficult. I guess it has always been this way since I moved to SF (~5 years ago).
[edit]
To clarify on 'culture fit' in my statement:
Interesting, inspiring, nice, humble, pleasant to work with, eager to share knowledge, discover new things, understands our audience, who we are, and genuinely wants to further the vision of the entire startup.
These are people that are going to help elevate the group together. I don't look at engineers as simply a commodity that can be replaced at a whim, but rather part of a symbiotic system that must transcends itself, grow, and evolve together in time.
> I guess it has always been this way since I moved to SF (~5 years ago).
Are you accounting for the skyrocketing cost of living of SF? I'm guessing that (as the article suggests as a general case) there are plenty of good developers but they just plain want more money than you're offering.
This is the difficult part. How do you accurately price for this market. I've tried salary searches across whatever job boards I have access to, but how can one be certain?
About 10 yrs ago we were interviewing candidates for a C# position. 10 mins. into it, Gandalf (the Grey) sitting in front of me was nonchalantly knocking answers out of the park in an as Gentlemanly manner as possible. I was done with about 15 mins. to spare and he filled in the gap as he talked about his experience with Multics! In passing, the candidate had mentioned that he kept 10 min. logs of everything he did as a productivity tool. This got blown up into possible OCD issues by the team lead and hiring manager and Gandalf got denied. The reason given was that he was not a "culture fit". In reality, the team lead was an insecure egomaniac and the hiring manager deferred to the lead (it was his team). So it would be great if you could drill down the "culture fit" rejections to something very specific.
Economically speaking, if the market is allowed to set the price, then shortages don't exist - the supply and demand curves cross. For example, if there were only 10 box folders in the world, you could get one if you were willing to pay more than about anyone else, hence no shortage.
But from a pragmatic point of view, if the price is higher than you can reasonably afford to pay, then there's a shortage.
As long as CEOs of the companies screaming that "there is a shortage and we desperately need H1Bs" have compensation packages that could pay for thousands of engineers I'm going to just go ahead and assume they've decided where their priorities lay.
This is a very simple, basic argument that I've never seen addressed by people who want to bring in more foreign tech workers (for hiring purposes and not entrepreneurial ones) - the concept of a "shortage" of something in a free market is not a coherent one - it can only be addressed by supra-economic arguments. But no one ever wants to clarify what those are.
The typical Econ 101 view of supply and demand is a static model. It neglects time. Surpluses and shortages should be possible in any but the most trivial of dynamic systems.
I'm not an economist, but I imagine an analogy to models of feedback systems that exhibit unstable behavior. Only the most simplistic systems can be made unconditionally stable.
Sure, but in the US economy you can always get more "worker utils" by just paying more money. If you can't do that or you don't want to, then it's tautologically not worth it to you, so why do you want to hire them in the first place?
Think of a world in which there are only 500 computer programmers and how much poorer that world would be compared to our own. I think the US economy would be healthier with many more computer programmers, so in that respect I'd say there's a shortage.
A shortage occurs whenever quantity demanded is greater than quantity supply at the market price. More people are willing and able to buy the good at the current price than what is currently available. When a shortage exists, the market is in disequilibrium.
Over time, the good will be replenished and the shortage condition resolved.
> More people are willing and able to buy the good at the current price than what is currently available. When a shortage exists, the market is in disequilibrium.
My argument was that in this situation the price should rise, reducing demand.
I'll try. A shortage is when supply is sufficiently low and inelastic that consumers cannot satisfy an (appropriately defined) base level of consumption.
For example, in 2008, the supply of food dropped in Haiti. Prices rose to clear the market, but there was literally not enough food for survival. Many people ate dirt instead, what might callously be called a "substitute good" in purely economic terms. Of course this was a very serious and tragic food shortage.
What would a labor shortage look like? Specialized labor has an inelastic supply: you can only train workers so fast. In 2011, Georgia passed an anti-immigration law, and saw a huge drop in skilled agricultural workers that they could not hire enough. When $140 million worth of crops are left to rot in the fields, you've got a labor shortage.
I'd call it a serious shortage if, say, there were not enough IT workers to maintain the Internet. We're nowhere near that point.
A shortage is when people can't obtain something they need.
If there is suddenly only enough water to hydrate 3.5 billion people, and prices quickly rise and water is distributed to the people who can afford it, do we not have a water shortage because 3.5 billion people cannot afford to drink? Or do we say, "The market is working efficiently, the concept of shortage makes no sense".
There's also the imperfect nature of the market. I believe during the recent hops shortage, there were brewers unable to get hops at any price because of distance, communication, time, etc.
Which reminds me, I don't know where this falls but suppose you want hops and all the hops have not just been sold but used. You have to wait until next harvest. Is that not a shortage?
> A shortage is when people can't obtain something they need.
I need a private jet. I can not obtain one. Does that mean there is a shortage of private jets? Maybe I can insist that there's a shortage of private jets "at a reasonable price?"
Of course you can. Maybe not buy one outright, but you can probably charter one for $8000-10000 for a short round trip. Sure it's not cheap, but $10000 is definitely within the realm of what anybody with a decent job can save up for/borrow for something the really need. Most people who feel they really need a car for example manage to spend that sort of money and often much more.
Or perhaps you actually didn't need to private jet.
Your example is wrong. Outside of short-term supply disruptions caused by natural disasters or violence, commodity shortages only ever occur when corrupt and incompetent governments fix prices below the market rate. We're running out of water in California because the state and local governments practically give it away to farmers who do silly things like growing water intensive crops in the desert.
The problem is that the supply curve is essentially vertical in the short-to-medium term. So even if companies are willing to pay more (trust me, many are, even if it's not quite as high as I think it should be), they won't necessarily get more workers.
Also, this is compounded by the shortage being of senior/experienced developers. As a hiring manager, I get dozens of resumes from new college & bootcamp grads every day. But we're not hiring fresh grads—we're looking to hire a few excellent senior developers, and they come along once in a blue moon.
It'll probably take at least 10 years for domestic supply to catch up to domestic demand (I estimate it takes at least 10 years of development to become a senior dev). So even as pricing signals push more students to study CS, the supply won't catch up for another 10 years or so.
So in the interim the only solution is to import foreign supply.
You just want them now. If you needed them, you'd pay what it costs to get them. Meanwhile, plan ahead for your future requirements. If all you need is webcrap, you don't need 10 years of experience.
> You just want them now. If you needed them, you'd pay what it costs to get them.
We do. We've literally never had an offer rejected. The problem is just that there simply isn't a supply of candidates worth making offers to.
As for this nonsense that we should somehow be training developers 10 years from now, that's just ridiculous. 95% of startups won't last 10 years and if we build our whole HR strategy on a 10 year pipeline we'd be dead.
Your HR strategy is already dead. Over-biased on the desire for the "senior/experienced developers". Meaning that your organization and the thousand others like yours perpetually create this apparent "shortage," since all "senior/experienced" had to start as "new college & bootcamp grads". Since there are rather few moments where organizations are willing to take the chances on the "college & bootcamp" types, there will of course be fewer moments where future "senior/experienced" ones are sown.
Hell, screw "college & bootcamp" types: how about engineers like me, who have 10 years of valuable but unconventional/niche experience? I can't get the time of day from any of these companies bitching and moaning about "shortages"[1] because I don't have the right buzzwords in my background. I'm right here, I'm willing to move almost anywhere for an embedded development position, and I'm being ignored.
[1] I could be wrong on this; the companies I am trying to contact may not be the ones whining. Reading the conversation here and at /r/cscareerquestions though gives one the impression that this is a pervasive problem.
> I'm willing to move almost anywhere for an embedded development position
There's the problem. There just aren't that many people looking for embedded software developers. The companies complaining about a shortage are mostly building web & mobile software—if you were willing to consider that field, I'm sure more opportunities would open up.
That's completely wrong. There is a large latent supply of labor. I have met many former software developers who have moved on to other fields (or become stay-at-home parents) who would be willing to return to software ... at the right price.
The problem is when you let a corporation whose sole motivation is profit define the word 'reasonable'... and maybe collude with a few other corporations to define the word 'reasonable' amongst themselves and agree not to have each other compete for the same employees which would cause their salaries to become 'unreasonable'... and then allow them to pay off politicians to be able to import much cheaper workers who are much more 'reasonable'.
> “It seems pretty clear that the industry just wants lower-cost labor,”
It does, but that's not the issue. There is a shortage of good and qualified tech workers. Tech companies simply can't afford to pay whoever $120k/yr if their technology doesn't work.
So whose fault is it there isn't a lot of qualification? Workers or Employers? What I've found hiring people into my organization is that there are many, perhaps dozens, of ways in which people develop software, all with a great analogy name from 'waterfall' to 'agile' to 'pair' to 'artisnal' to 'hacking' and back again. They come with different ideas about what is expected of the engineer and what is expected of the manager. Have a standup meeting every week? Great, what are you achieving by that? Getting everyone on the same page? ok, but what about the guy off site? How about folks who work best in quiet offices, or those who work best in a noisy free-for-all, do you playfully criticize each other over bugs or do you have elaborate silent shunning rituals.
The reality is that everyone I hire seems to come from a different school of training about how to be effective at programming, what does that say about qualification? This last job of mine has been my first extended stint at managing engineers and I have learned so much about what folks can and cannot be expected to understand or know before coming to the company. It has given me a lot of appreciation for the intake process that I didn't really have before.
The shortage of competent technical managers is massive. If you have the bare essentials of communication and project management skills, plus tech and have a good network to bring developers in - you're getting your email box torn apart with offers at the moment and wages are insane.
The real tech shortage is in project management, VP Engineering, product management, experienced multi-stack or vertical developer roles. It is really far from indicative to compare all of STEM.
The problem is that managers are not hired for technical competency. They are political operatives. They are hired 100% based on the political system they are hired into. The reasons are in no way as noble as understanding software development. For instance, they might be hired because they make their boss look more important. They might be hired to conduct layoffs so their boss doesn't look evil. They might be hired because they are indentured h1b's themselves and have to do whatever their boss wants. No one has ever asked whether or not a management hire is technically competent and it doesn't really matter if they know anything or not.
I've been seeing a version of this every month for past 10 years or so.
H1B in my view is new Ellis Island. Stopping H1B == Stopping all immigration to US. People often say they support legal immigration but don't support H1B. What are the other alternatives to H1B to immigrate to America?(I am not talking about Nobel Laureates or Olympic athletes, I am talking about common folk who showed up at Ellis Island).
Immigration is one of those things where everyone who got in wants to shut the door behind them.( "I(or my ancestors) got a shot at a better life, fuck you the door is now closed.")
Even your neighbors cannot enter the lottery. Canadians are pretty dang close to Americans, lots of us have family on both sides of the border, we speak the same language, have very similar media, similar education systems etc. etc.
And yet we're not allowed to come to your country for much more than a few months at a time.
Oddly we _are_ allowed to get a TN visa, in some circumstances, build up some wealth over a 3 yrs span and then we're promptly booted _out_ of the country with bags of money instead of being allowed to stay and spend it. strange strategy.
Local media tends to send accusations of just that towards tech workers: "They're coming here with a gold-rush mentality, making the big bucks, and then leaving to somewhere else, leaving all the gentrification problems behind".
Wellp, I'm not going to deny my intention. But the big "VALID UNTIL AUGUST 2016" sticker in my passport kind of decided this for me
Does the TN really expire after 3 years? My (American) boss has been working here in Canada for at least 5, and he is cheerfully uninterested in becoming a permanent resident. I guess he had to renew once or twice, but it doesn't seem like it was much of a hassle for him.
You can get TNs good for 1 year or 3, but you can technically renew your TN status as many times as you want. The downside is that TN status is strictly for people with "non-immigrant intent" and if a border agent believes you have immigrant intent when requesting a TN or entering America with one, they can revoke it/deny you entry at their discretion. So a 3-year TN is fine, maybe even a second one, but if you've been in the US on a TN after 8 or 9 years you're probably going to get some trouble.
> What are the other alternatives to H1B to immigrate to America?
Realistic alternatives for any common person? None. You could apply to the DV lottery if you're born/from an eligible country but if you're from an ineligible country, that door's closed.
Australia's immigration policies appears to be lot more open than America's. As long as you have certifiable skills, and have stayed here the mandatory amount of time, you are almost guaranteed a permanent residency, after which point you are almost guaranteed a citizenship.
I believe the gp is referring to the conversion of a 457 (temporary residence, sponsored by employee, much like a H1B), to PR. This can be requested at any time.
Prior to approx. 2010 (IIRC), this was a pretty standard way for people to gain PR. Rules changed in 2010 to make this route more complex/involved.
No, that is incorrect. The United States is the only G7 country that doesn't have straightforward, non-lottery ways to obtain permanent legal residency and work status. In most developed countries the idea of a non-immigrant work visa is extremely limited; once you are in the country you are accumulating time toward obtaining permanent residency.
The US immigration system is a series of exceptions and loopholes, if you investigate the process for immigrating to any other G7 country you will find that there is a general "skilled migrant" category with some basic requirements (such as education, language proficiency, good health) that more or less guarantees eventual citizenship once obtained.
H1B is the opposite of Ellis Island. Immigrants who came in via Ellis Island were generally legal to live in the United States, work for whoever would hire them, and eventually become citizens. H1B holders are legally tied to a sponsoring employer, which reduces their ability to bargain in the job market, thus keeping their salaries how.
The other alternatives to H1B would be allowing more people to move to the United States and get green cards.
This is true with almost anything that is scarce. Immigration just being one of them. Wealth for example, Wealthy don't like a lot of people get wealthy. I have a rich friend whose discomfort gets plain obvious whenever he sees some one poor make it big. Why? These kind of people feel only reason why anybody should get anything is by being born into it.
Getting something through hard work is taken as barging into their elite club though unnatural means.
In general people love the idea of getting lucky, benefiting things out of no effort of theirs. And don't like it when others get the same benefits. Immigration is something similar. Once you get lucky, you like it that you are now ahead of the crowd and like you newly acquired status, you want it kept premium and limited to you.
Its like watching your cousin become a millionaire while you and he both had access to same resources.
> "The real issue, say Salzman and others, is the industry’s desire for lower-wage, more-exploitable guest workers, not a lack of available American staff. 'It seems pretty clear that the industry just wants lower-cost labor'"
That has to be BS. Industry leaders and investors want to expand the labor pool in the name of diversity, not to suppress wages. It's all about justice, not profits. Someone better flag/kill this article, I'm offended.
You must have missed the revelation back at the beginning of the year that some of the biggest players in the tech world were caught in an illegal cartel to suppress tech-worker wages. So, there's that.
I've had some rather amazing opportunities that came without a salary range in the initial email. Using that as the primary factor is surely suboptimal.
I agree, but having to spend the time on the phone with them or writing up a crafty email where I actually don't use 'hello $NAME' just to find out the salary range would be nice.
Definitely true, but if America can't figure out basic rights like privacy there will soon come a time where it doesn't matter how many H1B visas are issued.
However, in light of recent corporation missteps like the Google and friends wage suppression scheme, I don't think gifting them a bunch of cheap labor is the right choice.
edit: Clarification. I am referring to privacy breaches causing a lack of trust in American tech companies by consumers, not whether they will be able to hire foreign workers.
> “There’s no evidence of any way, shape, or form that there’s a shortage in the conventional sense,” says Hal Salzman, a professor of planning and public policy at Rutgers University. “They may not be able to find them at the price they want. But I’m not sure that qualifies as a shortage, any more than my not being able to find a half-priced TV.”
I'm not sure how many developers Hal Salzman has tried to hire, but I find a lot more of them are weeded out at the "seeing if they can code their way out of a wet paper bag" stage than at the "salary negotiation" stage.
Given the ridiculous technical and interview "requirements" that have been part of tech for the last several years I'm inclined to have as much sympathy for your statement as I do for companies complaining about tech worker shortage. Companies want ridiculous breadth of expertise (the ubiquitous "alphabet soup" listing of technologies), graduate level understanding of often irrelevant and unrelated algorithms and data structures, and a host of other absurdities for things like putting together a damn online shopping cart or, worse, a to-do list.
Most people can't FizzBuzz. That's not ridiculous breadth of expertise.
My basic filter question was always this: in any language you know, write a function that reverses a string. No tricks, no gotchas. Any reasonable solution will be discussed briefly and then we'll move on to discuss other things.
But a shocking fraction of people -- even ones with CS degrees from fancy schools -- would spend 30 minutes stuck trying to write that function.
That's what I think of when I hear "can't code their way out of a wet paper bag".
Well what did you expect? CS education is usually mostly theoretical and not about practical code construction. Would you interview a Physics graduate and then complain that she didn't know how to design a bridge?
In the early days of computing IBM hired candidates with the right aptitude but zero programming skills and then trained them. It Worked out fine.
Writing code to reverse a string is more like asking a Physics graduate to calculate how long it takes an object to fall 20 meters once it's dropped.
In the year 2014 there's no excuse for having "zero programming skills" if you're looking for a job programming computers. We all have computers, it's not like you can't practice on your own time before expecting someone to pay you for it.
My point was that there is little correlation between practical code construction skills and possessing a CS degree from a fancy school. If that's what you're looking at then you're focusing on the wrong market signal.
And we do have existence proofs that businesses can succeed by hiring candidates with the right aptitude but no programming skills and then training them. For example see IBM a few decades ago or Zoho today. If you don't want to do that then you have no right to complain about the market supply of skilled developers.
"Irrelevant and unrelated" to what? They can be, in certain circumstances.
I'm not arguing that there are no people trying to get developer jobs who have no business doing it, or that it's always inappropriate to ask algorithms or data structures questions. I'm arguing that there is an overemphasis on trivialities, minutiae, and irrelevant details.
And that's irrelevant to my point, which is that before you can even get to trivialities and minutiae, the candidate has to be able to code their way out of a wet paper bag, and a surprising number of them can't.
That "a surprising number of them can't [code their way out of a paper bag]" does not imply there is a shortage of tech workers, nor does it reveal anything particularly interesting about what you consider a "wet paper bag" to be. What is interesting is that based on your prior comment you believe certain things are universally useful and pertinent in a programming job, which is contentious and unsubstantiated at best. And that was rather my point.
I think the ability to write code is universally useful and pertinent in a programming job. A shocking number of people fail FizzBuzz. That's what I mean by "wet paper bag".
It's really startling (as a mostly self-taught software engineer, with a bachelor's in history and a minor in Computer Science) how few people with computer science degrees are actually capable to code anything that would compile and run correctly. I've interviewed software engineering applicants that couldn't figure out how to implement a recursive fibonacci number generator... And regretfully, we hired one of them, and in two years, he has progressed so little in skill that I've reached the point of just trying to shunt him into work that doesn't matter, since experience has shown that he takes weeks to produce broken, badly performant code, that I can fix/implement from scratch in a couple of hours and a handful of google searches.
And even that is a level of quality below what some more demanding employers will ask for. In my experience interviewing, if you implement a recursive fibonacci number generator, you better memoize it because the recursive fibonacci by itself is one of the worst algorithms. I favor the iterative (and also, that question is such a cliche I haven't ever actually seen it seriously asked).
And that's precisely why I asked it... If you can't recall one of the cliched, stock examples that is always trotted out to explain the concept of recursion, then I have to flip on the bozo bit.
And why would I want to store in my head a terrible solution to a problem that I'm literally only had to think about once every eight years or so in a random interview and the first time I was taught it 14 years ago in college? It's something I've never had to use at work, and I've put together dozens of full applications over the years.
That being said, I could probably still come up with it, but I encounter this problem when I interview sometimes.
People will ask me to recall something we covered for ten minutes back in college that I've never used since and could easily Google in five minutes if I ever did need to use it, and then they go... "ooooh, he must not be very good..." when I can't instantly spout out the solution from memory in thirty seconds, and might not be able to picture it clearly in my head without writing it out or spending a few minutes thinking about it, possibly even writing some quick code to see what happens, like I get to do whenever I'm actually working and on the job.
Most recently I got that with a combinatorial function (write a function to come up with all possible combinations for blah). I was having a hard time picturing how it would show every combination in my head, including in a jumbled order. I could figure it out if I could hack away at the code for an hour, and I remembered going over it briefly in college, but I've never needed to do it in my personal or professional projects since, and so it wasn't fresh in my head. The feedback I got was they were passing on me because I got that one question wrong. I'm perfectly competent and could easily handle the job, but because I didn't study every possible algorithmic and non-algorithmic question I could possibly be asked in the three days notice I had before the interview, tough.
I'm more a fan of seeing the results of people's work than asking them trivia over a field whose sphere of knowledge keeps doubling every five years that they can't possibly store every single thing in their heads at all times.
Well, the reality is that every company is becoming a tech company.
Text Book Publisher -> E-learning Platform
Mass Marketing -> Mass Emailing
Hotel Booking -> App for Hotel Booking
While there probably is no shortage of tech workers, finding ones that aren't going to mass-code unreliable software then leave the company is fucking hard.
> Further, he and his co-authors found, only half of STEM (science, technology, engineering, and mathematics) college graduates each year get hired into STEM jobs
Maybe those graduates aren't any good.
> “We don’t dispute the fact at all that Facebook (FB) and Microsoft (MSFT) would like to have more, cheaper workers," ... “But that doesn’t constitute a shortage.”
I'm not really sure how that squares with the fact that only half of STEM graduates were hired. Why didn't facebook and microsoft just offer those graduates cheapo salaries?
Because most of the time, these workers aren't interchangeable cogs. A degree doesn't mean you can do work in the industry effectively. Maybe there are billions of STEM graduates, but if only 100 can do the job, there's still a shortage.
> > Further, he and his co-authors found, only half of STEM (science, technology, engineering, and mathematics) college graduates each year get hired into STEM jobs
> Maybe those graduates aren't any good.
In my experience, it's because companies don't want to pay to train somebody in all the basics of office work. New grads (especially STEM grads) don't know how to run a meeting, write a status report, or do a thousand other things that a modern company requires. Instead they list job openings for two or three years of experience and hope to profit off of somebody else's investment.
Companies tend to have special intake systems for college graduates. Plus, a new grad shouldn't be totally clueless in terms of how to work in an office; they should have had at least one internship.
Microsoft is hiring plenty. Go to https://careers.microsoft.com/search.aspx and search for software engineering jobs, the result is "only the first 500 results are shown."
Broad layoffs like what Microsoft did often serve as cover for divesting from product areas or culling dead wood (despite many US states being at-will, it can be surprisingly difficult to fire someone who isn't performing at a large company).
We add immense value, yet we seen almost none of the profit of that value. Underpaid to say the least-- especially considering the value of money has steadily declined (overall) since 1972.
I saw a number someone quotes in a comment of _$120,000_ but it doesn't go as far as it did in the nineties. Realistically, that wage should be closer to $180k or more now-a-days-- but it's not.
Plus the real moral of the story is: your business is either capital intensive, or labor intensive. Software Tech isn't really capital intensive (per dollar) but is extremely labor intensive.
If tech companies want more talent perhaps they shouldn't build their campuses on some of the most expensive land in the country. That'd probably save a lot right there.
I'd be willing to bet Facebook wants more H1-Bs because it helps their bottom line (decreasing costs), which increases their profit margin, which increases their stock price... A dollar saved, is a dollar earned-- ask an accountant.
> We add immense value, yet we seen almost none of the profit of that value. Underpaid to say the least-- especially considering the value of money has steadily declined (overall) since 1972.
You will be paid in technology in financial services [if you are worth it].
The parent claims tech workers are underpaid. The thesis of my statement is that if you are a tech worker in financial services, you will be paid fairly. Just because some parts of the market may be dislocated does not mean there are not fair paying jobs to be had.
>If tech companies want more talent perhaps they shouldn't build their campuses on some of the most expensive land in the country. That'd probably save a lot right there.
It's expensive because it's desirable. Much of today's workforce doesn't want to live in the suburbs and drive to an office park. Living in a vibrant urban area is part of compensation for many.
He's not really talking about a vibrant urban area. He's talking about a more expensive office park, and a place where a six-figure income isn't getting you ahead because of the cost of living (especially if you have a family).
I'm increasingly agitated by these commentators on the topic, who have absolutely no idea what the ground reality is. Frequently, as in this case, they also seem to conflate two different problems: shortage of IT workers and shortage of software developers.
A software developer cannot be asked to manage a linux database; I mean she can, but that is not what she is good at. Conversely, an IT person cannot be asked to architect the backed of a payment gateway system. Of course there is some overlap (devops is what comes to mind). I'm guessing that most of FB/MS employees are probably developers, so when they mention IT workers in the same breath as shortage at FB/MS, they are exposing their ignorance.
Furthermore, the paper itself seems to be published as a "report" on the page of a dubious organizations. Come on journalists, please do some actual journalism! Ask more people than those who confirm what your story wants to show. Find and determine the truth of the story; that is what you are paid for!
Maybe I've just been lucky with the coworkers I've had, or maybe the problems I've been working on aren't as hard as they seem, but in all the jobs I've worked we have never needed someone specifically trained on how to (per your example) manage a MySQL database running on one or more Linux systems. I think I'd argue that any mid-to-senior-level developer who can't manage to figure it out in a few days is underexperienced or undereducated, where "database use" is within their domain.
Most of the software we use hasn't existed long enough for real specialization. Hell, there are still people who were alive before software existed.
If you ask me, the real problem was whatever legal technicalities allowed vendors to create certification programs for "experts" using their own software.
> maybe the problems I've been working on aren't as hard as they seem.
Most likely this. When you have a horizontally sharded MySQL database that spans multiple datacenters - managing replication, failover and scaling out is not something you would expect most developers to be able to handle.
Let alone fine-tuning various kernel parameters, in depth monitoring and other performance tunings.
EDIT: Sure most experienced developers would have a high level and abstract idea about various things that may be outta whack - but it takes some one with expertise in the field to go beyond guesses.
It's not so much that the developer wouldn't eventually figure it out, but more that the sysop would already know how to do it, saving time (and errors).
Why would you waste the time of mid-to-senior level developers on managing MySQL databases?
Managing databases is an operational overhead. You want to minimize expenditure on it. Developers create IP. You want to maximize investment into that.
Yup, invalidating by dint of the source is just classic ad hominem. That's especially problematic here since - in this case - the unions actually have a point.
If tech companies were less focused on H1-Bs in particular, and were simply advocating for more high skill workers to be given green cards, I'd have an easier time taking them at their word. But they're not. They only want people admitted under terms that strip them of negotiating power, and there's no publicly defensible reason for that.
I mean, the optics are just terrible. In the long run, I don't see how this doesn't come back to bite the companies involved.
And how does one get a green card in this country pray tell? One need to have an underlying immigration status in this country while you begin your decade long process for a gc.
You don't need to have an underlying immigration status in the US to start the application (according to a lawyer I asked this question). And it takes a decade only if you come from India (or other country that provided a large number of immigrant). For many countries it is a matter of months.
In all but the most special/uncommon cases it's likely to take more than months (unless you also consider 9-12 months to be a matter of months). I know many, many engineers who have gone through the US immigration process. Some had good experiences, some had bad ones, but I don't know anyone for whom the entire process took a matter of months - and their employers are the sort who would spend quite a bit of money to move things faster if they could.
For employment-based green cards you generally have to get PERM labor certification (where the sponsoring employer literally advertises your job and has to show that there aren't American citizens/green card holders who can do it). That takes a while on its own (weeks, generally months).
Then depending on your education/experience, you get a date which corresponds to your position in an immigrant visa queue. The more education/experience you have the higher the queue you can sit in, and it's done by birth country (not citizenship). There are separate queues for China, India, Mexico, Philippines, and "everywhere else." If you have a graduate degree, significant job experience directly related to the US position, or some skill the lawyers can pass off as highly rare/sought after, you might end up in the EB-1/EB-2 queues which are quite short (if you entered the queue today you'd already be at the front). In which case the processing time might only be a few weeks/months.
Or you could end up in the EB-3 queue (bachelor's or equivalent experience a.k.a. many software engineers). Right now people who entered the queue 2 years ago are at the front if they're not from China/India/Mexico/Philippines (http://travel.state.gov/content/visas/english/law-and-policy...), 4 years ago for China, and 11 years ago for India.
Once you get to the front of that queue, you need to "adjust status" which means a physical exam, fingerprinting, and other busy work none of which appear to be based on country of origin. You could end up here for a few months or over a year, it's hard to know until you find out what USCIS service center is processing your case and can look up historical data. Until you get to the end of this you're technically still bound to your employer though there are some loopholes. Adjustment of status can take sufficiently long that the government passed a law in 2000 allowing green card petitions in this state to be fully portable across employers after 180 days.
That is not my primary point. The point I was trying to make is that the journalist has interviewed one author of a "paper" that is published as a "report" on a biased organizations website. In short, he is trying to feign an appearance of rigor and research where there is none.
There's a list that US Immigration and Customs Enforcement provides http://en.wikipedia.org/wiki/STEM_fields#STEM-eligible_degre... and it covers "physics, actuarial science, chemistry, biology, mathematics, applied mathematics, statistics, computer science, computational science, psychology, biochemistry, robotics, computer engineering, electrical engineering, electronics, mechanical engineering, industrial engineering, information science, civil engineering, aerospace engineering, chemical engineering, astrophysics, astronomy, optics, nanotechnology, nuclear physics, mathematical biology, operations research, neurobiology, biomechanics, bioinformatics, acoustical engineering, geographic information systems, atmospheric sciences, educational/instructional technology, software engineering, and educational research".
If you wanted the research to sound dramatic, you could then require the S part of STEM to include all of http://en.wikipedia.org/wiki/Branches_of_science and quickly jump to a conclusion that just because somebody with a sociology or meteorology major had trouble finding good work, domestic tech companies should be barred from bringing in more STEM majors on H1-B.
That H1B is a mechanism for importing cheap labor is a fact, regardless of the messenger. Studies have been demonstrating this going back nearly a decade:
I thought everyone in tech knew this as a fact already? I know most of my colleagues have experienced it. One of the last big teams I worked with in corporate years ago... after I left most of them were fired and about 1/2 the jobs were shipped overseas and the rest were H1B imports they brought into NYC making about 1/2 the salary.
In a sense that your employer needs to file a Labor certification application, determine the prevailing wage and ultimately USCIS granting your petition. It takes a while to get it all done.
Transferring an H1b is really not that hard to do. We did it for less than $15k or so and a few weeks of back-and-forth at my last startup. Don't be put off by the process.
It's a bit hard to get a clear impression from this discussion about the amount of difficulty for transferring between employers on an h1b. Can anyone who has been through this process more than once (either as an employer or employee) shed more light on this please?
TLDR : lose your job or quit, and you lose your visa. Zero grace period (laid off/quit on Friday, illegal immigrant by Saturday).
Although the regulations do not provide a grace period for unemployment between H-1B employers, USCIS generally approves petitions to change from one employer to the next and considers you to have maintained status if the gap is 30 days or less. CAVEAT: your (new) employer is the one that has to request the change, so if your new employer isn't organized to do this, or doesn't want to, you're in the country illegally and won't get paid.
So there's a "the administration hates congress" grace period of 30 days. After that, you actually have to leave the country and cannot start work somewhere else.
I completely agree with your assessment that software engineers aren't exactly fungible, but I also don't think the authors of this paper are wrong. Salaries really should be much higher than they are.
If companies started paying 2x-3x current rates they would start attracting very senior people who would spend the time necessary to retrain for the positions paying a lot more.
Also, at 2x-3x the rates, some business models would cease to be viable, freeing up the developers working on those businesses to be available for hire by the companies rating in the dough.
We really haven't begun to scratch the surface of trying to fix this problem by being more competitive with salary.
how many people does FB, Ms and Google need? Why not just start a scholarship program for high schoolers, boom more typists in four years. this h1b nonsense has been going on for at least the last twenty years.
I was pretty surprised at the level of skill that the hired programmers at my company had. And I imagined it was because it's just hard to find anyone. But I'm not sure if it's just a Montreal Canada problem where the talent left for elsewhere or if the quality is just never good.
This is very correct. I feel in East Coast and other parts of US besides California companies are underpaying their engineers and expect to get talented people for a low annual salary. From experience this is especially true in New York City where engineers in big banks get underpaid a lot and could earn double the salary if they worked in California.
This is very correct. I feel in East Coast and other parts of US besides California companies are underpaying their engineers and expect to get talented people for a low annual salary. From experience this is especially true in New York City where engineers in big banks get underpaid a lot and could earn double the salary if they worked in California.
I think several people mentioned this separately:
Yes I agree there are no shortage of people with CS degree the question is 1) Can they code their way out of an interview. Turns out many people can’t, even though they held a “senior” title in another company. They can’t solve a simple linked list problem 2) Living cost of where the company is hiring 100K in Atlanta goes farther than 120K in SF or in Seattle. I can rent a 2 bedroom town house in a good neighborhood in Atlanta for 1200$ Vs. you MAY be able to find a 1 bedroom apartment in Seattle for 1700$ – 2000$. 3) Some companies have very unrealistic expectations, they want a person with all the experience in the world, which is just not gonna happen. Personally if I am looking at a candidate I will look at how he approaches a problem, I will throw him some curve-balls and if he can handle it they he will be fine. We are in a world where the technology changes rapidly, a tech/language/skill-set that is popular today might not worth a dime tomorrow. If you learned how to learn and adapt you will be fine.
At a previous company I interviewed hundreds for engineering positions (Ruby & Rails or JS/Backbone.) Our average was 1 offer extended for every 300 phone screens. The problem wasn't that we extended 50 offers and got rejected; money was not a part of the equation. We simply couldn't find the quality we were looking for.
Specifically, coding schools have capitalized on the gluttony of open positions, but don't actually go towards solving the problem. There isn't a shortage of bodies, there is a shortage of experienced developers.
Serious question: Why did it never occur that you might need to take in a less experienced developer and train them? Wouldn't it make sense that there are no experienced developers available because they are currently fully employed?
I work with less experienced developers. They really put a drag on the project. They need to be watched and you have to give a lot of pointers and refactoring suggestions. And then their tasks just don't end up coming in fast enough either. Personally I think I'd learn a lot more if I was working with more advanced devs where I could learn from them than seeing the mistakes I would have made years ago.
So, basically you are saying you want to be the less-experienced dev, but not work with them. I think the prevalence of this attitude is a key part of the problem.
Everybody wants to hire a flying purple unicorn that is a master of "full stack." It seems nobody has time for "jack of all trades, master of some." But knowing only one or two domains is a step on the ladder of programmer competence, and there's no shame in it at all. As other commenters say, you have to start somewhere. And it's incredibly hard as a developer to go from intermediate to truly advanced mastery—there's very little training and mentoring coming from the employer direction (because, as Sweet Brown says, ain't nobody got time for that: anybody who is a real "ninja" is swamped), and therefore the only sane strategy is to take complete responsibility for your own career development, continuing education, and improval of skillset. But that's just another reason why developers should be paid more.
Not sure why this was down-voted. If I rejected over 99% of applicants, I'd start to thinkg I was either looking in the wrong place or looking for the wrong person.
I once posted a job on monster.com and we rejected probably 50 resumes for each one we interviewed. We were looking in the wrong place. At a different job, we had a terrible time trying to find somebody with 10+ years of embedded systems experience in a town that didn't really have that kind of industry. In retrospect, we probably could have found a less experienced person that we could train. We were looking for the wrong person.
Not op, but I am in a similar position and can offer insight.
I am unlikely to hire a candidate who would need training because I simply do not have the time to train them. I need someone who gets things done, can self-train if needed, and who already has the minimum required experience so they have minimum impact on team velocity. Moreover I live in an "at will" employment state, so any money/time I spend training a person can just walk out the door at any moment (something I have seen happen just because a person was offered even more money elsewhere).
Exactly. If the salary he's offering is attracting interest primarily from recent coding-school grads, he's not offering anywhere close to a salary that would convince a good, experienced developer to leave their current job and join his company.
But then you are not going to fill the position with someone unemployed... you are just filling the position with someone that was working somewhere else... which doesn't solve the original issue.
I left software development because my salary was maxed in my market. Rates have not been going up. However, offer me that kind of salary and I'll be back in in a heartbeat.
My point is simply if there was a shortage rates would go up and those in senior levels would stay in their field.
Also, go talk to those doing enterprise software sales, banking, mba degrees, etc. They will all be making more than software developers. So, either there is a shortage or developers are really bad at negotiating their salaries. (I actually suspect both is true, but the shortage is really because folks are looking for perfect match candidates)
In addition to josho's comment, which I agree with, a higher salary would also attract more people into the market. Some people might think $100k+ is already a "high enough" salary to encourage people to join the field, but the fact is software engineering is hard. Harder than most people want to work.
I try to convince people to become software engineers all the time, and I tell them all about the salaries and benefits they can expect, and most of the time they just sigh and repeat that it's too hard.
Also, living in regions of the US where salaries for engineers exceed $100k per year also means incredibly high living expenses, so higher salaries would be necessary to entice people to move from out of the area.
As it is, I know people making HALF of what would be entry-level for software engineers, but elsewhere in California, and they have a MUCH better standard of living than entry level engineers. As in, they own a 3 bedroom house with a big yard, a couple of cars that easily fit into a 2-car garage or can be left in their spacious outdoor parking space, OR on the street where there is no-time-limit parking.
This standard of living could easily run $2M in the bay area (the mortgage payment alone would be more than my friend's salary, before taxes), but can be had for about 1/10th of that elsewhere.
Also, what was the source of these hundreds of candidates? I've personally experienced a situation where all our candidates came from a headhunting body shop where almost all had terrible coding skills and yet management refused to consider candidates from other sources.
I suspect the process of filling the candidate pool was probably broken at your previous company too.
> Our average was 1 offer extended for every 300 phone screens.
1 in 300? are you serious? i have a real hard time believing that. are you literally calling every resume you get? do you know how to filter a pile of resumes?
we are a tiny startup offering normal wages and we are at a 1:5 ratio between offers and phone screens. we might have to interview 10 people to get someone on board.
then again, we don't expect our mid-level ruby and python web developers to answer graduate-level algorithms questions, which seems to be kind of an insane expectation these days among employers who take themselves a little too seriously.
you spent almost 6 weeks (30-45min per screen) hiring ONE candidate for a remedial webdev position?! something other than the candidates is wrong here.
> Asked what evidence existed of a labor shortage, a spokesperson for Facebook e-mailed a one-sentence statement: “We look forward to hearing more specifics about the President’s plan and how it will impact the skills gap that threatens the competitiveness of the tech sector.”
For companies like Google and Facebook, which place such strong emphasis on data in making decisions, its very telling how little data they have presented to support their claims.
I'm still of the mindset that the problem is transportation in the Bay Area. If I had a magic wand and I could wave it and we all woke up tomorrow to a nonstop-bullet-BART train that goes 100mph from San Francisco to Mountain View, Palo Alto, San Ramon, Danville, Cupertino, Daly City, Foster City, Redwood city, San Jose and the Persidio and we had some kind of crazy zipline thing that gets you within 1/2 mile of any location within SF, this perceived shortage wouldn't exist. The problem is salary compared to cost-of-living in desired locations. And those locations are mostly desired, IMHO, because nobody wants to deal with a commute. My LinkedIn clearly states that I won't accept any job outside of walking distance of a BART station regardless of salary.
What I'd like to see is a poll of HN users that look like this:
You want to live in $DESIRED_LOCATION because:
A. I love $DESIRED_LOCATION and want to be surrounded by its vibe 24/7.
B. $DESIRED_LOCATION is a reasonable commute to/from my job.
C. $DESIRED_LOCATION is a reasonable distance between job & loved ones.
There are 65000 H1B visa issued a year (and 20000 more for Master & higher degree holders).
H1B visa is 3 years, extendable to 6 years, with a maximum of 10 years. But I'd think most people don't stay on the H1B more than 6 years.
So there's approximately 65000 * 6 = 400000 H1B visa holders in the US. For size comparison, there are about ~240millions adults in working age in the US. And the possible amnesty from the executive order a few days ago would cover some where from ~4-5 millions people.
I'm not actually sure what's the point I should be making here. I guess it just feel to me that in the grand scheme of things, the number of H1B visas is tiny tiny. It's just incredibly sad to me to see on HN that someone would be concerned about H1B taking over US's jobs (or repressing the wage - which is the same, just lesser extreme than "taking US's jobs").
I'm not concerned about H1B's taking over US jobs. I can understand that labor unions want to push that message in the same breath they decry US immigration laws.
I am concerned that H1B's are indentured servitude. That term has a meaning, and no, it's not slavery, but if you will be deported upon losing your job that's a little more than just "out of a job."
So H1B's are not a fair way to bring in talent from around the world. Not Tech Companies' fault, though, if they hire talented people this way. It _is_ Washington's fault, since they are the ones creating the artificial scarcity in the first place (and turning a blind eye to the actual solutions for such a long time that it can't be ascribed to incompetence).
On the other hand, Tech Companies _are_ guilty of wage fixing. They got caught. Some did the right thing and raised wages. Some didn't. The economy is tough, so the incentives are all there for the company to keep payroll down.
That's not a reason to unionize the software industry. That's just all the more reason to start your own company.
Startups have successfully challenged the incumbents and won, especially in software. It's still open season. Good luck!
Your point may be valid, but the math is a little off. If you're an H1B holder going through the employment-based green card process (which could take anywhere from months to 10+ years), you can extend your H1B beyond the 6 year cutoff in 1 or 3 year increments depending on where you are in the process.
A former boss of mine was on H1B from India (big tech company and he wasn't even remotely underpaid) for 12 years, most of that time waiting for a green card.
This article is ridiculous. As a founder of a small startup in the bay-area, I can tell you it's absolutely impossible to find mid-level engineers experienced with Javascript, Node, Go, RoR, etc.
And if you can, you're paying 30-50% more than just a year ago.
I assume you mean JavaScript and one of Node, Go, RoR, etc. as a server-side language. If you mean the subset of engineers who are proficient in all of those, then that's a pretty small set, but I assume you don't.
What is your standard for a mid-level engineer, and what would their salary range be?
If I were to introduce you to some mid-level or upper-level talent, would you pay typical recruiting fees plus provide some employment security to my associates who pass your hiring process? Some startups have high turnover and I wouldn't want to damage their career if you change your mind after hiring them.
You are trying to hire in one of the most expensive areas IN THE WORLD. Does the compensation you're offering reflect that?
Mid level engineers are obviously not hard to find. But in a market where tons of companies choose to locate themselves, and where the cost of living is massively high, engineers will tend to go where the pay is high and/or the product/tech is compelling enough to compensate for the massively high cost of living. This is to be expected, and has nothing to do with the supply of engineers.
You can always go out of the area and relocate professionals. There are some very talented people outside of the Bay Area who want to move here who can be swayed to making the change.
But if you want good, you better be prepared to create the environment those will want to work in.
The article is rendered worthless by making the same flawed assumptions most of these articles make:
- No one is claiming there is a "STEM shortage". There is a shortage of qualified software engineers. STEM includes an abundance of marine biologists, aerospace engineers, astronomers, and myriad other subfields with poor job prospects that are in no way qualified to fill the shortage that actually exists in other STEM subfields.
- The category of "IT worker" sweeps up a lot of low-skill jobs that have nothing to do with software engineering. Maybe the low-skill jobs are not making great money but software engineers qualified enough to get a job easily make six-figures where I live, and I do not live in Silicon Valley. The oppression and slavery are palpable.
- Training to become a qualified software engineer is not like training to operate a backhoe. It is not just about "being good with computers". Tool chains you can learn over weeks or months, but developing domain competence useful to an organization can take years. By analogy, both chemists and chemical engineers deal with designing chemical reactions, but neither can do the job of the other without a couple years of additional training even though they are both just making chemicals. Most companies will not pay to train a chemist to become a chemical engineer when they need a chemical engineer now.
Every article like this that conflates software engineers with "STEM jobs" or "IT workers" isn't really talking about software engineers.
There is no shortage of qualified software engineers. As a hiring manager I have been able to find as many as I need, at the market price. Anyone can do the same.
The article makes a really common mistake by confusing STEM and coding. A surplus of people graduating with STEM degrees doesn't say anything about whether or not there is a shortage of coders. I only have anecdotal data but I'll bet if you break it down you'd find that there are some STEM majors that have way more people than there are jobs for. This is especially true in majors where you need a grad degree to find real work in your field. I'd also guess that there are more coding jobs than CS degrees due to people coming out of coding schools and other degrees that tend to have a lot of crossover like math.
I would bet 80-90% of STEM grads could be trained to code. If there's a true shortage, train some of those unemployed STEM people up. Invest some money in them.
If they want to learn to code there are plenty of options. Do you expect companies like Facebook or Google to hire a bunch of biologists so they can send them to a coding bootcamp?
Let's assume that they do this and check how the numbers work out. Say the program takes six months and they pay candidates $50000 a year while they're taking it. Google is notorious for preferring false negatives in their interview process to making bad hires so maybe 1 in 10 candidates gets offered a job at the end. The program also costs money to run. They need teaching staff, computers, space, etc. You're easily at over $300 000 and six months latency to get one junior programmer. Alternatively, they could offer someone more senior a $200 000 signing bonus, save a bunch of money and hire someone experienced. Which do you think is a better way to invest their recruiting money?
Move the 1 in 10 filtering up front, before they're hired in the first place. And don't compare jr devs to sr devs since those aren't the same jobs to fill. Even Google has jr jobs.
Writing code is part of the typical interview/application process. The hypothetical people in this process can't write code. How can a company pick which ones will do well before they've been trained?
You're correct that big companies have positions for people at all levels. However, they usually aren't willing to pay more to fill a junior position than they'd need to pay to fill a more senior role.
I'm not sure how you come to the idea they pay trainee jrs more than experienced srs, not without some crazy 10:1 hire:retain ratio.
And I'm confident it's possible to develop aptitude interview processes that avoid 10:1 false positives.
The bottom line though, is this- If there's a genuine shortage, on the job training is a solution with centuries of history behind it. If companies aren't willing to train, they can't be that desperate.
You seem overly hung up on the 10:1 thing. I'll summarize my argument without any numbers: Currently there are cheaper ways for companies to recruit and retain programming talent than paying for their training.
Here's another example to illustrate the point with more realistic numbers. Using the same training program described above and an improved filter a company can get one qualified graduate for every two people it sends through the program. On the first day of work he company has invested $50 000 in this new jr programmer. Alternatively, the company could offer a generous, $30 000-40 000, signing bonus to new qualified jr programmers and pocket the difference. Hey can also structure the terms of this bonus so that it is spread over one to two years to incentivize retention.
There are lots of real world training programs with qualified, motivated students that have high failure/drop out ratios so I'd say 2:1 is reasonable here.
I'm not saying that paid training is a bad idea. I am saying that it doesn't make sense for most companies currently and they will continue to use cheaper alternatives while they exist.
Why not? The English did it when hiring slowed down. There's a company over there that will take Oxford or Cambridge liberal-arts grads and train them in programming and hire them.
I'm not familiar with them. Can you name the company or provide a link?
Investing in employees only makes sense if the company thinks the investment will pay off. Let's say a company views the expected value of an employee at $100 000 a year. Instead of trying to hire someone at that rate they decide to train someone. Training costs money and doesn't always result in someone that can fill the role. Let's say it takes $20 000 to successfully train someone. To break even on their investment the company would need to pay below market rates for some period of time. If they pay $90 000 a year for the next two years we plans to bump the person's salary to the full $100 000 afterwards what are the odds the person will stick around for the full two years? In a hot job market why wouldn't they leave and start getting the full $100 000 earlier?
I'm not saying that the current system works well but I'm not convinced this approach makes sense for most companies.
I know several of the big name consulting companies (McKinsey, KPMG etc.) did that for a while. Their basic thinking being that if you can get any degree from Oxford or Cambridge you're probably smart enough to be taught whatever they need you to know.
I didn't find the program you're referring to in a quick web search but did learn that McKinley has a history of mostly hiring new grads dating back to the fifties. They also have a history of employee stack ranking (they call it up or out) and culling as much as a fifth of their consultants annually.
Neither of the companies you mentioned focuses on tech. Their management and financial consultants. I'm not convinced that you can apply the same plan to programming and get the same results.
No, read the parent comment again. They hired these grads for programming and dev jobs, not as "management and financial consultants." Dagw is correct— they used Oxbridge as a filter and retrained these new hires with great success.
Information technology is much harder than people think. It's so hard that management techniques evolved over millenia of human economic activity just plain don't work when you apply them to computing. Us tech workers take The Mythical Man-Month as obvious, no shit how could software work any other way, but throwing more resources at a problem has always worked to clear it, until now. It wasn't pretty, some of the bridges built like that are probably aren't going to last forever like they were designed to, but it worked.
The reason BigCorps are looking to indentured laborers is not because technology workers are hard to find, but because technology management at scale is horrendously inefficient, but being managers, they don't really know that. More importantly, they'd have no real answer to it even if they did. The only lever they have in the face of this is cutting costs so that each individual failure doesn't hurt the bottom line so much.
The personal answer to this dynamic is to get out of these labor markets. The products produced by these companies will always be terrible. I don't understand why people still want to work at Google and Microsoft, it's basically factory work now, the glory days are gone. Let the people motivated to escape poverty do it.
The talent market has already started to fracture into a higher-tier professional caste and the lower-tier grunt caste. The professionals will slowly accrete into a Hollywood-style guild system serving anyone that wants to be on the leading edge of technology while the grunt-employing BigCorps will just keep pushing the state of the art of paying nine women to have one baby in one month.
259 comments
[ 3.8 ms ] story [ 243 ms ] thread"Dear xyz,
I've been hired to fill this not-so-great job THIS WEEK and we want this crazy exclusive unicorn skillset that about a dozen people in the world have and, you know, we aren't going to pay much anywhere near going rate and we're going to hire as a contractor so we can fire you any time and we're not really interested in training a person who'd actually want this gig at the rate we're wanting to pay. So, do you know anyone?"
You should also add Codeup to https://schools.techendo.com/
The cherry on top is that the pay, if it's even outlined at all, is always insultingly low compared to the job I already have. On the upside, just mentioning my current salary to some of the please-call-me-I-have-just-the-job-for-you recruiters has been enough to make them stop trying to contact me at all.
I don't know the answer, I think what is going on may actually be kind of complicated.
But that's the kind of question raised, you can't explain away the question of whether there's a shortage or not by saying "It's just that people aren't willing to pay the going rate."
Much of the demand for skilled labour is in the USA, much of the supply of it is not in the USA.
Possibly, except that there are a lot of pressures on people to move out of programming. Some examples: folks over 35 aren't welcome a lot of places; financial incentives often push programmers out of programming into e.g. project management. So you have a lot of people constantly leaving the field, somewhat by the design of the roles offered.
Oh, and every programmer is reading HN trying to figure out how to start their own gig. Higher wages and other job fixes (e.g. security, status, professionalism) might bring a lot of these people back into the recruiting pool.
1. Needs to have great design 2. Needs to be rock-solid in terms of stability 3. Needs to be snappy to use 4. Needs to be able to handle a Reddit traffic swarm 5. Needs to have individualization and customization 6. Needs to play nicely on computers, tablets, and phones
The person (or people, more likely) who is good at all of this just isn't available at rates the companies want to pay. This is the important distinction. Hiring somebody for 100k/yr is pretty much the minimum ante for a good developer in a tech city. But these "entrepreneurs" and "founders" think that is too much money, and instead claim there's a shortage.
In reality, if you're competing for top talent, 150k/yr should be your ante, and be prepared to go well into the 200s. This shouldn't be a surprise. To get even average talent from a consulting/contracting company, you're paying about 125/hr (of which 60-70 goes to the developer). That's 250k/yr. So why are companies freaking out at paying over 100k/yr for a full-time person who they can invest in? Hell, cut out the contractors and pay your people 200k/yr, and watch the good people come talk to you.
This is what Amazon and the like are doing now. I'm hearing 22 year old kids who haven't coed a line of code in a professional capacity, getting offers of 120k/yr with a 20k signing bonus. Netflix pays a significant chunk of its engineers over 200k.
The only real problem is that it's getting more expensive to do business in a tech world. But compare the skill sets that used to draw 100k/yr, and the skill sets now required to get 145k/yr (100k/yr in 1998 dollars = 144k in 2014 dollars). Before, you could just know HTML and some shell scripting. Now, you need to know multiple frameworks, how to deal with scalability, multiple data stores, "full stack," etc.
If anything, the good talent in this industry is still dramatically under-paid. A common metric is that the company should make from you about 7x your salary to justify your position. So if a company is making 2.1 million, you should be getting 300k. But we all know that's not what's happening. Instead, our wages are being capped and forced down due to illegal collusion between the top tech employers.
This all comes down to the people who own the businesses wanting to treat tech people as interchangeable cogs, despite all the evidence to the contrary.
I'm not saying that good devs aren't worth a lot, but they're typically only worth that much when applied to a problem that impacts a huge number of people, as at Google, FB, Netflix, etc. The same dev working on a project that a small company launches may only have a $20k/yr impact on the bottom line. It takes a serious amount of usage to create the $2M/dev revenue figure you're quoting, and at that point, how much of the marginal impact is due to the dev vs. the corporate machine that enables him to have that large an impact?
Just saying, something's gotta give.
This is like saying you want a F1 car, but won't driving fast at all. But you need it anyway. Much of this making money thing depends on knowing how to use people to make money. If you can't use a rockstar or don't even need one why expect them to work for you.
>>they're typically only worth that much when applied to a problem that impacts a huge number of people, as at Google, FB, Netflix, etc.
Ironically, the chances of a somebody good ending up working on something trivial are high in such places. You can easily get 'placed' into some place where your skills can just rot without having any hope of moving out.
That's a good question, but I'm afraid there's a fatal flaw therein. The assumption is that companies want to invest in training employees, but it seems that they don't. Startups don't have time or money to do it, and established big companies that are engaging in collusion on salaries certainly aren't going to spend money on training (or even mentoring) since they are collectively clutching their strand of pearls at the horrific thought of their best employees getting hired away and taking their newly-minted skills to a more competitive business.
That's what standard products are for, starting with hosted Wordpress and going up from there. Why are you building a web site from scratch?
If there is a tech labour shortage, that is to say, too many jobs and not enough employees to meet those jobs, then we expect the price of labour to rise until enough people are incentivized to work. Think the logic behind Uber surge pricing
If there are too many jobs and not enough employees, then you would not at all expect people to be willing to work less than the going rate.
Additionally, you would expect the price to rise first, as the most productive/profitable firms can pay a higher salary and still make money. You would expect the price to rise until a) Less profitable companies stop looking for labour because they won't make money on it; and b) enough extra people, motivated by riches, enter the job market.
The fact that there seems to be chronically unfilled positions at every tech company I've ever seen, would predict that salaries should rise until they're filled. But they don't. We can make a few hypotheses about why this is. For funsies, here's some:
1) Government immigration caps. There is plenty of developer supply out there.... outside the borders. We aren't letting enough of them in
2) Greedy corporations. They simply don't want to raise salaries, because they're soulless MBABots.
3) Skills gap. As many people are pointing out in this thread: Most journalists' treatments of "Silicon Valley worker shortage" seems to be of the formula "There are X unfilled jobs at software companies. There are Y citizens in the United States with certifications A, B, and C. NOW KISS". And yet this is pretty simplistic. Perhaps there is an abundance of (say) people able to do grunt-level IT work, but skilled software architects are in short supply
4) The B Word. Maybe all of these startups and brand name tech companies are unprofitable, and only surviving on investor storytime. Maybe they legitimately can't afford to pay developers more. Maybe we're all going to be out of jobs in a year or two
5) Location gap: maybe there's plenty of talented engineers elsewhere, and they can't or won't relocate to California.
I don't think the world has fully realized this yet, but there's huge divergence in skill of developers. I know a few developers who are worth $500k/year, if not more. And I know plenty of others who are not worth that, but are easily worth $100k/year. With all of them under the same label of "developer", it can be hard to distinguish what you're getting.
Car example! Imagine wanting to buy a car, but not knowing anything about cars. So you call Kia, and ask how much a car costs, and they say, $15,000. Then you call Honda, they say $20,000. A few others, similar prices. Then you call Rolls Royce, and they say $500,000 and you think they're trying to pull a fast one on you. And to compound this, if you were to list everything that you want in a car, you'd probably come up with something closer to a Rolls Royce than a Kia. So you're shopping for a Rolls, and you've budgeted for a Kia. Also remember, you don't know anything about cars, so you don't know how to distinguish important features (ie. wheels, a functioning engine), from luxury ones (ie. a fancy sound system, heated seats).
In terms of people not being willing to pay the going rate - plenty are! All of the big west coast tech companies pay handsomely for developers. Outside of big cities though, things are slow to catch up. So I think that a lot of the sentiment comes from people not wanting to move to SF or NYC or Seattle, but also wanting to get a competitive rate. Eventually these companies will have to adapt, but it can take time, especially if there are enough people who don't want to leave the city they're in. There's also the quality divergence taking place - as much as we'd all like to think we're good, Google and co. are very selective.
In terms of working for less than the going rate (which as you said is generous) - for sure that's happening. But there's adverse selection happening there, in that people who are taking jobs below market are either desperate and will quit when they find something better, or are of low quality. Developers aren't paid well out of the goodness of the company's heart, they're paid because they make money for the company. And bad developers can have extremely negative productivity even ignoring their salary.
Finally, labor takes time to catch up, especially skilled labor. From no programming knowledge to junior developer at a top company takes typically five years - ie. an undergraduate degree in computer science and some tinkering on your own (yes there are exceptions). And we are seeing supply increase - enrollment in computer science programs is up across the country. Imagine we had a severe shortage of doctors - you can't just suddenly triple the supply of doctors over a couple of years. Now if you have a huge shortage of brain surgeons, which might take a decade or more to train you're in for a lot of trouble.
Rolls has what people imagine they want in the car. Sort of like those HR hiring managers imagining what they want in a developer.
People trying to suppress the market-forces that self-correct this type of disparity are the real problem.
I would add two more reasons to that.
1) Dunning-Kruger; the developer is really good but doesn't realise it.
2) The developer isn't confident or knowledgeable enough to know what the going rate is and ask for it. Sort of an overlap with desperate, but perhaps not as likely to move on.
Job postings in my region tend to either have a pay range that looks like it belongs on a posting which requires 5 fewer years of experience, or they put something into the requirements as a "must-have" skill that would normally bump the rate.
Another part of the problem is that much of the educational system has put itself into the position of job training instead of educating when it comes to development and systems/network administration. It is often difficult or impossible to find a good curriculums for administration. Computer Science curriculums often choose languages based on the insistence of employers that those languages are necessary in the job market (though the average lifespan of some languages in the job market is less than the average student spends getting a BS in Computer Science).
Meanwhile, employers often mistake experience with a given language as a higher qualifier than overall development experience and ability to learn and adapt what you have learned in one language to working in another. This seems like it should be especially relevant in web development, since full-stack developers have to be familiar with front- and back-end languages, markup, stylesheets, and often at least a little SQL.
Finally, there's high turn-over and the ever-present revolving door positions. I've met far too many people who go back to school to either get their MBA and move into management or to get a degree in something else just to get out of the field completely. People get stressed out, treated terribly, and often feel like they have to completely re-learn their job every few years to maintain basic skills. After 5 or 10 years they may reach the salary cap for their job title, and they may have no opportunities for upward movement in a technical position. A new person might come on board to do nearly the same job, sometimes with the same (or more) pay, while being less qualified and less capable.
All of these things still trend in one direction, though: employers undervalue an applicant's overall experience while over-emphasizing a combination of skills which isn't often found in one person, all because they not only aren't willing to pay the going rate, but don't even want to hire enough people to do the job.
Great summary of the situation. This "shortage" is self-imposed.
Can you elaborate on this? Some specific examples?
My hypothesis is the reality is that much of technology has become commotitized...and peoples' expectations for what they need don't line up with reality.
Previously, this has to do with experience: We want to pay a senior java engineer with 10 years experience $75k. Rarely does it have to do with "skillset" outside of experience, as far as I've seen anyway.
[edit]
To clarify on 'culture fit' in my statement:
Interesting, inspiring, nice, humble, pleasant to work with, eager to share knowledge, discover new things, understands our audience, who we are, and genuinely wants to further the vision of the entire startup.
These are people that are going to help elevate the group together. I don't look at engineers as simply a commodity that can be replaced at a whim, but rather part of a symbiotic system that must transcends itself, grow, and evolve together in time.
Are you accounting for the skyrocketing cost of living of SF? I'm guessing that (as the article suggests as a general case) there are plenty of good developers but they just plain want more money than you're offering.
But from a pragmatic point of view, if the price is higher than you can reasonably afford to pay, then there's a shortage.
This is obviously wrong.
I'm not an economist, but I imagine an analogy to models of feedback systems that exhibit unstable behavior. Only the most simplistic systems can be made unconditionally stable.
Over time, the good will be replenished and the shortage condition resolved.
My argument was that in this situation the price should rise, reducing demand.
I've seen no good data on this issue either way, but from my anecdotal experience, salaries have been rising for a while now.
For example, in 2008, the supply of food dropped in Haiti. Prices rose to clear the market, but there was literally not enough food for survival. Many people ate dirt instead, what might callously be called a "substitute good" in purely economic terms. Of course this was a very serious and tragic food shortage.
What would a labor shortage look like? Specialized labor has an inelastic supply: you can only train workers so fast. In 2011, Georgia passed an anti-immigration law, and saw a huge drop in skilled agricultural workers that they could not hire enough. When $140 million worth of crops are left to rot in the fields, you've got a labor shortage.
I'd call it a serious shortage if, say, there were not enough IT workers to maintain the Internet. We're nowhere near that point.
If there is suddenly only enough water to hydrate 3.5 billion people, and prices quickly rise and water is distributed to the people who can afford it, do we not have a water shortage because 3.5 billion people cannot afford to drink? Or do we say, "The market is working efficiently, the concept of shortage makes no sense".
There's also the imperfect nature of the market. I believe during the recent hops shortage, there were brewers unable to get hops at any price because of distance, communication, time, etc.
Which reminds me, I don't know where this falls but suppose you want hops and all the hops have not just been sold but used. You have to wait until next harvest. Is that not a shortage?
I need a private jet. I can not obtain one. Does that mean there is a shortage of private jets? Maybe I can insist that there's a shortage of private jets "at a reasonable price?"
Additionally, "shortage" implies atypical conditions. Private jets have always been expensive.
Of course you can. Maybe not buy one outright, but you can probably charter one for $8000-10000 for a short round trip. Sure it's not cheap, but $10000 is definitely within the realm of what anybody with a decent job can save up for/borrow for something the really need. Most people who feel they really need a car for example manage to spend that sort of money and often much more.
Or perhaps you actually didn't need to private jet.
I didn't realize we were supposed to throw out these cases. They seem important to me.
Also, this is compounded by the shortage being of senior/experienced developers. As a hiring manager, I get dozens of resumes from new college & bootcamp grads every day. But we're not hiring fresh grads—we're looking to hire a few excellent senior developers, and they come along once in a blue moon.
It'll probably take at least 10 years for domestic supply to catch up to domestic demand (I estimate it takes at least 10 years of development to become a senior dev). So even as pricing signals push more students to study CS, the supply won't catch up for another 10 years or so.
So in the interim the only solution is to import foreign supply.
So make some experienced developers. How many of your people are in offsite training right now?
Well?
It takes 10 years to build an experienced developer. We don't need to hire developers 10 years from now, we need to hire them now.
We do. We've literally never had an offer rejected. The problem is just that there simply isn't a supply of candidates worth making offers to.
As for this nonsense that we should somehow be training developers 10 years from now, that's just ridiculous. 95% of startups won't last 10 years and if we build our whole HR strategy on a 10 year pipeline we'd be dead.
[1] I could be wrong on this; the companies I am trying to contact may not be the ones whining. Reading the conversation here and at /r/cscareerquestions though gives one the impression that this is a pervasive problem.
There's the problem. There just aren't that many people looking for embedded software developers. The companies complaining about a shortage are mostly building web & mobile software—if you were willing to consider that field, I'm sure more opportunities would open up.
It does, but that's not the issue. There is a shortage of good and qualified tech workers. Tech companies simply can't afford to pay whoever $120k/yr if their technology doesn't work.
So whose fault is it there isn't a lot of qualification? Workers or Employers? What I've found hiring people into my organization is that there are many, perhaps dozens, of ways in which people develop software, all with a great analogy name from 'waterfall' to 'agile' to 'pair' to 'artisnal' to 'hacking' and back again. They come with different ideas about what is expected of the engineer and what is expected of the manager. Have a standup meeting every week? Great, what are you achieving by that? Getting everyone on the same page? ok, but what about the guy off site? How about folks who work best in quiet offices, or those who work best in a noisy free-for-all, do you playfully criticize each other over bugs or do you have elaborate silent shunning rituals.
The reality is that everyone I hire seems to come from a different school of training about how to be effective at programming, what does that say about qualification? This last job of mine has been my first extended stint at managing engineers and I have learned so much about what folks can and cannot be expected to understand or know before coming to the company. It has given me a lot of appreciation for the intake process that I didn't really have before.
The real tech shortage is in project management, VP Engineering, product management, experienced multi-stack or vertical developer roles. It is really far from indicative to compare all of STEM.
H1B in my view is new Ellis Island. Stopping H1B == Stopping all immigration to US. People often say they support legal immigration but don't support H1B. What are the other alternatives to H1B to immigrate to America?(I am not talking about Nobel Laureates or Olympic athletes, I am talking about common folk who showed up at Ellis Island).
Immigration is one of those things where everyone who got in wants to shut the door behind them.( "I(or my ancestors) got a shot at a better life, fuck you the door is now closed.")
You can enter the lottery: http://www.usagc.org/USA-immigration.aspx
And yet we're not allowed to come to your country for much more than a few months at a time.
Oddly we _are_ allowed to get a TN visa, in some circumstances, build up some wealth over a 3 yrs span and then we're promptly booted _out_ of the country with bags of money instead of being allowed to stay and spend it. strange strategy.
Wellp, I'm not going to deny my intention. But the big "VALID UNTIL AUGUST 2016" sticker in my passport kind of decided this for me
But you can't get a green card with it, have to switch to H1B for that.
Realistic alternatives for any common person? None. You could apply to the DV lottery if you're born/from an eligible country but if you're from an ineligible country, that door's closed.
There are only selective alternatives:
- the extraordinary ones
- marriage
- immediate family
- if you're rich
- if you're a victim of some hate crime/war
Ironic, I'd say.
No, you can get PR if you have the required points. (Education, Age, Work Ex). It does not matter if you have never been to Australia before.
Prior to approx. 2010 (IIRC), this was a pretty standard way for people to gain PR. Rules changed in 2010 to make this route more complex/involved.
EDIT: Re-read of the gp, and you may be correct.
I know I am correct because I have Australian PR :)
I went to Aus after I got the PR.
The US immigration system is a series of exceptions and loopholes, if you investigate the process for immigrating to any other G7 country you will find that there is a general "skilled migrant" category with some basic requirements (such as education, language proficiency, good health) that more or less guarantees eventual citizenship once obtained.
The other alternatives to H1B would be allowing more people to move to the United States and get green cards.
Getting something through hard work is taken as barging into their elite club though unnatural means.
In general people love the idea of getting lucky, benefiting things out of no effort of theirs. And don't like it when others get the same benefits. Immigration is something similar. Once you get lucky, you like it that you are now ahead of the crowd and like you newly acquired status, you want it kept premium and limited to you.
Its like watching your cousin become a millionaire while you and he both had access to same resources.
That has to be BS. Industry leaders and investors want to expand the labor pool in the name of diversity, not to suppress wages. It's all about justice, not profits. Someone better flag/kill this article, I'm offended.
However, in light of recent corporation missteps like the Google and friends wage suppression scheme, I don't think gifting them a bunch of cheap labor is the right choice.
edit: Clarification. I am referring to privacy breaches causing a lack of trust in American tech companies by consumers, not whether they will be able to hire foreign workers.
Because the US is the only place Google has employees. Because Google pays taxes in the US.
I'm not sure how many developers Hal Salzman has tried to hire, but I find a lot more of them are weeded out at the "seeing if they can code their way out of a wet paper bag" stage than at the "salary negotiation" stage.
My basic filter question was always this: in any language you know, write a function that reverses a string. No tricks, no gotchas. Any reasonable solution will be discussed briefly and then we'll move on to discuss other things.
But a shocking fraction of people -- even ones with CS degrees from fancy schools -- would spend 30 minutes stuck trying to write that function.
That's what I think of when I hear "can't code their way out of a wet paper bag".
In the early days of computing IBM hired candidates with the right aptitude but zero programming skills and then trained them. It Worked out fine.
In the year 2014 there's no excuse for having "zero programming skills" if you're looking for a job programming computers. We all have computers, it's not like you can't practice on your own time before expecting someone to pay you for it.
And we do have existence proofs that businesses can succeed by hiring candidates with the right aptitude but no programming skills and then training them. For example see IBM a few decades ago or Zoho today. If you don't want to do that then you have no right to complain about the market supply of skilled developers.
I'm not arguing that there are no people trying to get developer jobs who have no business doing it, or that it's always inappropriate to ask algorithms or data structures questions. I'm arguing that there is an overemphasis on trivialities, minutiae, and irrelevant details.
That being said, I could probably still come up with it, but I encounter this problem when I interview sometimes.
People will ask me to recall something we covered for ten minutes back in college that I've never used since and could easily Google in five minutes if I ever did need to use it, and then they go... "ooooh, he must not be very good..." when I can't instantly spout out the solution from memory in thirty seconds, and might not be able to picture it clearly in my head without writing it out or spending a few minutes thinking about it, possibly even writing some quick code to see what happens, like I get to do whenever I'm actually working and on the job.
Most recently I got that with a combinatorial function (write a function to come up with all possible combinations for blah). I was having a hard time picturing how it would show every combination in my head, including in a jumbled order. I could figure it out if I could hack away at the code for an hour, and I remembered going over it briefly in college, but I've never needed to do it in my personal or professional projects since, and so it wasn't fresh in my head. The feedback I got was they were passing on me because I got that one question wrong. I'm perfectly competent and could easily handle the job, but because I didn't study every possible algorithmic and non-algorithmic question I could possibly be asked in the three days notice I had before the interview, tough.
I'm more a fan of seeing the results of people's work than asking them trivia over a field whose sphere of knowledge keeps doubling every five years that they can't possibly store every single thing in their heads at all times.
Text Book Publisher -> E-learning Platform Mass Marketing -> Mass Emailing Hotel Booking -> App for Hotel Booking
While there probably is no shortage of tech workers, finding ones that aren't going to mass-code unreliable software then leave the company is fucking hard.
Maybe those graduates aren't any good.
> “We don’t dispute the fact at all that Facebook (FB) and Microsoft (MSFT) would like to have more, cheaper workers," ... “But that doesn’t constitute a shortage.”
I'm not really sure how that squares with the fact that only half of STEM graduates were hired. Why didn't facebook and microsoft just offer those graduates cheapo salaries?
Because most of the time, these workers aren't interchangeable cogs. A degree doesn't mean you can do work in the industry effectively. Maybe there are billions of STEM graduates, but if only 100 can do the job, there's still a shortage.
> Maybe those graduates aren't any good.
In my experience, it's because companies don't want to pay to train somebody in all the basics of office work. New grads (especially STEM grads) don't know how to run a meeting, write a status report, or do a thousand other things that a modern company requires. Instead they list job openings for two or three years of experience and hope to profit off of somebody else's investment.
Microsoft just laid off 5,000 people. I don't think they're hiring much.
Broad layoffs like what Microsoft did often serve as cover for divesting from product areas or culling dead wood (despite many US states being at-will, it can be surprisingly difficult to fire someone who isn't performing at a large company).
Or maybe all the Science and Mathematics graduates go to graduate school because their entire field is centered around academic research, not jobs.
I saw a number someone quotes in a comment of _$120,000_ but it doesn't go as far as it did in the nineties. Realistically, that wage should be closer to $180k or more now-a-days-- but it's not.
Plus the real moral of the story is: your business is either capital intensive, or labor intensive. Software Tech isn't really capital intensive (per dollar) but is extremely labor intensive.
If tech companies want more talent perhaps they shouldn't build their campuses on some of the most expensive land in the country. That'd probably save a lot right there.
I'd be willing to bet Facebook wants more H1-Bs because it helps their bottom line (decreasing costs), which increases their profit margin, which increases their stock price... A dollar saved, is a dollar earned-- ask an accountant.
You will be paid in technology in financial services [if you are worth it].
It's expensive because it's desirable. Much of today's workforce doesn't want to live in the suburbs and drive to an office park. Living in a vibrant urban area is part of compensation for many.
A software developer cannot be asked to manage a linux database; I mean she can, but that is not what she is good at. Conversely, an IT person cannot be asked to architect the backed of a payment gateway system. Of course there is some overlap (devops is what comes to mind). I'm guessing that most of FB/MS employees are probably developers, so when they mention IT workers in the same breath as shortage at FB/MS, they are exposing their ignorance.
Furthermore, the paper itself seems to be published as a "report" on the page of a dubious organizations. Come on journalists, please do some actual journalism! Ask more people than those who confirm what your story wants to show. Find and determine the truth of the story; that is what you are paid for!
edit: as I suspected, most of the funding for this "institute" comes from labor unions. http://en.wikipedia.org/wiki/Economic_Policy_Institute#Fundi...
Most of the software we use hasn't existed long enough for real specialization. Hell, there are still people who were alive before software existed.
If you ask me, the real problem was whatever legal technicalities allowed vendors to create certification programs for "experts" using their own software.
Most likely this. When you have a horizontally sharded MySQL database that spans multiple datacenters - managing replication, failover and scaling out is not something you would expect most developers to be able to handle.
Let alone fine-tuning various kernel parameters, in depth monitoring and other performance tunings.
EDIT: Sure most experienced developers would have a high level and abstract idea about various things that may be outta whack - but it takes some one with expertise in the field to go beyond guesses.
Managing databases is an operational overhead. You want to minimize expenditure on it. Developers create IP. You want to maximize investment into that.
If tech companies were less focused on H1-Bs in particular, and were simply advocating for more high skill workers to be given green cards, I'd have an easier time taking them at their word. But they're not. They only want people admitted under terms that strip them of negotiating power, and there's no publicly defensible reason for that.
I mean, the optics are just terrible. In the long run, I don't see how this doesn't come back to bite the companies involved.
For employment-based green cards you generally have to get PERM labor certification (where the sponsoring employer literally advertises your job and has to show that there aren't American citizens/green card holders who can do it). That takes a while on its own (weeks, generally months).
Then depending on your education/experience, you get a date which corresponds to your position in an immigrant visa queue. The more education/experience you have the higher the queue you can sit in, and it's done by birth country (not citizenship). There are separate queues for China, India, Mexico, Philippines, and "everywhere else." If you have a graduate degree, significant job experience directly related to the US position, or some skill the lawyers can pass off as highly rare/sought after, you might end up in the EB-1/EB-2 queues which are quite short (if you entered the queue today you'd already be at the front). In which case the processing time might only be a few weeks/months.
Or you could end up in the EB-3 queue (bachelor's or equivalent experience a.k.a. many software engineers). Right now people who entered the queue 2 years ago are at the front if they're not from China/India/Mexico/Philippines (http://travel.state.gov/content/visas/english/law-and-policy...), 4 years ago for China, and 11 years ago for India.
Once you get to the front of that queue, you need to "adjust status" which means a physical exam, fingerprinting, and other busy work none of which appear to be based on country of origin. You could end up here for a few months or over a year, it's hard to know until you find out what USCIS service center is processing your case and can look up historical data. Until you get to the end of this you're technically still bound to your employer though there are some loopholes. Adjustment of status can take sufficiently long that the government passed a law in 2000 allowing green card petitions in this state to be fully portable across employers after 180 days.
There's a list that US Immigration and Customs Enforcement provides http://en.wikipedia.org/wiki/STEM_fields#STEM-eligible_degre... and it covers "physics, actuarial science, chemistry, biology, mathematics, applied mathematics, statistics, computer science, computational science, psychology, biochemistry, robotics, computer engineering, electrical engineering, electronics, mechanical engineering, industrial engineering, information science, civil engineering, aerospace engineering, chemical engineering, astrophysics, astronomy, optics, nanotechnology, nuclear physics, mathematical biology, operations research, neurobiology, biomechanics, bioinformatics, acoustical engineering, geographic information systems, atmospheric sciences, educational/instructional technology, software engineering, and educational research".
If you wanted the research to sound dramatic, you could then require the S part of STEM to include all of http://en.wikipedia.org/wiki/Branches_of_science and quickly jump to a conclusion that just because somebody with a sociology or meteorology major had trouble finding good work, domestic tech companies should be barred from bringing in more STEM majors on H1-B.
http://www.cis.org/sites/cis.org/files/articles/2005/back130...
H1B presents some friction in switching jobs, but to call it "difficult", especially in current market conditions, is vastly overselling it.
Although the regulations do not provide a grace period for unemployment between H-1B employers, USCIS generally approves petitions to change from one employer to the next and considers you to have maintained status if the gap is 30 days or less. CAVEAT: your (new) employer is the one that has to request the change, so if your new employer isn't organized to do this, or doesn't want to, you're in the country illegally and won't get paid.
So there's a "the administration hates congress" grace period of 30 days. After that, you actually have to leave the country and cannot start work somewhere else.
If companies started paying 2x-3x current rates they would start attracting very senior people who would spend the time necessary to retrain for the positions paying a lot more.
Also, at 2x-3x the rates, some business models would cease to be viable, freeing up the developers working on those businesses to be available for hire by the companies rating in the dough.
We really haven't begun to scratch the surface of trying to fix this problem by being more competitive with salary.
At a previous company I interviewed hundreds for engineering positions (Ruby & Rails or JS/Backbone.) Our average was 1 offer extended for every 300 phone screens. The problem wasn't that we extended 50 offers and got rejected; money was not a part of the equation. We simply couldn't find the quality we were looking for.
Specifically, coding schools have capitalized on the gluttony of open positions, but don't actually go towards solving the problem. There isn't a shortage of bodies, there is a shortage of experienced developers.
People should come first. Everyone has to start from the beginning at some point.
I once posted a job on monster.com and we rejected probably 50 resumes for each one we interviewed. We were looking in the wrong place. At a different job, we had a terrible time trying to find somebody with 10+ years of embedded systems experience in a town that didn't really have that kind of industry. In retrospect, we probably could have found a less experienced person that we could train. We were looking for the wrong person.
I am unlikely to hire a candidate who would need training because I simply do not have the time to train them. I need someone who gets things done, can self-train if needed, and who already has the minimum required experience so they have minimum impact on team velocity. Moreover I live in an "at will" employment state, so any money/time I spend training a person can just walk out the door at any moment (something I have seen happen just because a person was offered even more money elsewhere).
My point is simply if there was a shortage rates would go up and those in senior levels would stay in their field.
Also, go talk to those doing enterprise software sales, banking, mba degrees, etc. They will all be making more than software developers. So, either there is a shortage or developers are really bad at negotiating their salaries. (I actually suspect both is true, but the shortage is really because folks are looking for perfect match candidates)
I try to convince people to become software engineers all the time, and I tell them all about the salaries and benefits they can expect, and most of the time they just sigh and repeat that it's too hard.
Also, living in regions of the US where salaries for engineers exceed $100k per year also means incredibly high living expenses, so higher salaries would be necessary to entice people to move from out of the area.
As it is, I know people making HALF of what would be entry-level for software engineers, but elsewhere in California, and they have a MUCH better standard of living than entry level engineers. As in, they own a 3 bedroom house with a big yard, a couple of cars that easily fit into a 2-car garage or can be left in their spacious outdoor parking space, OR on the street where there is no-time-limit parking.
This standard of living could easily run $2M in the bay area (the mortgage payment alone would be more than my friend's salary, before taxes), but can be had for about 1/10th of that elsewhere.
Money is definitely a factor.
I suspect the process of filling the candidate pool was probably broken at your previous company too.
1 in 300? are you serious? i have a real hard time believing that. are you literally calling every resume you get? do you know how to filter a pile of resumes?
we are a tiny startup offering normal wages and we are at a 1:5 ratio between offers and phone screens. we might have to interview 10 people to get someone on board.
then again, we don't expect our mid-level ruby and python web developers to answer graduate-level algorithms questions, which seems to be kind of an insane expectation these days among employers who take themselves a little too seriously.
For companies like Google and Facebook, which place such strong emphasis on data in making decisions, its very telling how little data they have presented to support their claims.
What I'd like to see is a poll of HN users that look like this:
You want to live in $DESIRED_LOCATION because:
A. I love $DESIRED_LOCATION and want to be surrounded by its vibe 24/7.
B. $DESIRED_LOCATION is a reasonable commute to/from my job.
C. $DESIRED_LOCATION is a reasonable distance between job & loved ones.
H1B visa is 3 years, extendable to 6 years, with a maximum of 10 years. But I'd think most people don't stay on the H1B more than 6 years.
So there's approximately 65000 * 6 = 400000 H1B visa holders in the US. For size comparison, there are about ~240millions adults in working age in the US. And the possible amnesty from the executive order a few days ago would cover some where from ~4-5 millions people.
I'm not actually sure what's the point I should be making here. I guess it just feel to me that in the grand scheme of things, the number of H1B visas is tiny tiny. It's just incredibly sad to me to see on HN that someone would be concerned about H1B taking over US's jobs (or repressing the wage - which is the same, just lesser extreme than "taking US's jobs").
I am concerned that H1B's are indentured servitude. That term has a meaning, and no, it's not slavery, but if you will be deported upon losing your job that's a little more than just "out of a job."
So H1B's are not a fair way to bring in talent from around the world. Not Tech Companies' fault, though, if they hire talented people this way. It _is_ Washington's fault, since they are the ones creating the artificial scarcity in the first place (and turning a blind eye to the actual solutions for such a long time that it can't be ascribed to incompetence).
On the other hand, Tech Companies _are_ guilty of wage fixing. They got caught. Some did the right thing and raised wages. Some didn't. The economy is tough, so the incentives are all there for the company to keep payroll down.
That's not a reason to unionize the software industry. That's just all the more reason to start your own company.
Startups have successfully challenged the incumbents and won, especially in software. It's still open season. Good luck!
A former boss of mine was on H1B from India (big tech company and he wasn't even remotely underpaid) for 12 years, most of that time waiting for a green card.
And if you can, you're paying 30-50% more than just a year ago.
What is your standard for a mid-level engineer, and what would their salary range be?
If I were to introduce you to some mid-level or upper-level talent, would you pay typical recruiting fees plus provide some employment security to my associates who pass your hiring process? Some startups have high turnover and I wouldn't want to damage their career if you change your mind after hiring them.
Mid level engineers are obviously not hard to find. But in a market where tons of companies choose to locate themselves, and where the cost of living is massively high, engineers will tend to go where the pay is high and/or the product/tech is compelling enough to compensate for the massively high cost of living. This is to be expected, and has nothing to do with the supply of engineers.
But if you want good, you better be prepared to create the environment those will want to work in.
- No one is claiming there is a "STEM shortage". There is a shortage of qualified software engineers. STEM includes an abundance of marine biologists, aerospace engineers, astronomers, and myriad other subfields with poor job prospects that are in no way qualified to fill the shortage that actually exists in other STEM subfields.
- The category of "IT worker" sweeps up a lot of low-skill jobs that have nothing to do with software engineering. Maybe the low-skill jobs are not making great money but software engineers qualified enough to get a job easily make six-figures where I live, and I do not live in Silicon Valley. The oppression and slavery are palpable.
- Training to become a qualified software engineer is not like training to operate a backhoe. It is not just about "being good with computers". Tool chains you can learn over weeks or months, but developing domain competence useful to an organization can take years. By analogy, both chemists and chemical engineers deal with designing chemical reactions, but neither can do the job of the other without a couple years of additional training even though they are both just making chemicals. Most companies will not pay to train a chemist to become a chemical engineer when they need a chemical engineer now.
Every article like this that conflates software engineers with "STEM jobs" or "IT workers" isn't really talking about software engineers.
Or I suppose they can just do without if they want to be stubborn.
You're correct that big companies have positions for people at all levels. However, they usually aren't willing to pay more to fill a junior position than they'd need to pay to fill a more senior role.
And I'm confident it's possible to develop aptitude interview processes that avoid 10:1 false positives.
The bottom line though, is this- If there's a genuine shortage, on the job training is a solution with centuries of history behind it. If companies aren't willing to train, they can't be that desperate.
Here's another example to illustrate the point with more realistic numbers. Using the same training program described above and an improved filter a company can get one qualified graduate for every two people it sends through the program. On the first day of work he company has invested $50 000 in this new jr programmer. Alternatively, the company could offer a generous, $30 000-40 000, signing bonus to new qualified jr programmers and pocket the difference. Hey can also structure the terms of this bonus so that it is spread over one to two years to incentivize retention.
There are lots of real world training programs with qualified, motivated students that have high failure/drop out ratios so I'd say 2:1 is reasonable here.
I'm not saying that paid training is a bad idea. I am saying that it doesn't make sense for most companies currently and they will continue to use cheaper alternatives while they exist.
This actually happens in India with companies like Infosys, TCS hire people from all different domains and then give them basic programming training.
Investing in employees only makes sense if the company thinks the investment will pay off. Let's say a company views the expected value of an employee at $100 000 a year. Instead of trying to hire someone at that rate they decide to train someone. Training costs money and doesn't always result in someone that can fill the role. Let's say it takes $20 000 to successfully train someone. To break even on their investment the company would need to pay below market rates for some period of time. If they pay $90 000 a year for the next two years we plans to bump the person's salary to the full $100 000 afterwards what are the odds the person will stick around for the full two years? In a hot job market why wouldn't they leave and start getting the full $100 000 earlier?
I'm not saying that the current system works well but I'm not convinced this approach makes sense for most companies.
Neither of the companies you mentioned focuses on tech. Their management and financial consultants. I'm not convinced that you can apply the same plan to programming and get the same results.
The reason BigCorps are looking to indentured laborers is not because technology workers are hard to find, but because technology management at scale is horrendously inefficient, but being managers, they don't really know that. More importantly, they'd have no real answer to it even if they did. The only lever they have in the face of this is cutting costs so that each individual failure doesn't hurt the bottom line so much.
The personal answer to this dynamic is to get out of these labor markets. The products produced by these companies will always be terrible. I don't understand why people still want to work at Google and Microsoft, it's basically factory work now, the glory days are gone. Let the people motivated to escape poverty do it.
The talent market has already started to fracture into a higher-tier professional caste and the lower-tier grunt caste. The professionals will slowly accrete into a Hollywood-style guild system serving anyone that wants to be on the leading edge of technology while the grunt-employing BigCorps will just keep pushing the state of the art of paying nine women to have one baby in one month.