Across Canada - Off-Grid Software Engineering
Introduction
I spent half of 2024 travelling across Canada, and I really mean ACROSS! Starting from our home on Vancouver Island, we crossed the entire breadth of the country, before turning around in St. John’s (Newfoundland), and doing most of it again on the return journey. My fiance and I covered over 30,000km in the 6 months we were on the road, spending time in all 10 of the southern provinces: British Columbia, Alberta, Saskatchewan, Manitoba, Ontario, Quebec, New Brunswick, Prince Edward Island, Nova Scotia, & Newfoundland and Labrador.
It’s not hyperbole when I say it was truly a life changing experience. While I plan to discuss it further on this blog in the future, for this post I’d like to view it specifically through the lens of Software Engineering. While I did take a good amount of vacation during this trip, I spent the majority of it working in my role as a remote Software Engineer. This post is going to discuss how I juggled my full time job and full time travel.
Challenges
I’ll take a moment here to elaborate on “Off-Grid Software Engineering”… Often the most majestic places have no cell service and aren’t near a full-service campground, which is certainly part of the appeal! It does make getting work done slightly more complicated, but not impossible! Let’s discuss some of these difficulties in more detail:
Connectivity - Getting online is a prerequisite for modern life, and mandatory for remote work. Canada is a vast country, not all of it is covered by cell service. We need to have redundant modes forms of connectivity to be ready for all eventualities. We should also consider the other requirements for our network connections: do they need to be up all the time (i.e. on-call coverage)? Do we rank latency above available bandwidth? How do we deal with rate limits?
Power - The utility most taken for granted… Do you even think about how your home is powered? Or how much your technology use contributes to the your consumption vs other household appliances? All of these things come into clear focus when you’re tasked with generating your own power (or locating a suitable charging spot), and storing it for later use.
Ergonomics - A seemingly rogue suggestion, but 6 months in a tight enclosed space might make you reconsider. We spend a lot of time thinking about the most ergonomic desk setups for our home offices, we should extend a modicum of this to “portable” setups.
Improvements 2023 -> 2024
This cross-continental trip was not our first long-term vehicle-based excursion, we spent half of 2023 meandering around British Columbia and western Alberta. This enabled us to identify some upgrades that proved pivotal:
More solar - We undertook this trip in our travel trailer, which we had equipped with a 100AH Lithium battery, alongside the standard issue 180W roof-mounted solar panel. We discovered in 2023 that there were two mains issues: 180W isn’t really enough, and being mounted on the roof lead to non-ideal capture most of the time. I.e. in scenarios where we parked under a tree. We therefore decided to add an additional 200W of solar power, via a panel that we could place in direct sunlight, and move throughout the day to track the sun’s path. This was a huge success, (anecdotally) reducing our generator usage by upwards of 50%. We’re out in the sticks to get away from noise pollution, not create our own!
More mobile data - Bigger is always better! You never know when you’re going to be without free WiFi, or when you need to be travelling and working simultaneously. Having more data than we really needed gave us extra flexibility that came in handy on several occasions. This is a great redundancy to have, at minimal extra expense.
Apple Silicon - Slightly out of our control, but our biggest consumer of electrons in 2023 was the old Intel MacBook Pro issued by my employer. Switching to an M1 Pro 16” MacBook Pro came with a wealth of benefits, in relation to this context: I could do a whole day’s work on one charge (most of the time). Halving the number of Watt Hours dedicated to powering my development machine.
Key Hardware
What equipment did we need to enable Off-Grid Software Engineering?
Starlink - Mobile data is all well and good, until there’s no service. Hands down the most important piece of equipment, broadband-class internet wherever you have a large enough unobstructed view skyward (heavily wooded campsites are Starlink’s achilles heel). We used over 1TB of data during this trip, regularly seeing speeds over 100mbps. Slightly higher latency than a hardwired fibre connection, but certainly not high enough to cause issue with video calls.
Solar - As mentioned before, absolutely invaluable. The additional solar power combined with reduced development-machine consumption pushed our generation capabilities higher than our usual drain in the peak summer.
Generator - Surprised to see this here? After waxing lyrical about our solar capabilities. Note the operative “in the peak summer”, if the conditions weren’t perfect (cloudless sky), we didn’t move the secondary panel to follow the sun, or we used 2 computers at once (!) - we couldn’t keep up with the demands. This was a great backup, and allowed us to avoid campgrounds (by allowing us to generate power in remote sites) frequently. We come back again to redundancy, keeping this with us saved our ass on multiple occasions, and provided great peace of mind.
Top tip: pony up for the good generator - we never had any issues with our Honda, is sat quietly charging our batteries, without so much as a hiccup.
Key Software
We’re going to avoid talking about tools for Software Engineering in here (I’m saving that for another blog post), but let’s look at some invaluable tools for the task of traveling with a 43ft rig:
Google Maps (Satellite maps) - Not specifically talking about navigation here (for which GMaps did a typically sterling job), but for finding places to park our oversized rig. I can’t comprehend the number of hours spend browsing satellite maps looking for places to park near larger cities, or checking whether a camping spot would have enough sky access for a good Starlink connection.
Top tip: Cache all your maps for navigation. Many times we checked routes while connected to Starlink, packed it away, and then realized we didn’t have the right maps downloaded.
iOverlander - A fantastic resource for finding camping spots off the beaten track. Avoiding paying for overcrowded, loud, and expensive campgrounds saved us thousands on this trip. Not to mention the opportunity to be at one with the breaktaking nature of this country. Our hardware setup allowed us to take full advantage of some beautiful spots.
Compass - Seems like an odd one, but the motorized Starlink dish always orientates itself due North (at least here in the northern hemisphere) after powering on. A quick check of the compass allows better placement of the dish, and can reduce the time-to-connection dramatically. Often being the difference between a stable connection, and no connection at all.
Honorable Mentions
GAN charger - While not strictly necessary, an efficient, multi-ported, well built charger was a great addition to our kit. We picked an Anker 747, providing 150W to keep all of our various devices topped off. Top tip: Get some good quality long cables, which allows the charger itself to stay out of the way (key in the small space of a compact RV).
iPhone 15 Pro Max - “The best camera is the one you have with you”. Combined with the huge battery of the Pro Max, it always had charge, and was often a helpful work device (joining calls without needing the large laptop, oncall pager duty, and plenty of power for mobile tethering).
2020 Aspen Trail 1900RB + 2014 Jeep Grand Cherokee - The rig! While we initially wanted a Sprinter van, we ended up going with this combination. Initially because of the prohibitive cost of a good van, but also because we realized me working 8 hours per day would trap my partner and I together. This setup allows for independent sorties, and more convenient inner city transportation. (There will be a separate post on this setup eventually)
Future Work
While we’re not embarking on a voyage of such epic proportions this year, I do want to continue to iterate on my portable setup. Current state and ponderings coming in a post soon.
As for other future topics, we can certainly discuss the developer-side of this excursion. First up will be: How best to optimize for single screen development.