I'm wondering where the data came from and how accurate it it is.
"In 2012 the Oregon software industry gave jobs to 38 foreign software engineers."
Ok so here I am assuming you mean 38 new H1B engineers were hired in 2012. There is no way that could be true, I nearly hired and processed that many H1Bs personally in 2012. I was working with several others with similar or higher numbers. And that's just one company in Oregon.
Not trying to nitpick with anecdotal data, but it just seems wrong to me.
So looking at the LCA_FY2012 data on the Foreign Labor Cert government website, it purports to show individual records for each H1-B application, listed by employer, job title, wage, etc.
There is an Employer address, and then there are two separate fields for Working Location. So part of the problem is are we looking at where the company is registered, or where the employee is physically working?
A second issue is in the 'LCA_CASE_SOC_NAME' - the job title / category. I found 27 categories which are reasonably related to computer software field, including things like 'Graphics Design', 'Computer and Information Systems Managers', 'Network Systems and Data Communications Analyst', etc. If you filter on just the specific 'Computer Software Engineers, Applications' category you will see much less.
The 2012 file shows decisions made 10/1/2011 thru 9/28/2012. If I look at data for 'Employer State' of OR, and filter on 27 categories which seem computer/software related, then I see 321 records. If I look at data for 'WorkLoc1_State' for OR with the same categories, I can see 1557 records.
You can download it yourself here [1] although it's 70MB and takes several minutes to pull from their servers.
Does anyone know if this reporting is official base salary or if its total earnings including bonuses. In NY especially that's gonna make a pretty noticeable difference to the averages I'd say.
No sure which of the above they're using for this infographic (I know the actual base salary has to be >= prevailing wage, but is it public?), but when you include stock grants / bonuses / 401k matching, my total compensation is well above both of those numbers.
H1B is a federal corporate welfare program to address a perceived lack of homegrown IT talent. Its is a regulated and public service. Data like who is hiring and at what salaries are public. Employers do not have a right to secret salaries when using the H1B program. Download the data below and view the RatePer field for salary info:
There is a public available database of all H1B visa recipients. Includes the company, hire date, salary, etc. It might be mandated by US federal law. I don't have the link on hand at this time.
Hmmm... was the Great Melting Pot created just by Native Americans? Not that I have anything against them, but wasn't the whole point of the USA to be a giant blender for people of all nations? How do you think that happened? By only hiring locals?
I am an unabashed infographic fanatic, but one thing that really throws me off here is the changing scale between graphs. I think it'd be a lot easier to flip through these tabs if a) the pay scale was the same for each graphic, and b) the pixel count on the y-axis remained the same.
Seconding this. The data is thorough and fascinating, but impossible to compare between any two. Not being able to select two at the same time is fine, but it'd be really nice to at least be able to switch between two without getting stuck with apples and oranges.
You are hiring a developer, do you call her an engineer where the prevailing wage is 87k or do you call her a programmer where the prevailing wage is 61k?
This type of fraud is difficult to prove and there probably isn't even anyone responsible in the government to verify or investigate issues.
EDIT: forgot to mention that the prevailing wage can be determined by salary surveys provided by the employer themselves (!!) during the labor application, giving even more incentive for tech companies to suppress wages by any means possible.
Why is there an implicit assumption that the H1B visa program engenders fraud? A lot of H1B discussions on HN focus on fraud and avoid talking about legitimate talented foreigners because that stuff is not as interesting. H1B discussions on HN are like the crime beat in newspapers. Further, 'H1B' seems like a catchall term for hating on immigrant labor in the software industry. Here are some examples on HN that demonstrate bigoted generalizations and ill-informed hate on H1B-workers [1,2,3].
Because we have major unemployment inside of the US. We also have the highest ever rate of Computer Science graduates.[1]
Those two combined make the 'need' for foreign tech workers seem very suspicious.
On top of questionable need, there are other facets of the program that are obvious areas of potential abuse (employer reported prevailing wages, employer sponsorship forcing employees to stay out of the competitive job market, etc)
There may be some absolute need for the most talented people other countries have to offer, but there is little evidence that generic 'programmers' or 'analysts' need to be imported into this country when we have 4-5% of college graduates unemployed[2] (thats ~2 million people at least[3])
It is a hard problem, but there isn't enough evidence to link legal immigration to the shortages and unemployment that you have cited. It is as easy to say "there is some unemployment, so we should make life difficult for non-immigrant aliens, that'll fix it" as it is to say "the sun goes around the earth because we see it go across the sky." It is not clear if you can draw a causation between restrictive (or unfair policies, as it currently stands) immigration and improved employment rates. The debate will be better informed if you can cite studies that say fixing alien-worker policies fixes employment (to any extent). Here's a (partisan) starting point: https://www.uschamber.com/blog/guest-post-economic-impact-hi...
The problem as I see it is that H1B isn't really immigration; it's even classified as a "non-immigrant" visa, created so that companies can temporarily employ foreign workers.
H1B holders are effectively tied to their employers. Sure, they can in theory find other jobs, but the timeframes and restrictions are very different to those of an actual immigrant.
Immigration of talented people would be fine. I would love to see a merit-based system. But the H1B system is hardly immigration.
Keep in mind that many companies start sponsoring an H-1B employee's Green Card as soon as they start working at the company. When considering those companies, H-1B is about immigration.
Do the huge consulting firms that hire 80% of H-1Bs start sponsoring green cards? Because I believe that 80% of companies could sponsor their H-1Bs, while still sponsoring a tiny minority of visa holders.
This is a huge surprise to me. When I went back to college, I graduated in 2006 and IS/CS/CE rates were at all-time lows. I guess it's been awhile now, but the numbers probably rebounded so recently that the only glut of talent (if there is one) is in very recent grads.
We do not have major unemployment in the Valley. It's very very very hard to find good people.
Any time somebody says this, I always mentally add "...at the wage I want to pay."
It is not hard to find good people if you offered a million dollar salary. If there were a legitimate labor shortage, wages would be skyrocketing. Instead, we get employers whining and agitating for increasing the H1B quota.
Of course, a company can only reasonably offer a million dollar salary if that hire will increase their revenue by over a million. I'm guessing that's a pretty rare hire.
He's being hyperbolic, but his point stands. Fact is, there is no talent shortage, there's simply a shortage of startups who understand that you can't nickel and dime engineers or refuse to pay market rates. Whining about it does nothing to solve the problem. David "Pardo" Keppel said it best:
"There's no shortage of smart, hardworking engineers. There's a shortage of smart, hardworking engineers willing to work for very little money."
If you're having trouble hiring, it's probably because you're not paying enough. It turns out that talented people are worth paying a lot for.
Smaller companies just can't afford it. Also, a developer will keep other people employed at the company. If our company had no developers, all the sales/accountexecs/marketing/etc people would be out of a job.
It's a classic chicken and egg question. In software development, do you need the engineer first, to build the product, that can then be sold even further.
I think it's just that the wrong metaphor is being used. Don't think "as the fundamental basis of the company, the developers are keeping everyone else employed"... think "the whole is greater than the sum of the parts". You can start with either, but you won't get anywhere without both.
Expect to pay a premium that is commensurate to real estate prices, then advertise that premium. You'll find people.
If you refuse to pay that premium, nobody will move from other cities, so you're fighting for local talent.
If you refuse to even post your salary range, nobody who knows Seattle real estate prices and has wasted time interviewing for Seattle positions before, will even bother applying. That is the case with me.
I have personally turned down offers in Seattle for being too low, as have other engineers I know. These days I would have to be very excited about a position to bother responding if it didn't list salary, because my assumption is that it's too low to list - so "we don't list the salary" is not necessarily the same as "we know that our salary isn't what's limiting our applicant pool".
Indeed, if 'Z' is not lower than average, then they shouldn't be having so much trouble. And if it is lower, then that is exactly the H1B fraud people are complaining about in this thread - paying below the prevailing wage.
When I do basic salary surveys, companies in Seattle appear to be paying market rate. Early stage, and pre-funded startups typically don't, but most other companies do.
The salaries don't compare to Bay Area salaries (but they are up there), but that is because our housing options are much more affordable.
The feeling I get is: Bay Area engineers don't want to move to Seattle, and Seattle engineers don't want to move to Bay Area, unless the comp is significantly above market.
Just curious, is there a larger pool of good engineers in India than available locally? If there is, that sounds like an opportunity to fulfill the promise of the H1B program. From what I understand, the body shops that import most of the H1B workers don't source the high quality employees that employers are demanding here.
> From what I understand, the body shops that import most of the H1B workers don't source the high quality employees that employers are demanding here.
Just my friends who are engineering managers. They manage teams here and overseas in China and India. Their views are, overall, the engineers from overseas are of lower quality than the engineers here. But they cost less especially overseas, they can hire 2-3 times as many engineers as over here.
> Their views are, overall, the engineers from overseas are of lower quality than the engineers here.
That is the perception.
The reality is that there are a number of top engineers from overseas, and they are compensated very well. What India and China are able to do is produce a lot more average quality engineers. Indian and Chinese average engineers are on par with average engineers in the US.
There just happens to be a lot more average quality engineers from overseas then there are in the US. US companies have figured out ways to work with overseas shops that employ average engineers because the cost basis is worth it (1/6 the cost).
With programs like Code Fellows and other coding bootcamps, you're going to see an increase of mediocre American engineers, but at a much higher cost.
It's also suspicious that there are significant numbers earning below or close to the poverty line. I find it hard to believe that these are skilled tech workers doing tasks that can't be done by domestic labor.
If the goal really is to enable highly qualified people to come to the U.S. (separate from the usual immigration process) wouldn't a fairly simple tweak just be to take the wage into account in the allocation? There's currently a fixed quota, with two things that go into allocating it: 1) offers not paying the "prevailing wage" are disqualified; and 2) the remaining offers are allocated in first-come, first-serve fashion until the quota is reached, with no preference to good vs. bad offers.
Seems you could collapse those two issues by just saying: the 50,000 slots (or however many there will be) are auctioned off, or allocated in order of highest salary offer, or something similar. In theory the "invisible hand of the market" ought to then allocate the slots to where foreign talent is most needed, and the companies using it for cheap labor won't be able to outbid Google/etc. for the slots.
If that were the goal, the tweak would be simple -- give out more green cards to people with appropriate education. Let them come here and get jobs.
These programs suppress wages for low-end computer positions. If you were around in the 90s at a big company/government, you'd run into old guys who made big bucks tweaking COBOL and Operator types tweaking Batch jobs. The whole point of COBOL was that you could teach the average bean counter to write it, so the answer to the problem of these guys retiring was to import cheap workers and automate.
My grandparents all came to the U.S. from Ireland. No H-1 nonsense where you get tied to an employer, just plain immigration and a path to citizenship. It should be no different today.
The wage is already part of the criteria for application. USCIS only accept application if the salary of the visa beneficiary is comparable to a US citizen salary doing the same job.
I mentioned that part; that's the "prevailing wage" requirement in (1) in my comment above. I'm proposing prioritizing by wage beyond that, e.g. if there are 300,000 applications that meet the "prevailing wage" requirement, and 50,000 slots, instead of allocating the slots randomly or first-come-first-serve, allocate them highest-wage-first.
Sure, markets are an imperfect way to allocate limited resources. But is a lottery really a better way? At least markets would allocate the slots in way that bears some relationship to where the maximum demand in the economy for those workers is.
Becuase it's a shady industry that exploits foreign labor and suppresses wages.
A former employer employed J2EE devs for $25/hr from an agency, meaning the workers literally make about $15, and are basically indentured to their employer for the visa period
> Why is there an implicit assumption that the H1B visa program engenders fraud
I can offer this from personal observations:
- I work with many clearly talented foreigners such as Indians here on H1B
- But I've also seen entire floors of companies such as at Cisco and Ebay that are almost 100% Indian
- This appears to happen when management positions are attained by Indians who only hire more Indians and contract with Indian-based outsourcing companies
- The Indians in these companies are different than Indians who work at other companies that are not dominated by Indians, in that they tend to be of much more dubious ability. This leads me to believe that there is widespread fraud on the visa applications.
- I've heard of under the table dealings among the same people where positions at companies are sold for thousands of dollars.
All this leads me to be against the work visa program for spouses of H1B workers. I can easily imagine wives of Indians without skills creating fake resumes, and paying under the table to gain positions in Indian dominated departments. Almost guarantee this will be a widespread problem.
"A lot of H1B discussions on HN focus on fraud and avoid talking about legitimate talented foreigners"
Not just on HN, but the discussions on H1B are similar everywhere. And just in case you don't understand the controversy, a lot of people believe that the H1B program is being misused and abused, to the detriment of employees here. If you don't agree with that, you should make your case instead of whining about the arguments.
The links you cite don't point to any specific post, and I couldn't go through all of them to figure out which ones you consider bigoted. But if there are bigoted and hateful posts (which are wrong and I don't condone) I would disagree with you that most people here hate on immigrant labor.
Nitpick - Infosys was fined because they were misusing the B-1 visa program, not the H1-B visa program. B-1 visas are the kind of visa that, e.g., a manager would need to visit the U.S. and meet in person with local personnel and customers. Apparently Infosys was bringing in foreign nationals on B-1's and they were doing software development in the U.S. The company denies wrongdoing, but they settled.
In Canada, you wouldn't be allowed to call them an engineer if they didn't have professional certification as an engineer. It's against the law. People have been taken to court over it.
It's certainly something that could get them in trouble as it is against the law. It relies on reporting, so if no one reports the company, nothing specific will be done.
For example, Microsoft lost a lawsuit regarding the MCSE designation.
No. There are no real restrictions on the title of engineer in the US. In some industries (health, civil eng.) you need a PE for public safety reasons but it is rare for engineers to have them in general. A PE can be hard to get in many places because you need at least one coworker with a PE who can vouch for your work. Without one it is an impossibility. A system like Canada's would be nice to have to eliminate the cheapening of the title.
>A system like Canada's would be nice to have to eliminate the cheapening of the title.
Are the egos of the "real" engineers really worth the additional burden of this regulation? At best, it stops people using a word that was coveted by others. At worst it means more regulatory hoops to jump through when there was no problem in the first place.
I have known plenty of developers who may be great at coding a task but fall flat when architecting the same systems. There are often tradeoffs that must be made for business or technology purposes. These tradeoffs are generally product or engineering decisions that i would hesitate having a developer make.
There are just functional differences between developing software and engineering it. The sooner the software industry recognizes these differences, the better served we will all be.
One company's developer is another company's engineer. Most companies name them one or another and don't have both positions in house. This is because they tend to do the same thing regardless of title, its more about what the company wants to call them.
Edit: other than that, what you seem to be speaking of is more about experience. An experienced "developer" will have a better time at architecting a solution than an inexperienced "engineer".
I have seen this at my jobs. Usually the titles are defined by HR so they can set the pay range to some sort of industry standard for that title. They often do not reflect the type of work being done to a highly specific degree. Some places are probably great at this classification of employees, but I've yet to see it personally.
> I have known plenty of developers who may be great at coding a task but fall flat when architecting the same systems.
AFAIK, the whole reason for the role title "software developer" is to indicate a breadth that goes beyond mere coding and subsumes system design and requirements analysis.
So a software developer shouldn't fall down on that task.
By law, foreigners should not have a lower salary. When a company sponsor an employee for a visa, the salary is one of the criteria to check for the immigration. They should/have to make sure it match the average salary in the office location. So, if the office is in Boulder, CO instead of San Francisco then it's ok to not pay your employee $100k+.
But a least 4 of the top 10 companies sponsoring for visas in the US are playing very dirty[1][2][3][4] and pay there employee a lot less than they should.
And for what it's worth, most of this companies, now in trouble, are:
- Exploiting cheap labor from India.
- Compromising career and future opportunity of the employee they sponsor
- Affecting thousands of other visa applicants workers who want to move to the US and can't due to the illegal practice of those companies.
tldr; turnover of visa holders vs. non-visa holders should be used as the metric more than wages. Significantly lower turnover of visa holders suggests they're being exploited since those who can quit and find another job do.
But this doesn't work. For many people on H1B's the visa and greencard sponsoring has tremendous value. The do depress wages, but it's because of the risk around the visas.
If you have an H1B, you're less likely to work at startups -- if the company goes bust and you need to find a job fast, you're at tremendous risk of needing to leave the US. You have 4-5 weeks to get a new job, but it has to start by then. Thinking about how long interview cycles can be at some companies, 4 weeks from application to start date is challenging.
Also, people getting sponsored are much less likely to leave. This should be the real metric for evaluation -- turnover. If you're on a visa, especially if you're getting sponsored for a green card, you're much less likely to quit and go to another company. You can get hired at a competitive salary, but over a few years and a few promotions you can be underpaid.
To completely stereotype, I used to work with a ton of these guys at Amazon -- they're all in line for Green Cards and will not consider quitting or even complaining about things until they get it. The turnover among non-visa people is much higher.
You're less likely to get a H1B at a startup yes but it's not for the reasons you think.
For a company to apply to a H1B visa they have to prove they have enough financial assets to not get bust.
There are however several reasons why startups are not sponsoring H1B visas as much as they should:
-It's time consuming. It really takes a lot of time, most of the immigration law firm are not startup friendly and are using old schools forms and stuff.
- They are not educated on visas sponsoring. They just don't know what it takes and stuff.
Don't forget that currently H1-B applications exceed the quota, which means you can only hire H1Bs in October, if you sponsor them the April before, if they get through the lottery (~50% chance). So your hire turns into a maybe-hire-in-six-months.
LCA declarations filed for H1B does have salary data. It is there to stop people from exploiting immigrant workers. At least that is the official stance.
I am not sure how accurate the numbers are but this site seems to have extracted info from the H1B applications:
http://redbus2us.com/h1b-visa-sponsors/
searchable by city.
Looking up menlo park tells me, FB was the largest sponsor with median salary of 133k.
Many, many Indians come in on L1/B1/tourism visa and work completely illegally.Or may be politely asked to return a bit of money on coming back to India.
My salary is missing. I earn well over $300k base salary, and H-1B'd in California, 2014. My salary is on visadoor, but not here. If my high salary is missing, what other high salaries are missing, too? Does this give us a distribution that is distorted low?
browsing visadoor, I now see a number of high salaries are missing.
If visadoor ever read this, please add salary range filters to http://visadoor.com/h1bvisa-database. E.g., only show offered salaries >= 300000. Thanks!
Visadoor builder here. Thanks for the feedback. Its on my todo list.
What data are you seeing missing? AFAIK its pretty accurate, but http://visadoor.com/h1bvisa-database is the archive database and is usually upto a quarter old.
It depends on where you are in the US. In some states, it's against the law to call yourself an engineer without being licensed. From what I could find with a quick Google search it looks like California is one. But it relies on reporting, so if no one reports it to the licensing board, you're unlikely to be fined.
This isn't true with regards to Software Engineer. Its mostly a protection against calling yourself a Professional Engineer which has a much more standardized accreditation process.
Also btw, in many CS depts in the US, students have to take very similar classes to the ones you described above, such as business ethics and what not. I know I had to. Along with multiple required software engineering courses...
> From what I could find with a quick Google search it looks like California is one.
Could you provide a source for that? I know that California regulates the title "Professional Engineer" or providing "engineering services" but I'm not aware of any regulation preventing someone from using engineer in job titles.
> The California Board does regulate certain engineering titles, but not all. For example, they don't regulate the plain-vanilla title of "engineer". They also don't regulate titles like "aerospace engineer" or "project engineer".
> The law only gives them authority over certain specific titles, as per Section 6732 of the Professional Engineer's Act:
>QUOTE
>It is unlawful for anyone other than a professional engineer licensed under this chapter to stamp or seal any plans, specifications, plats, reports, or other documents with the seal or stamp of a professional engineer, or in any manner, use the title “professional engineer,” “licensed engineer,” “registered engineer,” or “consulting engineer,” or any of the following branch titles: “agricultural engineer,” “chemical engineer,” “civil engineer,” “control system engineer,” “electrical engineer,” “fire protection engineer,” “industrial engineer,” “mechanical engineer,” “metallurgical engineer,” “nuclear engineer,” “petroleum engineer,” or “traffic engineer,” or any combination of these words and phrases or abbreviations thereof unless licensed under this chapter.
So, it wouldn't apply to simply a generic "Engineer" or a "Software Engineer"
Great. It's unfortunate that I'm not joking. I've used hacker/programmer/coder/developer/engineer interchangeable for a while now, but I've been running with "Fullstack Developer" because I think it rolls off the tongue better than "Fullstack Engineer"
(USA) I know many people who call themselves "engineers" who studied HTML and JavaScript and develop websites or web apps. I know many "engineers" who graduated from "Software Engineering" or "Computer Science" but have no governmental certification. Unlike Civil Engineering or other engineering disciplines, in the US software work is not as regulated, though I have seen regulations when dealing with Government work, calling for "engineers" to actually be accepted by a "official body of engineers."
Basically, in software in US, you can be an "engineer" and not get in trouble if you are not.
Not sure why you're getting downvoted, other than maybe because the original topic is US-centric.
In many countries (not sure about the US), it is illegal to call yourself an engineer, regardless of what discipline it is.
In Canada, various provincial bodies (PEO in Ontario) regulate the use of the title "engineer", including derivatives of it such as "software engineer". [0] Some of this might seem heavy-handed (see objection to the MCSE term[1]) and I used to think so, until seeing various articles like this one.[2]
Having the term regulated is useful in establishing a minimum or baseline of knowledge that one has to have. To call oneself an engineer without having had the common/basic education in various topics like calculus, linear algebra or statistics is at best misleading, since an accredited engineering program would have provided exposure to such topics. Imagine having a conversation with an engineer who did not understand the difference (or was not even aware of the difference) between mean, median and mode when it came to categorizing request-response times? I'm not trying to knock on self-learning as it's a valuable skill to have, just the concept of title inflation.
There are exceptions, of course. For example, someone with a Comp. Sci degree would likely possess the requisite knowledge and be equivalent to someone with a software engineering degree in the profession, and this is where perhaps the actions of PEO et al. are a bit overbearing.
Probably because the two largest English speaking countries in the world place almost no restrictions on using the title "Engineer" whatsoever, so people from those countries get annoyed when people authoritatively state that you must not use the title "Engineer" unless you are properly certified, neglecting to mention that their authoritative statements apply to perhaps 10% of their audience.
There's a movement in the UK to protect the title of engineer. Plus, in the US, it varies from state to state. For example, see Case Number: B-32981 on this page
They were fined for using the term "foundation engineer". From a quick search it looks like California is one state where you're not allowed to use it if you're not licensed. I'm guessing a number of people are actually in violation of this, but are unlikely to be fined unless it's reported.
That might be nice but to be blunt what has the Engineering council done for the last say 100 years.
I cant see any Uk government actually having the will to pass any laws enforcing this the number of STEM graduates in parliament and the house of lords is shockingly low
They also need to rescue Apprentices form its use by unskilled employers no Tesco you cannot have a Apprentices in shelf stacking to dodge paying the minimum wage.
Perhaps that is the reason, but it doesn't necessarily make it right nor justify it.
Would it be better for the industry (and society in general) if the titles of "doctor", "lawyer" or "accountant" weren't as regulated/protected? Should we care if people are annoyed that they can't self-label themselves as one of these titles?
> To call oneself an engineer without having had the common/basic education in various topics like calculus, linear algebra or statistics is at best misleading, since an accredited engineering program would have provided exposure to such topics.
That was my point entirely.
I did study all of those things, my degree was under the faculty of Engineering, and the engineers institute of Australia agreed that I do meet the requirements to call myself an "Engineer" - with all that means.
But why would a person need formal accreditation of they felt that they did possess the required background (assuming it was legal, which it is in Australia and the US). You are trying to impose the standards of the people who granted you that degree, on everyone else. But it's not justified. To an employer, your accreditation counts for almost nothing when comparing otherwise similar degrees (e.g. a CS degree). And you don't need to take a course in ethics to understand ethical issues or act ethically.
> To an employer, your accreditation counts for almost nothing when comparing otherwise similar degrees (e.g. a CS degree)
You obviously have no understanding of the different between a CS degree and a Software Engineering Degreee. For starters, mine was a full year longer than regular CS. I did engineering Math the entire time with the other Engineers, and I did courses like digital electric design and digital signal image processing that the CS'ers didn't.
You obviously have no understanding that the world is much bigger than the context where you are comparing a particular Software Engineering degree with other CS degrees. When compared across the whole world, CS and Software Engineering are basically synonyms. If anything Software Engineering is less technical.
And you also haven't explained why a slightly greater focus on traditional engineering/math is relevant to employers.
Not really. If you've got a CS or SE degree you are certainly an engineer. If you've built systems and worked in the industry solving difficult problems you are an engineer.
In the US we don't need an expensive piece of paper telling us what we're qualified to call ourselves.
EDIT: To be clear I'm referring to software engineering. Not all engineering. I thought that was obvious based on the context of the post but I guess not.
Did you have to take a course on ethics? What about software and society? In Canada, in order to get accreditation as an engineering program (including software engineering) there's a set of requirements to be taught. One is a course on technology's impact on society. Also, in Ontario in order to get professionally licensed as an engineer (which is required before you can call yourself an engineer, legally) one has to take an exam on ethics & law as they pertain to engineering. So, we study case law and various ethical situations.
People have been taken to court for calling themselves engineers if they're not officially licensed. This is why the MCSE is no longer an acronym as there was a court case about it. There's a few kinds of engineers that don't have to be licensed as they pre-date the law (e.g., stationary engineers who take care of things like boilers), but they typically have their own regulatory organizations.
In California, people call themselves "Software Engineers" all willy-nilly (even if they haven't graduated from high school) because the term isn't regulated down here.
Can you give an example of an ethical problem that might be faced by a software engineer, that is covered by these courses, and that these courses would enable a person to deal with significantly better.
There were definitely a number in both the practice law and ethics exam and the official exam that I took. I can't recall them off-hand, though. You can see the Code of Ethics for Professional Engineers Ontario in the actual law.
See section 77. Generally, it often revolves around 77.2.i,
"A practitioner shall, regard the practitioner’s duty to public welfare as paramount"
One could see a conflict come up between the company's and the public's interest. For example, you get asked to write the code in a way that takes less time, but could expose the client's data to hackers.
In my post I asked for situations that these courses would enable a person to deal with significantly better.
I agree that a person could be placed in a situation where they were asked to do something against the public welfare. But I don't see how reading this rule in a course would actually help the person making the decision.
For example, I've been in situations where security issues came up. Like most real life matters, it was a matter of judgement, and the tradeoffs were complex. But I went above and beyond what was expected, to do things the best way possible. I did it because I thought it was the right thing to do, and because I take pride in my work. But I didn't need to take a course or get a certificate to know this.
How much philosophy do you know? Much of the material deals with different value systems and applying those value systems to different problems. So, you have a complex ethical problem (which many are) and evaluating the problem in the view of the different value systems as well as the code of ethics. So, decisions about security of systems is certainly one of those situations.
Let's suppose I knew no philosophy. How does this concretely effect how I would make a particular decision? Can you be specific?
If I were designing human medical trials, then I agree that a course in ethics would be in order. But all aspects of life involve ethical choices, and I don't think that you need to be an expert in philosophy to make the right choices.
Understanding ethics can help in making the right choice in a complex situation. For instance, if you go with act utilitarianism, you choose the action which maximizes a positive effect. If you believe in rule utilitarianism, you use the principle of utility (maximizing a positive effect) to set rules to generally abide by such as keeping one's promise. But, there could be situations where following the rule gives rise to a negative effect. This is similar but different to determining rightness by examining the act itself. Then there's virtue ethics such as those of Socrates and Aristotle. There's also the role ethics of Confucius.
So, it's often good to examine a complex situation from the viewpoint of multiple ethical systems and make a decision based on that. That's what courses in ethics do. They teach various systems and present situations to examine.
A lot of people might go with consequentialism, which is basically, "The end justifies the means." Utilitarianism is essentially a subset of this.
So, yes you have some ethical system that you follow, but if you're only looking at a situation from that viewpoint, you might miss out on an alternative course of action.
I took that ethics course. I don't think that course really made much of a difference in anyone's career. The material was mostly common sense ethical questions.
The certification is more than just "an expensive piece of paper". In some jurisdictions (Canada), an engineering accreditation board has to certify that the courses taught during the course of obtaining an engineering degree contain certain material - thus enforcing a standard across all degrees, regardless of the university/institution.
Without this, it's arguable that having an "engineering degree" (in a certain discipline, say software eng) from one university would not all be comparable to having one from another institution - thus decreasing the overall quality of the industry. I'm not saying having the standard solves all these sort of problems, but I am saying that it makes things better.
Problem with that is that, at least compared to actual engineers who need to take the FE exam to be called one, it's a complete misnomer and to be frank, a little embarrassing. Most CS/SE programs share no classes with engineering programs except maybe calc 1/2 and one or two others. It just feels wrong referring to myself as a software engineer because a. there's no formal definition of one and b. it's unfair to those who actually are engineers. I didn't slog through statics/Differential EQs/vibrations/Calc 3/Mechatronics/Embedded Systems/etc. like some of my friends, and on a nominal level it's unfair to them.
In Canada, it would be against the law for a CS major to call oneself an "engineer". At the University of Waterloo, there's actually a Software Engineering program that's joint between the CS and Electrical & Computer Engineering departments. It's been licensed by the accreditation board for engineering programs.
There are some legal restrictions in some places so that apartment buildings and bridges don't get built by the local guy with a backhoe and then collapse.
If they hire a software engineer to build a bridge, they have more problems than the job title.
I don't really follow this argument, since it isn't like all the 'certified' engineers are interchangeable. You would have just as many problems if you hired an electrical engineer to build your bridge as you would if you hired a non-certified software developer to do it. Are people really worried about software developers trying to illegally build building?
I mean, we don't legally limit who can call themselves an engineer in the US, but you still need certifications to actually BUILD something that requires engineering work. That seems like a much more effective control than limiting who can call themselves engineers.
At least in Switzerland those job titles are made up by the companies.
Additionally since the Bolognia process people get a degree as Bsc or Msc. in Computer Science while the older degrees do contain the title prefix "Dipl. Ing ..." (e.g. Engineer with specialization in Software Development). So while the degrees are protected the job title are basically totally random.
I should've specified: I'm in the US, where Engineer/Programmer/Developer are mostly interchangeable (in fact I've read a ton of blog posts on which is the better term, none of which arrive at the same conclusion). I'm positive some BigCorp has a 100 page definition differentiating these, however.
> The best city for software engineers was Menlo Park with an average salary of $130,640
The best city for software engineers should not determined on salary only.
If the cost of living is 10X cheaper in Huntington Beach and the average salary is $125k then the best city by far is Huntington Beach. Then again there is a lot more than salary to consider before moving to a city...
Remember that Facebook is the largest employer in Menlo Park by a factor of about 10, which will totally skew those rankings.
Edit:
to be more clear, I'm making two points. Firstly, Facebook is not known for the sort of Tata/Infosys style abusive H1b (and there'll be almost none of them in Menlo Park) whilst SF is much larger, and there could easily be such a company with an office in SF.
Furthermore, the bar for entry to work as an engineer at Facebook is possibly higher than in SF as a whole.
In Alaska, software engineers on an H1B made $72,000/year in 2014
In 2014 the Alaska software industry gave jobs to 1 foreign software engineers, 100% less than the year before. Most of them made between $NaN and $NaN per year. The best city for software engineers was Anchorage with an average salary of $72,000.
In 2014 the Utah software industry gave jobs to 1 foreign software managers, Infinity times more than the year before. Most of them made between $NaN and $NaN per year. The best city for software managers was South Jordan with an average salary of $165,000.
This is pretty cool. I created a similar site http://salarytalk.org/search. I has has more charts and search capabilities for the same dataset across 2010-2014. For aggregate information per company go to http://salarytalk.org/companies
Coincidentally I just posted an Ask HN question asking how small companies facilitated H1B workers. I run a small company and don't have time to figure the process out. Was wondering how others did it:
When I was at a small company about 4 years ago that was hiring two H1Bs (one from Romania, the other from Russia), a local lawyer experienced in the process was hired for a few thousand dollars. All we had to do was answer the questions from the lawyer, pay the fee, and magically the two guys got on airplanes and appeared.
Common knowledge is that foreign workers will typically have lower wages on average because they have less freedom to switch companies, and as such have less bargaining power. On the other hand, giving greater visibility into H1-B wages like this could exert an slight upward pressure on their wages as well.
It is tied to a company (and job description, and location). Any change in those requires amending/transferring the H1B, even just switching locations within the same company.
I found this out the hard way when I accidentally gave the lawyers my company's headquarters address instead of the office where I would be working. They're like 35 miles apart but that still required an amendment.
Plus while on H1B I can't sell a mobile app, or monetize a Youtube channel (things I could of course do if I were living in my home country), or even rent a room on AirBnB, as my visa restricts me to income from my sponsoring employer. Luckily I should have a green card soon.
You can change jobs as an H1-B: In fact, I did once, when my first employer was doing constant rounds of layoffs, and I got antsy. It's not easy, as many companies won't sponsor H1-Bs at all, but the real kicker is that most H1-Bs, me included, wanted to stay longer than the 6 year maximum.
We see H1-B as the one way to stay permanently. First you get an H1-B, and maybe in the middle of it, or at the start of the second one, you get your company to sponsor you for a Green Card. If you have real qualifications, it's a very high probability process, but it's very slow. Back when I did it at least, it was VERY, VERY slow. During the process, you can keep renewing your H1-B a third, and even a fourth time, past the 6 year maximum, so barring the company going belly up, or a layoff, you'll eventually be able to stay forever, and get paid real market rates. But during the process, changing jobs is very hard, as changing jobs at the wrong time can make you have to start the process all over again. You might also have had to sign an agreement paying back the costs incurred if you leave before it's all done + 1 year, and that can be 15K, easy, so it's a big deterrent to change jobs.
In my case, I had mild salary increases while I was getting the green card. Now, 3 years later, I make more than double what I made then, in the same town, because now I can actually negotiate without a sword over my head, and change jobs if there is a high enough bidder out there.
> get paid real market rates
vs
> Now, 3 years later, I make more than double what I made then, in the same town, because now I can actually negotiate without a sword over my head
It doesn't tie you to a specific company, but your new company has to be able to go through the H1B process for you as well which definitely increases switching friction.
I own a company that specializes in hiring H1Bs and placing them into contract roles.
The data doesn't look very accurate. For one thing, this data doesn't appear to represent what companies pay.
I usually get bill rates up around $100/hr to $150/hr depending on skill and location. Like New York has higher cost of living than Michigan so I can often pull a higher bill rate.
The payout to the H1B is works out to be $60K to $80K. An Oracle DBA working in New York will make about $80K which is roughly $38/hour and the company easily pays $125/hour for 6 month contract.
I have some overhead but it's usually a one time fee such as transferring H1B from one company to mine, legal paper work to renew, attain, and transfer H1Bs runs me about $500/piece.
Presumably he also offers the applicant some sort of stability ?
Without a middleman, the H1B holder is very tied to its employer and has a difficult time changing job or bouncing back after being laid off. A middleman could smooth that out, by keeping the employee a bit longer on the payroll until they find another contract. I know people using those kind of services in the UK.
Also if you are a permanent employee with good benefits, getting a quarter of what your company sell you for is not bad.
very true. I offer a lot of benefits over other similar companies. Many times I am involved in moving a contract because I will give more of the bill rate.
I also offer a family package. You would not believe how many H1Bs I get that want to leave their L1 status because they want to move for various reasons. Marriage being the one I get the most.
When a contract ends, I will put H1Bs on internal work for as long as I can but the liquidity of this area is such that I hardly go past a month or two for any given candidate.
maybe. I like to think we suck less than other H1Bs by providing more perks. It's a dog-eat-dog world my friend and in the US, you have a choice. If you don't like it, stay in your native land then is all I can say.
Don't blame us for leveraging what is legal and allowed by economics. I do this part time through an entity I setup with a partner who is from India. He recently returned to India so we could open a site there where we can off shore work. Pumping work into those areas seems like a good thing to me. In addition, the Indian government gives free land if we open offices and/or buy buildings there too.
5 seems fairly arbitrary. If all 5 are almost the same then you are back in the same boat, no? If all data points for a given filter are substantially the same you still run into the same issue.
The data would be more meaningful if it separated out direct hires (Company X directly hires the employee) verses proxy hires (Company X contracts Company Y for employees) as generally the later relationship is a lot more exploitive than the former in terms of salaries as its much easier to hide the actually end of day take home salary.
Nice work, love clean and simple data apps like this. (Do they have a good name? E.g., stuff like the NY Times "Upshot" interactive data apps?[1])
Two suggestions:
1. Make the bars consistently positioned and grouped across filter clicks. That would make it super easy to compare different cross-sections.
2. The use of the history API is cool; one tiny nitpick: if the click is equal to the previous history entry, navigate back instead of pushing it onto the stack. That will avoid histories filled with A-B-A-B-A-B back and forth clicks between two pages.
Salary is about negotiation and leverage, not being born in a particular country, holding H1B status or having professional titles. This might have offended you, sorry for that, but it is just true.
It would be better to fix the axis so that we get the info by the position of the hisogram.
Example: When you're at "Engineer", and then you click "Programmer", the histogram moves to the bottom, giving the illusion they're paid more, when in fact the labels on the axis also changed.
The same axis for everyone to really bring the difference home.
I wonder how they define "software designer". I see that 17% are making north of $130k. Does this role identify as a software architect? an API designer? Or is it referring to product designers, UX designers and such? If it's the latter that seems much higher than the self reported salaries on sites like Glassdoor and Salary Fairy.
What are the typical working conditions in the US tech sector? I mean vacation days, hours / week, flexible working hours, other perks and benefits?
What would be the most typical conditions? What are the conditions an American software engineer would say: "I'm not accepting to work for less than this"?
Has anyone tried to determine if the prevalence of H1B visas results in a downward pressure on salaries in the tech sector? In theory, it shouldn't because H1B visas are supposed to be filled when you can't find a citizen or a resident, but I wonder.
It may lower salaries down. This is not unique to software. Immigrant construction workers lower some wages, shipping steel industries abroad lowers wages and causes unemployment.
The important issue is if it is a net good for the economy and society. Lower wages in one area can also mean lower prices for the rest.
This is pretty interesting especially for cities which have mainly a single software giant to know sort of how much an engineer in that company makes. Like for example Kirkland ( google ). There might be others like Menlo Park (Facebook ? ) too.
There is no need to guess, data published by Dept of Labor (original source for this infographic) includes company names, specific position names and exact salaries.
Glassdoor was including that info in their estimates for a while though, so no big discoveries here.
I wonder if you can distinguish between direct hires and contracted hires through "body shops". The latter have reputationfor taking a big cut off the top. or hiring 'L'-class business visas, etc.
I would like to see the 'value' taken from the point of view of the employer; how much is an H1B visa worth in terms of cost savings over a local employee?
It is very expensive to hire an H1-B compared to a US resident. The only way for it to be cheaper would involve fraud: paying a worker less than prevailing wage, which would require cooking your books, lying to US Immigration, and getting into a lot of trouble. (As is the case for a few big out-sourcing companies recently)
Filing fees are high ($5k+ over 6 years), as is the cost in lawyers (probably similar), auditing, and time consumption. It is impossible to keep an employee on H1-B indefinitely, so generally they will also go through the Green Card process, which is also expensive and time consuming.
Generally companies will offer a relocation package, which is also very expensive when it's international, and have partnerships with banks (having zero US credit sucks) and other services to get employees settled.
The idea that hiring an H1-B is a cost-saver is utterly bunk, and needs to stop spreading. (Other than fraud)
For large institutions that have streamlined and amortized the costs of hiring H1-Bs, your assertions regarding cost ineffectiveness are not accurate. I say this through past direct experience working as a hiring manager inside several in the financial services industry, where the benefits of bringing in H1-Bs to reduce net cost were a frequent topic of conversation.
At least in our limited experience we aren't saving any money, and that's not the driving factor. When the best person for the job needs a visa, that's what we do. It typically costs us $5k+/year in filing and legal fees on top of salary actually, so we pay MORE for H1B employees.
Well, it's hard to quantify, but I'm guessing most of these employers derive tremendous value from having an employee they can basically own, and not have to worry about them leaving for a better company for a number of years. Obviously companies like Google and Facebook treat their employees well, but many of these visas are going to companies which are not Google or Facebook.
Doesn't really matter what you are called, it's what salary you negotiate for the most part. Some titles are only bestowed on certain levels of people, but there are very few of those at all the companies I've worked at (Staff Engineer at one was a title only bestowed on people who had been promoted to a certain level and had certain compensation bonuses tied to it).
Pretty sure 2x-3x number is bullshit. H1-B visas are transferable between employers. If someone is paying you 1/2 or 1/3 the market rate, it pretty much a given that some other employer will easily pay you 20-30% more and hire you away.
I would say 20% is probably the higher end of increase, if any.
Former h1b here, now green card, soon citizen. I got a 0% raise when I got my green card. Have never heard of anything like this either amongst 10s of friends with h1b visas.
It is illegal to pay an H1-B Visa Holder differently to the prevailing wage. Converting to a Green Card should have no effect on your pay, and if it does, the employers are committing fraud.
You may have a side-effect of increased pay due to having more positions open to you. Holding an H1-B restricts you to a specific job description. For example, if you were a plain ordinary "Software Engineer" with nobody reporting to you, then you are not normally allowed to move to a role where you would have reports. This can be overcome with due-process and lawyers etc, but the basic idea is an H1-B worker is coming to the US to fill a job role not just a job.
So, when you convert to holding a Green Card, you can get promoted into positions which weren't previously open to you. You get the pay increase by being a better engineer and getting the better job.
Looking at http://visadoor.com/companies/google-inc for eg. doesn't look all that much different. May be only by ~10K, but that is probably expected between H1B and PERM.
Think about that for a second. About $130,000/year. How much are they worth to the company? About 10X more. I hope some of these guys realize their worth and just create their own software.
There is a privacy issue in government releasing the H1B salary data publicly. If you are a H1b worker working at a small startup, your privacy is pretty much violated. In the interest of long term, I think it is vital that salary information is available publicly but it should also include citizens' salary information so employees can negotiate better. I kinda feel sad for a lot of H1B people and their salaries.
"In 2012 the Oregon software industry gave jobs to 38 foreign software engineers."
Ok so here I am assuming you mean 38 new H1B engineers were hired in 2012. There is no way that could be true, I nearly hired and processed that many H1Bs personally in 2012. I was working with several others with similar or higher numbers. And that's just one company in Oregon.
Not trying to nitpick with anecdotal data, but it just seems wrong to me.