And if you think it's bad, it's even worse in Europe. Taking the French example: I'm an freelancer, but I used to have a contract with an American company. They gave me 3x the salary most of my French colleagues would get, while keeping the exact same social advantages (they paid me through a French branch). However, to them, the salary was twice lower than what they would have paid for the same guy in the Valley. No…
The software developer golden age was in the mid-nineties here in Europe, and then the rates and salaries have stagnated (but not the inflation).
Also, the contractual conditions are getting worse. We are now many times offered contracts with a termination clause of one week on the employer's side, and without a termination option the the freelance side.
This means that if you sign a contract of one year, and then on the first week you realize that the job is not what it looked like in the interview, you are stuck for one full year.
This is especially important as employers are not really transparent in the interview process, they will often not tell you what the job is really about, and the job description you have is either out of date or it was embellished to look much cooler than the day to day job actually is.