Immigrant visas have a per-origin country quota that cannot exceed a threshold (I believe no one country can get more than 7% immigrant visas in one year). For most countries, this is all right; a qualified person applying for an immigrant visa can get it in 2-3 years. Though from an employment perspective, this is not ideal; will an employer really be willing to wait 2-3 years for a new hire to join, however skilled that person is? And will this prospective hire be willing to trust the vagaries of the INS/USCIS and assume that they will get an immigrant visa? But this is not really the main problem. The vast number of prospective hires happen to be from India and China; high populations, their countries have been focusing on STEM education, etc. I believe these two countries combined produce well more than 50% of the STEM graduates (and that includes those who obtained Masters and PhDs from US universities) who interview with, and are hired by, US companies (on the basis of merit.) Yet, the immigrant visa (green card) quotas, which are handled independent of the non-immigrant visas by the USCIS, are very few for people from these countries. Add to that the family reunification program that gives priority for immigrant visas to the family members of immigrants, and the result is that an Indian or Chinese PhD from MIT will have to wait for a decade to get a green card, even though that person may be outstanding and reputed. At least this is true for the E2 category; even E1 visas take a few years, is my understanding, for people from these countries. Also Mexico and Philippines, but for different, non-STEM, reasons.