Finding remote jobs isn't really the problem. The challenge is landing the job, and often it's less about your programming skills and more about fit. Here are a few examples of websites that I think do a good job of presenting a more complete picture of a developer:
There's also a "Who's hiring" thread here every month that has plenty of remote job posts.
So showcase those personal projects you've worked on, translate your work on them into how you'd be successful working with a remote team, and start finding companies to apply for. I'd try to find ones that have hired Canadians first if possible (many distributed teams will list the many locations their company is currently in on their careers page).
Here's a list of 200+ remote friendly companies: http://hallwayapp.com/articles/list-companies-remote-work-fr.... You can also try searching angel.co jobs listings and adding "earth" as your preferred location.
I'm Canadian and have worked as a contractor. The absolute best advice I can give you is that, if this statement is true, it is because you severely fucked up.
When you're a contractor, those benefits come from you. It means extra administrative work on your end and, depending on your income levels, it might make sense to incorporate, which means significantly more administrative work. But, that's why contractors generally charge at least 2-3x the normal salary a company would pay them.
I've been having this conversation with coworkers a lot lately. In San Diego, a senior sw guy can expect to pull $120-160k(there are outliers... I have a friend making $240k, but it's unsustainable) as an employee with benefits. As an independent contractor, you can make around $75-120 / hour. As a SW consulting company you can get $120-180 / hour. These are all rough numbers based on talking with people.
I don't know why there is a disparity between what ICs and consulting companies make but it seems to exist.
The amount you charge also depends on many factors (difficulty, on-site vs remote, total hours per week, ability of company to pay, etc).
For a independent consultant, you carry the risk of contract termination, added headache of invoicing and looking for work, so to make it worth it, you charge more hourly then you would if you're an employee. You don't have to work 40hrs a week, but it makes your time worth it to you. For the employer, they need your skills on a temporary or project basis, or they have issues filling a permanent role (non sexy industry or company, bad location, etc).
Consulting firms have overhead and margins to hit so they charge more. The benefit to the client is they get a whole team (usually), which can include UX, UI, and Engineering, and sometimes product management. For companies who can't build teams and need to execute on fixing, saving, or establishing a new product, Consulting firms can be attractive - eg, $500K for year 1 at $150/hr is cheaper than hiring 3 engineers and product manager with fully burdened and competitive salaries. Especially if you have trouble hiring good people.
The benefits, if they are competitive, will cost the company ~20-25k. The employer's portion of social security taxes and medicare is another 10k. Add vacation and holidays (~25 days a year, out of 260 work days), so you have to multiply everything by 1.106. That employee sick for a few days? Had a kid? Grandpa died, and they are taking unpaid time off for bereavement?
After all that math, the 120k/year employee will end up costing the company ~$80/hour to employ... But only $60 of that goes to their salary.
And, of course, he needs a manager. And a desk. And bathroom facilities. And HR. All of these costs keep running up, both for the employee, and the contractor. At the end of the day, if overhead is another $20/hour, said employee will cost you $100/hour.
Or you can pay a contractor $120/hour in cash, $20 in your own overhead, and the end cost is $140/hour. You're paying 40% more for someone who is probably an expert in whatever you want them to do, that you can fire anytime there's a lack of work. (Yes, you can fire FTEs at any time, but that scares the rest of the company - not extending a contract doesn't.)
Where I'm from, a senior sw person is lucky to crack six figures in Canadian dollars. The thought of getting paid $160k a year is akin to dreaming I'll get signed to a major league contract. Typically, developers either become something else where code is their secret weapon, or they top out at below six figures.
There are benefits, working conditions are amazing and so I'm confident that for these people, the total package is worth into the six figure range.
However, the same people who will top out at around $95k a year here (that's roughly $45 an hour) can bill (as you said) in the $75 - $120 an hour. Add in a favourable US - Canadian exchange rate and yeah, you're looking at 2-3 times...
That's not profit and particularly if you have a family, it's expensive to get the same kinds of benefits. But the raw figures speak for themselves.
I hate reminding myself what a stark difference a border makes. And, don't even tell me the average daytime temperature in San Diego in January...
$120/hr is on the high side of what I've seen fellow ICs make in this town. $120k/yr is on the low side of what I've seen senior devs make in this town. 2x is suprising.
Also post on your social media accounts that you're looking for remote work and make sure you have as attractive as an online presence as possible to show off your past work and skills.
> Also, will I need a work visa if I’m to be employed by a US company, even if I work from Canada?
> Do US companies typically hire you as a contractor or can you be employed as an employee? I’m asking because contractors usually have no benefits here, including holidays/vacation/sick days, insurance, company-paid parental leave and all other perks so it has a huge impact on effective salary.
Most US-based remote tech companies work this way:
For people working outside of the US, they will be technically employed as contractors, but often treated like full-time team members in other ways, including vacation/PTO/sick days/parental leave. (This is how we do it at Close.io: http://jobs.close.io/). Medical benefits/insurance and retirement plans (401k) are very country-specific so that is far less commonly offered for non-US team members.
Is this legal?
I once wanted to hire a friend of mine at a company as a contractor (he had all of the required skills and my manager was impressed with him). The company wouldn't hire him directly but were more than willing to give him his asking rate net after he went through the consulting agency - ie if he wanted $85/hour as a W2 contractor they were willing to pay the consulting company $110/hour so he would still get his $85 an hour.
 W2 Contractor means that the consulting company paid the employees half of social security and Medicare and he would be eligible for unemployment. He was getting health benefits from his wife.
Setting contact expectations is kinda important, as most employee relationships are considered very feudal serf in nature whereas a contractor could be working somewhere else on someone elses job at any time... its easy to write a contract with a product and a due date, but harder to specify a service of general short term availability for whatever reason.
The problem I find with remote work usually is that people pay you less than if you work onsite. when it's an on-site position you compete with local people in the market rates. when it's remote you compete with people in India, China etc that can get paid much less. Another problem I find is that it's harder/impossible for senior level engineers find projects, especially if you need to manage people. companies want their managers to be on-site.
Is this actually a problem, or even particularly surprising? Remote positions provide massive non-monetary benefits to employees (flexibility in general, but particularly: you can live wherever you want, including on the road, with no commute, in low cost-of-living areas, closer to other things you value, etc). These benefits attract more applicants, which alters the supply/demand balance, with predictable effect on market salary. Remote work should be understood as a win-win, where the employee gets significant quality-of-life and maybe reduced cost of living in exchange for somewhat reduced salary, and the employer gets significantly reduced costs (directly in terms of salary and office space, indirectly in terms of easier recruitment) in exchange for (maybe) somewhat harder management. If you don't like the employee-side trade-off, tough to be you, because you're competing against a lot of people who do.
> when it's remote you compete with people in India, China
It's not clear that this is really true. It's relatively easy to run a distributed organization that has a common native language, legal system, and continent. Language barriers, massive timezone discrepancies, and ..challenging international legal systems make successful management much harder. In practice, it seems that many companies are unwilling to take on those costs and risks.
- Internet - Electricity, water and other utilities - Office maintenance (i.e., how much of his home space is being used by the company? including surface, desks, equipment, etc) - Sometimes food
In Mexico all this toghether can get to up to $500 USD a month per person. Can't imagine how much that would be in the USA.
I can write off my entire phone and internet bills and all office supplies. I can also include a portion of my rent (or mortgage) and utilities proportional to the size of my office and the total square footage of the dwelling. The actual list of claim-able expenses does not end there.
I also burn a hell of a lot less fuel since I have no commute.
I wouldn't have a second thought of doing this in the UK because that is subsidised/covered.
I also disagree that you're competing, at least directly, with someone from the countries you listed. Depends on where you are and who you are, but as a remote employee I'm still working from the same timezone I was working from when I was in the office, it's very cheap to fly me onsite as I'm next to a major airport, and am a native English speaker. Hiring someone who wants to work from their home in the US isn't immediately the equivalent of hiring someone from another country with possible timezone, visa and language barriers.
As far as companies not wanting to hire remote workers for senior level positions, I found it hard to find any senior developer/architect contracting positions that paid well in my local market. All of the companies that wanted my skill set at my price wanted permanent employees. I was going to contract this time around but I ended up takinng a perm position.
I also provide some helpful getting started work as well, stuff like about polishing your resume and getting your online presence in good shape.
It's not like a typical staffing agency arrangement in that I interviewed with the US company, negotiated with the US company, got an offer letter (of "engagement", not "employment") with the US company, etc - CXC only came in at the final stage.
So, that may help with the visa options.
Also, check out https://news.ycombinator.com/item?id=16768024 for more recent discussion.
Make sure that you have the ability and drive to complete it. One person I know just really isn't compatible with remote work, they keep getting and losing remote work jobs because they just don't take it seriously. Near as I can tell, they will just blow off work, dick around on their phone and social media, etc.
On the other hand, I have a co-worker who seems to spend all day at work reading reddit and watching youtube, in the office, so working on-site isn't a solution here.
But, in short, have a compelling story you can tell prospective employers about how you work, how you have an office set up at home, and how you actually treat it like work. If they don't ask outright, they will probably be looking for signs anyway.
Their VC forced everyone to work on-site later, so I left.
Switched to freelancing later, because I didn't want to meddle with all this company politics anymore and live by my own rules.
Working for remote 4 years now, 2 years as an employee and 2 years as consultant. Wouldn't go back anymore.
In the US, if you're a contractor, they can't treat you as an employee. A few years back, Microsoft contractors complained that they did everything an employee did but didn't receive the same benefits. As a result, law(s) were put in place forbidding employers to treat contractors as employees in everything but name. 
Independent contractors are responsible for all their own benefits. If you work for someplace as an employee that in turn hires you out, you can sometimes get benefits through them but you also share a portion of what the client pays them.
If you want vacation and benefits, you might want to consider a remote employee position for a US company.
> Also, will I need a work visa if I’m to be employed by a US company, even if I work from Canada?
The very first thing we look for in new employees is indicators that they will be able to perform in a remote environment. This is by far our most important flag.
Good indicators for remote performance could obviously be previous remote experience, but also experience as a freelancer or founder of a startup. We do hire people without these if they are great communicators and obvious self-starters during a take-home task that we give everyone.
Remote work is a mindset, and in my opinion, a skill. You have to be ultra independent. You have to deal with little to no communication, which means you aren't going to be tapping someone on the shouler for help. You have to set your own hours, and you have to deliver, no excuses.
I think that it's highly unlikely that you'll find work as a generalist. Most contracts that are general are going to seed from the local area. When the search gets more specific, companies start being more open to dealing with remote work.
Also, learn Linux or Unix if you aren't using already. As a contractor, you have to supply your own equipment, get set up, and get things working (in the US), and by golly, things better load up and run when you submit code. An employer is supposed to supply your computer, but I'm not sure how often that really works out.
There are many ways to get work. I know this thread is getting flooded with various remote position sites, but I personally never got work from them. Be open to working on tech you aren't familiar with, and be open to doing small jobs for companies that aren't really well-known. Some of my best and most consistent clients were non-tech companies that needed small jobs done now and then.
I would think it was just the opposite. As a contractor, I wouldn't even try to get a gig unless I knew at least 90% of the technology. I would think a company wouldn't be too happy about paying someone to learn a certain tech stack.
As a full time employee, I usually go for jobs where I don't have but at most 70% of the required skills (and I'm honest about it), companies are willing to give FTEs some amount of ramp up time and they could care less if you work extra hours to come up to speed to learn - they don't have to pay more.
I want to get something similiar capped around 80 hours a month. I found that position by talking with the founder for a year on angellist after he went through a number of cheaper php employees he needed someone to solidify the code base and add in advanced features. Once that was done he was able to go back to younger and cheaper.
I would never do it now, I couldn't squeeze in the time between working full time, exercising, spending time with my family, and just keeping up with technology.
At some point, the marginal utility of extra money doesn't mean that much. I'm by no means rich, but extra money wouldn't change my lifestyle.
eg Moonlightwork sounds like it should be for moonlighters like this, but looks to be full time jobs.
More details: One of them was a bakery that was taking all its orders on paper, so I developed a simple but powerful system for them to track their orders in a database, and other was a small investment shop(read: a pair of people managing a millionaire's money) who were looking for a way to track trades and get on with the important stuff rather than waste two hours a day updating an Excel spreadsheet. My biggest problem I haven't been able to leverage these jobs into continuous passive income.
The downside to this is these type of companies still put out ads in the local paper, and local craigslist, or the job board associated with the language they standardized on, so it takes more digging to find them.
Because of your visa requirement you most likely won't be able to find work with smaller US companies. In my experience the smaller ones are less likely to have a full HR department and less likely to want to deal with that extra hurdle. On the flip side smaller Canadian companies are still an option.
To answer some of your questions:
Q: Where should I start?
For companies that you see on those boards, follow their social accounts and maybe the accounts of their founders/leadership. They'll often tweet about postings prior to them even going up on a job board.
Q: How do I make my resume attractive?
One of the most critical parts of remote cultures is being an effective communicator. Since you won't be in an office to bounce ideas around, you need to show that you can express your thoughts. Your resume itself will convey some of this, but if you have links to blog posts/essays that's great to see as well.
Aside from that, always good to see examples of work that you're proud of.
Q: Will I need a Visa if employed by a US company?
Not necessarily. If the company has a Canadian office, they'll likely take you on as a full time employee and pay all the regular benefits and payroll taxes for you. If they don't, you'll likely work as a contractor and will have to decide if you want to incorporate or be a sole proprietor. You do not require a Visa to be a Canadian working for a US company as a contractor.
You are correct that contractors have no insurance/benefits, but that's usually OK because you can negotiate higher wages as a contractor and pay for benefits yourself via something like Blue Cross (https://on.bluecross.ca/health-insurance/health-insurance-so...).
If you have a spouse, it's also possible you're covered under their plan so that's a good thing to check.
Regarding holidays/vacation, it's just something to negotiate as part of your arrangement. If you're "consulting" for one company, you're effectively a full-time employee and will likely have some level of vacation time built in to your contract.
Parse.ly has amazing holiday and parental leave policies and we're hiring https://www.parse.ly/jobs/#frontend-engineer :).
You can also learn more about the how and why of our distributed team here https://blog.parse.ly/post/3203/the-how-and-why-of-parse-lys....