Why would you think you can get a software engineer at 50% the price of one in the US? Particularly given Canada's median income is now roughly on par with the US.
The US is a very large place with a lot of cities, it has 30 cities the size of (or larger than) Vancouver. You can find good software engineers across the entire nation, including in lower cost locations. From Portland, to Las Vegas, to Kansas City, to Raleigh, to Atlanta, to Detroit, to Pittsburgh, to Tulsa etc. You have dozens of cities to choose from that will have good engineers.
There's no reason you'd need to pay bay area salaries or locate in Silicon Valley (or NY). Unless you're trying to build the next juggernaut tech-startup and are going to take on the VC to match (in which case that pays for the high salaries).
Depends on the market. I don't live in the Bay Area or NY, but knowing how much I make where I am (plus that of my peers) and similar pay levels in the Toronto tech labour market (one of the better ones in Canada), I would probably end up with ~50% of my US compensation in Canada even when assuming 1 USD = 1 CAD. Once you factor in the exchange, it's probably in the low 40s.
And that doesn't even account for take-home pay after taxes and the large Canadian urban markets' cost of living, since the tax brackets top out quite a bit lower in Canada (not that I think the higher taxes are a bad thing; I don't feel my taxes in the US are high enough).
Because of the terrible exchange rate. It's a weird thing... I have an American client that I bill in CAD. We negotiated the rate when the exchange was close to parity, and have continued at the same rate as the canadian dollar has tanked. It works out pretty well for us... they can now afford more hours, and I spend less time chasing other clients to fill the gaps..
The only part that sucks is when I have to order parts or equipment from down south.
The US is a very large place with a lot of cities, it has 30 cities the size of (or larger than) Vancouver. You can find good software engineers across the entire nation, including in lower cost locations. From Portland, to Las Vegas, to Kansas City, to Raleigh, to Atlanta, to Detroit, to Pittsburgh, to Tulsa etc. You have dozens of cities to choose from that will have good engineers.
There's no reason you'd need to pay bay area salaries or locate in Silicon Valley (or NY). Unless you're trying to build the next juggernaut tech-startup and are going to take on the VC to match (in which case that pays for the high salaries).