A few years ago, I worked for a Fortune 500 company in a US office. Because of my severance package, I'm not allowed to talk badly about them for a little more time to come. So I can't mention their name. But I can tell you that in my job I had to at times deal with the H-1B equivalents in a Canadian office and all I can say is good luck, Canada, You're going to need it.
I worked in what I would call internal support for a product my employer sold in the USA and Canada. We really just supported the US side, but we had a product under the same name we sold in Canada. Problem was, it really had nothing to do with what we sold in the US. All I can figure is that at some point in the past, a decision had been made to merge this Canadian product in under the US product's oversight and sell it under the same name, although they had completely different code bases. The Canadian product ran under Windows and the US product used Linux, so you can imagine what that was like. I had on call responsibilities at times over weekends and some internal monitoring would trigger for the Canadian product, so I had to call their folks. You could count the number of Canadian born employees who worked on it on one hand. The vast majority of programmers were from India on whatever Canada calls their H-1B visa. Every time I called them it was the same thing. These visa workers would be told what the problem was that the monitoring found and they would screw around for hours "looking into" the problem, find nothing, and then after several hours the alert would simply go away, with nothing being done to fix it and no cause for it ever being found. They seemed to have no idea at all how to troubleshoot their own product. So yeah, good luck Canada. You can have all of our former H-1Bs that you want.