> "then why doesn't the sector expand to take advantage of the low wages?"
It is. See: the huge presence of multinationals in Canada like IBM, SAP, even gaming giants like EA and Ubisoft. The Canadian tech industry is by no means shrinking, it's just growing in a way that doesn't fit Silicon Valley's "high pay, high benefits" mold. Canada has not seen the massive software engineering wage explosion that the US has.
Which naturally leads to your next question:
> "Contrarily, if the sector is small because high wages attract workers to the states, why can't Canadian companies pay as much as the American companies?"
This is a big and complicated question. The short answer is: because it somehow got this way and now we can't change it.
It's important to note that the US tech industry isn't all shuttles and gourmet meals either - the bulk of the industry is paid a fraction of Silicon Valley salaries, with none of the cushy benefits. The tech industry is divided into the low/mid-end and the high-end, and the two sides could not be more different.
There is an active war for talent in the high-end that keeps driving up salaries and benefits, while low/mid-end software engineering remains relatively stagnant. It's largely a group of companies working on computationally hard problems that's driving this war - folks like Google, Facebook, Microsoft, Amazon, etc. These companies are uninterested in low/mid-end talent, confining the insane salaries to only a small segment of the total industry.
This segment of the industry also largely does not exist in Canada. Canada's tech scene has, for many complex and perhaps unexplainable reasons, developed into one that is largely enterprisey. The tech jobs are largely at not-tech companies (where you're a cost center, not a profit center), and where they are at tech companies, they are at satellite offices of American or European companies.
This doesn't create a market where there is high demand for top-level talent. Complicating this somewhat is the fact that the talent war in the US has bled across the border, thanks to relatively easy immigration laws for Canadian citizens - the bleeding of talent to the south prevents the establishing of companies locally that would feed on a top-level talent pool.
So this really circles back to OP's original complaint. The reason why wages aren't rising in Canada is because companies that demand high talent do not exist in Canada. There are no major companies working on truly hard problems that would demand campuses full of top-level engineers, and thus no drivers for salary growth.
The companies that do exist cannot raise salaries wildly for a few reasons. Firstly, because they are not having trouble finding talent at the level they want at their existing salaries. Secondly, because their business model may rely on being cheaper than the US. Thirdly, there is a lack of institutional employers who employ high-end engineers which would kickstart a talent war.
It is. See: the huge presence of multinationals in Canada like IBM, SAP, even gaming giants like EA and Ubisoft. The Canadian tech industry is by no means shrinking, it's just growing in a way that doesn't fit Silicon Valley's "high pay, high benefits" mold. Canada has not seen the massive software engineering wage explosion that the US has.
Which naturally leads to your next question:
> "Contrarily, if the sector is small because high wages attract workers to the states, why can't Canadian companies pay as much as the American companies?"
This is a big and complicated question. The short answer is: because it somehow got this way and now we can't change it.
It's important to note that the US tech industry isn't all shuttles and gourmet meals either - the bulk of the industry is paid a fraction of Silicon Valley salaries, with none of the cushy benefits. The tech industry is divided into the low/mid-end and the high-end, and the two sides could not be more different.
There is an active war for talent in the high-end that keeps driving up salaries and benefits, while low/mid-end software engineering remains relatively stagnant. It's largely a group of companies working on computationally hard problems that's driving this war - folks like Google, Facebook, Microsoft, Amazon, etc. These companies are uninterested in low/mid-end talent, confining the insane salaries to only a small segment of the total industry.
This segment of the industry also largely does not exist in Canada. Canada's tech scene has, for many complex and perhaps unexplainable reasons, developed into one that is largely enterprisey. The tech jobs are largely at not-tech companies (where you're a cost center, not a profit center), and where they are at tech companies, they are at satellite offices of American or European companies.
This doesn't create a market where there is high demand for top-level talent. Complicating this somewhat is the fact that the talent war in the US has bled across the border, thanks to relatively easy immigration laws for Canadian citizens - the bleeding of talent to the south prevents the establishing of companies locally that would feed on a top-level talent pool.
So this really circles back to OP's original complaint. The reason why wages aren't rising in Canada is because companies that demand high talent do not exist in Canada. There are no major companies working on truly hard problems that would demand campuses full of top-level engineers, and thus no drivers for salary growth.
The companies that do exist cannot raise salaries wildly for a few reasons. Firstly, because they are not having trouble finding talent at the level they want at their existing salaries. Secondly, because their business model may rely on being cheaper than the US. Thirdly, there is a lack of institutional employers who employ high-end engineers which would kickstart a talent war.