I think the reason this isn't more popular is that our talent pool is small enough that unless you already have a Canadian presence it's not really worth opening up a business unit/office/whatever here. Obviously some big players have done it (MS, Amazon, EA) but if you're a medium sized company it may not be worth it.
I work for a US company but I'm a contractor for this reason. It works for me but if you don't have extended health through your partner or don't want to deal with the tax implications of being "self employed", it can be less attractive.
So I'm also working as a contractor for a US (well, international remote but US incorporation I guess) company right now. And, yeah, no benefits isn't great. But I have also found that paying out of pocket for dental, etc. is better than buying a plan for myself.
Also a bit of a bummer that CRA has tightened up incorporation stuff a bit since the last time I did this. Given I have a single client only right now, I'll just be doing sole proprietorship.
The idea is you scale your rate to include enough for a benefits package.
Or they use a POE/EOR service, that's possible in Canada I think.
Either way, incorporation still has some advantages, one being that you time shift your pay as needed. It can make it easier to subcontract people too. And it's easy, and only costs a few hundred dollars.
My employer is using Deel, paying me as sole proprietor, and that's fine. Deel can also act as an EOR and I could be "full time", and that could offer benefits. But it feels like a bit of a veneer overtop over what feels like contracting anyways, and it would mean less $$ in my pocket. It doesn't make a lot of sense.
Especially now that pharmaceuticals in Ontario are free for kids whose parents don't have a plan.
Also, it seems that telling my dentist and physiotherapist that I don't have a plan seems to make them behave more responsibly, on the whole.
If I end up at some point landing more clients and I end up being more consultant than single-client contractor, then I will incorporate.
FWIW an EOR/POE is more about the convenience for the employer, not you - they don't have to establish a local business presence, register a bunch of tax accounts, etc. You can end up technically employed by the EOR with access to a decent benefits plan etc., and paid directly by payroll. At least that's how it works in some jurisdictions, as you note. It's different all over, but can make a huge difference in somewhere with crappy medical coverage, or other benefits you want to keep consistent.
When the most practical option is to form a corporate entity with a single employee, and BTW you may have to pay GST + PST on labor depending on if other Canadians use the service, it begins to look really unappetizing.
I get that employees as contractor relationships are rife for abuse, but, like so is exempting tech employees from overtime protection (BC and Ontario).
It really just shouldn't be this hard to do work for a company that isn't in Canada.
So it ends up being sole proprietorship only, which has far less tax advantages.
I mean, as a tax payer and citizen who paid exorbitant personal income taxes for years as an employee of a FAANG, I think this is probably equitable. But as a contractor, now... damn I'd like to be able to take advantage of corporate tax rates like I could 13 years ago when I did this last.
It's extremely easy to be self employed in Canada with a foreign corporation. You just start getting your money wired through Wise or whatever service and declare it on your income taxes. As you work for a foreign corporation, no need to charge sales tax. That's it, no separate entity or incorporation needed. You can still expense your tools expenses, part of your housing, etc.
Sure if you want to incorporate, it becomes more complicated. But you wouldn't be incorporated either if you had a salaried job for a tech company locally.
But "extremely easy" is relative. It's still more hassle than being a salaried employee. If you make a non-trivial amount of money you'll need to pay your income taxes in installments and set it aside yourself (no deductions after all). You need to pay 100% of your CPP contributions. You're likely getting paid in non Canadian currency so need to get set up with a good forex provider or get ripped off by your bank (I use xe, but there's a few out there).
Also your point about not needing to charge sales tax depends on what country your employer is in. In my case it's true I don't need to charge because we have a tax treaty with the USA; for other nations this may not be the case. If no tax treaty is present, you need a GST registration #, charge your employer said GST, hold it yourself and then pay it out just like your income tax.
Also the extended health can't be overstated. If you have dental issues, bad eyesight, are on prescription drugs etc. it can make a real difference.
Generally I'd recommend contracting to people but I just want to be realistic.. it has it's downsides.
Having a team completely unavailable during the USA working day is a real pain for collaboration and it's hard to sue people in other countries that "borrow" your source code to make their own version. Also, knowing exactly how to pay (say) a German developer and how taxes work and what the labor laws are is always an issue.
Aside: The very best contractors I ever hired were Ukranian. So many absolutely fantastic talents at around $30 an hour. Then Russia invaded (the first time) and annexed Sevastopol and the USA made it illegal to pay them any more.
only ones who stayed in Crimea
Shameless plug- a buddy runs a dev shop out there, they have great devs and exceptional designers (and also are doing a fund for Ukrainians impacted by the war). If you're looking for help in that region, they're great people to chat with: https://beetroot.co/
Of course, people realized that and there's 0 unemployment in IT, however, there's still a long way to go before we get to the Bay Area salaries - 6 figure salaries are only for the top 1% devs and only working for the USA and usually short term contracts, but a decent developer makes north of 50.000 dollars a year which is a pretty good salary here.
2. english language barriers - half the people I have worked with in South America (Colombia, Brazil) and China were so bad with English that it seriously affected the team's productivity.
Canadians fit the bill on both counts - same timezones and language.
Something you have to keep in mind is that there are two parallel markets over there: SV caliber developers and the rest. The former won't have any issue getting a job in the US (takes maybe a week for a talented engineer to get one). Therefore, comp has to be priced appropriately. The later can't -and likely won't ever be able to- secure a US visa, mostly due to skills (there's a reason they immigrated to Canada, it's way easier and the quotas are close to 10x per capita compared to the US). Some companies leverage this and have floors of international devs they park in Canada for a fraction of their US counterpart through a subsidiary.
The "SV caliber" developers you identify [honestly, that's kind of offensive, but whatever] who can and do actively consider relocation to the US.
The same caliber of developers, but have no interest in ever living in the US, for personal or obligation reasons.
The permanent resident non-Canadian citizen category you allude to.
Google Waterloo for example is mostly full of the second category. Plenty of high caliber talent who are there and not in Mountain View because that's where they chose to be. Because any of them could relocate / transfer to MTV any time they liked, but prefer not to. In my last few years there, there were dozens of people who I met who had transferred (back) into Canada from SV/Bay Area because they simply couldn't stand living there anymore because of cost of living, politics, family, home sickness, etc.
There are other companies that set up shop in Canada merely to siphon the first. They offer an "ok" experience for people who choose to stay, but push hard to get talent to relocate. I get the impression there's lots of this happening in Vancouver in particular.
The prominence of the last (recent immigrant / PR) category is really something that has held back the Canadian tech scene in general TBH. It's a product of international recruitment by the Canadian immigration system. There are shops full of people essentially fresh off the boat from the PRC or Eastern Europe. Many of these are highly qualified -- but in the context of our industry as a whole -- underpaid/mistreated. Others are not as competent. And it's all mixed up, and it has messed up the local tech market, compensation ranges, and quality of work produced.
Of course all of this is in flux and changing because of the rise of remote work.
There are a lot of very talented people that have values that don't align that way for a variety of extremely valid reasons.
As someone who has the right to work in both Canada and the US, and who has been attempted to recruit by SV companies, I prefer the benefits of living where I do in Canada over the lifestyle costs of living in SV with 3x the money.
In fact Google pays Canadian similar to their non-premiun US locations like Raleigh.
I'm surprised cross boarder hiring hasn't become even more popular with the pandemic and forced work-from-homeness. Canadians mostly speak English (even most Quebecois do!) and are in a compatible timezone with the majority of the developers either in St. Lawrence valley or Vancouver and thus being either EST or PST.
Also, while the holidays differ I think the total number of stats is pretty close to the same.
It is going to be an interesting decade, the rise of working from home and ai creeping into every profession will make for some radical changes. Engineering managers can only hold their accountants overlords back for so long. I do hope SFO stops being the centre of the tech world as it is very inefficient, but that's probably 30-40 years away at the earliest unless all out war is triggered.
I'm not saying we're smarter or innately better, but coding is a tradeskill and the masters of the trade are almost all here.
I'm interested to see how much this changes over the next decade, though, since a lot of people have scattered across the globe thanks to remote work finally catching on.
The experience in scaling products that big and that fast is concentrated and not evenly distributed.
More precisely, the number of people who were there when "scaling products that big and that fast" applied to Facebook (or other comparable companies) is a tiny fraction of all SV developers.
But that's far away from the claim from above, that any 250k+ total comp developer from SV can outprogram good people from outside the US who don't make 250k+ total comp in basically any benchmark.
Most SV employees never have to solve these problems.
I picked frontend intentionally because it's probably the area that's the furthest away from these problems, but still compensated at 250k+ levels, if you work in SV for the right employers.
But even among backend engineers, most have never touched hard to parallelize problems. I'd argue that most (definitely not all) FAANG backend tasks are easily scalable. Implementing them still takes work, whch is done by most FAANG engineers. FAANG level tooling definitely helps, and while developing that tooling is hard, the people who have built such tooling are only a tiny subset of FAANG employees (regardless whether they are more skilled than the average FAANG employee or not).
For one, developing frontends at the scale and complexity needed for quickly growing organizations is just as complex as backend scaling in a variety of ways.
If you're a frontend expert and can operate in the way needed to support a rapidly growing business/product - you can make just as much if not more than backend engineers (500k+ easily at senior levels). This instinct around large-scale abstractions is not developed by building small sites over and over gain. This is just simply experience not everyone has because it requires context.
Also programming ability alone is not the sole reason for the outsized comp packages. In my view, it is at most 1/3rd of the reason. There are a lot of other qualities that are important that can only be gained through a specific kind of experience.
What do you mean by large scale abstractions?
Generally, small frontends are different from large frontends. Already because you need to work on a team instead of being able to do it alone. But adding features is a quite orthogonal concern to scaling by the number of users I'd say. There can be extremely complex frontends that only have a dozen concurrent users (think some company internal admin console), and nothing prevents a small frontend from targetting billions. E.g. Google search used to have a quite simple frontend 17 years ago, and it still looks quite simple to the outside, but the results side has obviously been heavily enriched since.
From the frontend point of view, it is just calling an API, and processing its results, while there is backend magic happening to make it scalable. I'm disregarding SSR here for a moment. It shouldn't matter if the same frontend code is loaded by ten users or hundreds, or billions.
> There are a lot of other qualities that are important that can only be gained through a specific kind of experience.
Can you list some of those qualities? I'm curious.
Some problem that would hit one customer every few years and go away on refresh for a local mom & pop website will irritate thousands of people a day on Google.com, and those people will band together on Facebook into a support group, and that support group will get media coverage
You try to look into the issue and you can't reproduce it at all, you just have to figure it out from tiny wisps of clues
Software is a people problem and what big tech looks for is top notch technical skills and the mindset/ability to solve them in a chaotic environment.
I'm fairly certain you're confusing anecdotes and culture with "big tech vs. your local shop". Software being a people problem meaning big tech is more people focused is a false dichotomy.
Most of the big tech companies' engineers are doing the same type of work as outside big tech. However, their internal practices are scattered and faster than outside (IME), which means you have to be able to keep your head above water, drive your own career, and deliver impact. You need to understand the product space quite well, as you are expected to be a partner. Rather than delivering code, you are delivering value.
Maybe 1 in 20 engineers that I've worked with outside big tech had this trait. I think they set the tech bar high, but the real skill differentiation I have seen is ownership.
That, perhaps, you have never had to come in and save any team at my company, or thousands of other companies, because we are competent developers?
Being able to do the work of 10 people once, does not mean that you are able to take 10 people from any company outside of a specific geographic area and replace them with one of you.
If paying 250k+ for a developer is insane, then so is a company able to pay 250k+ without running huge losses. Those developers still make peanuts compared to what the stakeholders and executives do, despite these salaries. It's ignoring the elephant in the room which is fat profits being with a few companies, subsequently making it tougher to compete for anyone not born in wealth or able to get VC money to play with.
SV could both bankrupt dozens of companies outside SV, slash that 250k locally and up to ante globally if it had a mentality shift, in less than a few years. That's how insane the profits are.
While I think the premise is wrong - not anyone can learn to code - there are also levels of "learn to code" so it's simpler to spin up a create-react-app and modify it a bit for a code school credit compared to advanced Scala - it's also true that learning to code is nowhere near the hardest part of software engineering productivity.
In the States, those things can exceed the salary cost of the engineer.
Should be outsourcing at the programme or project level, not hiring employees to add to US teams, then.
So in reality we almost always end up with a non zero price where supply equals demand.
My go to example is oxygen. There is more than enough of it for everyone, so there is no possibility/need to charge money for it.
Beyond that, I have no doubt that there are some people who would willingly charge everyone for oxygen, if there was only a way. This would be driven by the idea that even though there is plenty in the atmosphere, a person only needs to be deprived of it for a little while before the situation becomes dire.
My appetite for food is not infinite, I can only eat so much. Same, but less so, for cars, clothes, etc. in some abstract sense, maybe, there are people that want 100 cars, but not really.
Even with housing, demand is not really infinite. I don’t want to redo my kitchen every year.
But software, every company has a backlog far longer than they will ever be able to do, and the ROI is there for the most part.
No one actually believes "anyone can code" when you're at faang level of talent.
Source: recent offers and friends who recently got offers
It's not "easy" to achieve this, but it might be possible. One doesn't just wake up and decide to go work at a FAANG and get a >90% percentile salary from them for the level.
e.g. Amazon was giving out SDE II (google L4 equivlant) @ 400k (first year no RSU but cash bonus paid out monthly) about 2 months ago.
re L3 level, if you have a master's or 1+ yr exp, while you're still at the entry level, you are considered "industrial hire" and 300 is very attainable
in my current company for new hires (again justed to google's leveling) we have L5 550+ and L6 650+ (200~300 cash + RSU , not pre-IPO bs)
In my earlier years I used to doubt those "ridiculous" numbers until I simply asked for more. There are plenty of companies out there, many medium-big sized non-FAANG companies pay just as well.
Source: Nearly everyone I came up with as a programmer is in the 250+ range, and not just at FAANG. Check out https://levels.fyi
In my last job search which wasn't too long ago, I got several offers and not a single one was below $400k.
I started my career in small companies and startups and it took me a long time to understand how TC works. Both in tech and finance base salaries are typically around 200 or less, but total compensations factoring in both bonuses and RSUs brings the amount of money you bring in each year much higher.
It's gotten much better in recent years with levels.fyi and the like helping more people to see this, but I found that a few years back if you didn't go to an elite school you likely didn't have someone explain to you how comp works.
If you want to make > 250k you absolutely can, and it doesn't mean selling your soul. Don't convince yourself that these TC levels are myths.
Though I do suspect we'll see dotcom level changes in comp soon.