The Tech Worker Shortage Doesn't Really Exist
businessweek.com
businessweek.com
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.
"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.
Business generalists, actors, and musicians generally -- the professions/industries as a whole, rather than just the titles at the top -- get paid a lot less.
Salaries are only absurd near the top of the software industry. It's certainly better distributed than those other industries, though.
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.
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.
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.
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.
[1] http://time.com/76655/google-apple-settle-wage-fixing-lawsui...
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.
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.
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.
Whenever I read posts of "they want to pay us less" online I try to understand, why wouldn't a company simply offshore it? I live in Mexico, and when I was looking for jobs there were a lot of "nearshoring" (just like offshore but sometimes a business guy will go across either border.) companies, so it's clearly not that rare. Why? Because they can afford the same for less (due to exchange rates and what not) So I wonder why they'd move a lot of "talent" there instead of paying them less (but still considerably more than what an average person gets here) to work for them? Why go through all the trouble of even suggesting reforms and what not? There's got to be more to it, no?
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.
- 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.
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.
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.
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.
1. There is no STEM shortage, there's a shortage of a particular subset of STEM-related skills, most notably software development (which btw is a skill barely even taught even in CS, and certainly not filtered for, leading to people with CS degrees that can't code their way out of a paper bag). Even within just IT, software development stands out by a mile in all stats when it comes to the imbalance between jobs and candidates.
2. Wages are being artificially kept down despite the shortage. Migrant visa's are one of the things being abused to depress wages. The fact that this is happening during a shortage is remarkable and confusing, but can be explained by fear (wages will explode sooner or later, and this terrifies many employers) and by the low social standing of software developers (even within IT software developers have for the longest time been known as the code monkeys at the bottom of the hierarchy, just above the support people) which leads to even developers themselves not questioning their salaries. Salaries that tend to be pretty decent, but well below what should be the market value.
Those places just aren't San Francisco. Getting a developer in a mega-priced city and then hoping to pay less, that is not going to work well. And frankly that is not what H1Bs should be for.
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.
[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.
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.
As for H1Bs taking up American jobs, I'm also not sure that's really an issue. Assuming H1Bs were abolished, and existing H1Bs were told to go back to their countries, would companies be able to fill that void - are there actually that many skilled tech workers out there that aren't H1B? I'm curious....
There's a giant pool of highly skilled workers -- including friends of mine who've left the bay area -- living in the south, west, and midwest, because of the insane cost of living in the bay area. Fix that, and I personally know 4 very good senior (10+ years) engineers who would happily move back. But not for $120k, and not even for $200k, as long as a 3 bed condo on the peninsula costs $800k and comes with a 1.5 to 2 hour commute into sf for both parents.
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.
Not a single one.
More than a dozen interviews, zero offers but I can find consulting offers (with far, far lower hourly wage than in 2006-2009 last time I did consulting). I have friends who have been unable to find work also, with skills, experience and blue chip, so to speak, resumes. Somehow saying we need more skilled workers when folks in Silicon Valley with a decade of experience who have worked for, and been given awards by, the biggest names in tech only means that employers want it cheaper.
A friend on an H1B who lost their job? Gainfully employed in less than a month after losing theirs, then again, they have to be seriously motivated else they get shipped away. Until the new immigration policy gets passed where we export jobless Californians to Oregon, my only option was to rebuild a consulting business.
Funniest thing is, now that I'm an "Agency," again, I've had a list of people wanting me to hire them. So it certainly feels like there is a lot more unemployment out there than what I read in the media, at least with my experience...of course, YMMV.
I might be wrong here, but I thought H1B labor was overwhelmingly being used to fill lower paid, entry level or short-project kinda work and not being used to replace full time employment. Again, from anecdotal evidence, most companies I've worked with have always tried to hire domestically. And many of the jobs I've applied to, the recruiter outright told me that they wouldn't even consider noncitizens/non-gc holders.
Immigration is a tricky, tricky issue. When living overseas, the ambassador from another country dropped a proverbial bombshell about the human trafficking in the country where I lived. To whit, when living in Costa Rica myself, I only found out on exit from the country my former employer never got me a work permit - eg, I was working there illegally. I'd love to say yes, no fault of my own, but I should have investigated the situation myself. Lesson learned.
So having worked in labor myself a bit (helping people get jobs) and been on multiple sides of various business disputes in various countries...well, the situation in US employment in Silicon Valley is quite puzzling.
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.
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.