Shawn Price

The blog

More Canadian Software Engineers Should Work Remotely

The benefits of distributed work and the US Dollar are too good to pass up.

More Canadian Software Engineers Should Work Remotely

Knowledge work is changing. There are a growing number of companies creating remote teams. Many companies are completely distributed. These changes are creating leverage for software engineers living in markets outside the US to raise their salaries. For those who haven't worked remote it can be an adjustment. But there's an incredible payoff.

I remember signing the contracting agreement to work with a distributed early stage US based startup in early 2018. With no head office, the company had employees across two continents, three countries, and four time-zones.

There were many things about this role and company that excited me. The product was in a niche space of personal interest. And I would have a chance to work 100% remote, which I had been wanting to do for a few years. But there were two things which would have a big impact. I'd be earning a US software engineer's salary. And I'd be earning US dollars while spending Canadian dollars.

Tech talent quality vs cost analysis by city

All Canadian software engineers should stare long and hard at the chart above. Yes the X axis is subjective. "Labor Quality" is the percentage of employees who have earned degrees from specific universities. But the Y axis is concrete. There is a tremendous salary difference based on an employee's longitude and latitude. Ottawa, Vancouver, Toronto, and Montréal (the only Canadian cities included) fare the worst. Of course this is a natural outcome of market economies. But distributed work is flattening this inequality.

Past performance is no indication of future performance. But for 53 of the past 67 years (79%) it has been better to earn US dollars and spend Canadian dollars if one is able. In that time the average USD/CAD exchange rate has been 1.17 while the median has been 1.14. It's currently 1.33.

Even with an equal exchange rate it would be preferable to earn a US software engineering salary. The median Canadian "Software Engineer" salary is CA$72,000. The median US salary is US$91,000.

When the current exchange rate is coupled with the salary difference the magic happens. US$91,000 is currently about CA$120,000. A difference of CA$48,000 or 66% relative to CA$72,000.

And we can look at specific cities to compare cost of living vs. salary. In US dollar terms, the cost of living in Vancouver is about 4.8% higher than Austin. While the median Software Engineer salary in Austin is 40% higher than Vancouver when accounting for the exchange rate.

It's important to note that there is upward pressure on Canadian tech salaries. For example the median Canadian Amazon "Software Engineer" salary is CA$115,000. The median US Amazon equivalent is US$120,000. This is still a difference of about CA$45,000 or 39% higher when accounting for the exchange rate.

I've noticed the effects of this upward pressure on Vancouver salaries. Many Vancouver companies are raising their salaries at a rate well above that of inflation. But some aren't keeping up. A favourite lunch spot of mine from a couple of years ago is near the Hootsuite office. It seemed that every Friday there was a going away party for someone from Hootsuite leaving for Amazon.

US startups are starved for talent. Startups in New York, San Francisco, Austin, Seattle, and elsewhere are being forced to create distributed teams. They want to pay a Senior Software Engineer US$118,000 to sit at a desk in their local office but they can't. So they're more than happy to pay someone with the same (and often better) skill set the same salary to sit at their own desk.

Remote work isn't for everyone. The majority of people I know prefer to work in an office where they can physically interact with their co-workers. But I wonder whether some of these people would prefer to pair program in person, or enjoy a 40%-60% raise.

Notes: LinkedIn Salary used for salary data, Numbeo used for cost of living data, DuckDuckGo used for exchange rate data, and Fxtop used for historical exchange rate data.

Thanks to Helen Stortini for reading drafts of this post

Saying Goodbye

A manager playbook for when team members leave the team.

"Can we talk for a minute." Here it is. I have usually seen this coming for weeks, if not months. I've done what I can to clear up any questions or issues. I've often coached to get to the root cause of the issue or dissatisfaction. Every now and then it's a lever I have some level of control over. Often it's not.

Each time I've heard "Can we talk for a minute", I've known what's coming next. Whether over Slack or in person after a meeting, there's something in the tone or timing that gives it away. Our team is about to become one member fewer.

I've been there. Whenever I've told my manager that I'm leaving there has been a range of emotions. As a manager who has said goodbye to many amazing team members over the years, I've developed a playbook of sorts.

"Thank you." Giving thanks with authenticity puts everyone at ease. Every team member has put their unique stamp on an organization, team, and project. I acknowledge the dent they've made during their tenure.

"What can I do to change your mind?" People leave a role for any number of reasons. One of those is that a team member feels something isn't working and that nothing can change it. In my experience, there is often more room for change than many think possible. It's important to understand the root cause of any dissatisfaction. This allows me as a manager to grow, for the team to grow, and for the organization to grow. There's rarely a time when someone does change their mind, but I have seen it happen.

"Congratulations." I know that new opportunities are often filled with excitement. Change is good. Let's celebrate that.

"Here's what the next few weeks will look like." This is the most important part. Explaining in detail what will happen next and when it will happen goes a long way in lowering any anxiety. When and where to return equipment. Who will take care of the exit-interview and what does that even look like. I try to spend the right amount of time here so there is very clear agreement and alignment on the next steps.

"This is what I'll need from you." Every team member has their own specific domain knowledge. If they haven't already, they need to document it. There are likely also issues to complete or code reviews to wrap up. I like to work together to agree on the best use of time.

"What can I do to ensure your remaining days on this team are memorable?" More than anything else, people will always will miss their team. It's surprising the little things which can make all the difference. I like to dig and find a few things that will leave an impact.

"I want you to know that I can offer to be your Engineering Manager for life." This last item can raise some eyebrows. I love supporting individuals achieve their best and I like to do it as much as possible. I get my energy from helping individuals and teams uncover the ways in which they work well together. I give this offer for two reasons. First is that I know my experience can help my former team members in the future. Whether trying to decide a new career move or choose a volunteer opportunity. Whether negotiating compensation, or making sense of their options package. I also know how important it is to nurture personal and professional networks. It's fun to reconnect with people whom I shared so much with and learn how their life has evolved.

As a team member I've had excellent, good, and not-so-good goodbye's from my teams. For a leader, saying goodbye comes with the territory. Leading with empathy and support goes a long way towards ending things on a high note.

Good Morning

Goals and systems each have their place. Be mindful of choosing the right tool for the job.

Good morning. It's a breath after 5:00am and were it not one of the longest days of the year the amount of light out would be surprising. A Saturday, and I'm up and about by choice.

There's something special about the early hours. Living near a city centre, the easiest thing to notice is the quiet. At first there is no traffic. But then a car goes by. A dog barks. The birds sing. I enjoy my coffee. But it's more than the quiet. There is a stillness around me.

I've often had the goal of starting my day early. I've always failed. What's working now is a system. More work, my own system has involved practicing changes to my routine.

This system is by no means a success yet. There are still mornings I sleep longer than planned. But I can see it's working and my habits are changing. Not one to to do too much at once, I'm ready for another system.

I have my own goals which involve writing. But writing is not the goal. It's the system and this blog will be my home for that.

Enjoy your day.

You've successfully subscribed to Shawn Price!