I really wanted to work in Vancouver, but I simply could not justify taking the ~$80k CAD offer I had in Vancouver over an ~$140k USD offer from a company in SF.
Even when taking into account the cost of living difference, which worked out to be about the same as the ratio between the salaries, the higher salary in SF wins out because given similar savings rates, the higher your salary, the larger your raw savings in dollars will be (unless you have a savings rate of 0% or lower, which is a rarity among well-paid software engineers). This is before even taking into account the difference in purchasing power between the two currencies.
Collectively, the tech industry in Canada would reap great long-term benefits from offering salaries that are competitive with those in the US. But companies acting in short-term self-interest only try to pay their employees the bare minimum they can get away with in order to be able to claim to offer these pathetic, so-called "market-rate" Canadian salaries, with little regard to the fact that so much of the higher end of this talent pool that they could have competed for have already been brain-drained away.
This then inevitably leads to the industry generally undercompeting as a whole, which results in poorer revenues and lower interest from potential investors, which then means there's less available capital to invest in the workforce, and so the whole vicious cycle repeats itself. So many once prominent Canadian tech companies have already fallen prey to this sorry state of affairs. I wonder what kind of wake-up call the industry will need to finally break out of this pattern.