Summary
Some devs are 10x. Some people are talented designers. Some are capable of staring at the screen for 10 hours in a row.
I'm nothing like that. I'm a regular dude.
But I have one little flex few of my colleagues have: I got specialized in dev and training missions in hard-to-reach places.
Those missions have different requirements that traditional ones. You can't assume you'll have anything at hand, so you need to pack all sorts of things, from a bar of soap to HDMI cables to protective gloves to a hunting knife.
You also need a backup for everything. You'll pack 2 laptops, 2 IDs, and assume one will get lost, stolen or destroyed.
And you'll set up a lot of software to be available to work offline. For example, I may have a few Gb of Python installers, duplicated on two hard drives, stored in different bags.
The road very much taken
I always thought how bonkers it was that we asked kids to jump from having to raise their hand to be allowed to pee, to choose the path that will define their own life in the course of a few weeks.
Guidance counselors are a joke, because life is weird, and most people don't end up at all where they expected to go. Of course most youngsters don't expect much, because they don't know what anything is about. Even among the rare ones that were lucky enough to know what field they wanted to be in, and how to start in that direction, for example by enrolling in a specific university.
And so my grandmother tried to become rich in Venezuela, my mother took care of pets and performed magic shows, my father took me all around the world for his work and my other grandfather sold shoes.
I have friends that were, or are, drug dealers, prostitutes, millionaires, nurses, cooks, teachers... Some are even front end developers! The madness.
Needless to say, most of them didn't really plan to be where they are in life, and neither did I.
You see, I have kind of a strange specialty.
I perform dev and training gigs in hard-to-reach places. In the desert, in the snow, in a remote Asian village or a jungle town in Africa.
It's not the only thing I do. Truth is, I do mostly regular industry stuff, in start ups, in corporate offices, on Teams, from my living room, etc.
But this is the one thing I do that most people don't. The one thing that makes me peculiar.
How did I end up doing this?
I have no idea. It just... happened.
Now I'm known by my some of my customer as the guy you send there because other people don't wanna go, or wouldn't know how. If nobody speaks the language, at least hire the guy who is not afraid of looking like a fool.
So I'm in a position to write an article that few people would be capable to write.
How do you prepare for such mission?
Stating the obvious
At first I didn't plan to mention those, because that's pretty much the ground zero, but I realized many people don't travel that much, so I'll go through the typical list you need to check for traveling.
Yes, you have to figure out the logistics of your travel. This includes transport, visa, vaccines, checking the weather, bringing enough of the proper clothes.
Yes, you have to read the latest news, go to the gov and embassy websites to know what you are getting into, make sure you know recommendations for the area, etc. Evidently, you don't want to torrent movies in Germany, be invited to drink alone in Russia, get caught with drugs in Thailand, drink tap water where you should not, and so forth.
Yes, you need to take care of how you are going to pay for things once you arrive, which in some countries like Burma or Cuba have a few layers.
Yes, friends and family should know your itinerary with an ETA for when you leave and come back.
And sure, you'll want to bring in painkillers, C vitamins and activated charcoal no matter where you go.
That's the basics. If you go on holiday, those are also good advice.
However, I want to talk about the specific things for those missions that may end up in the middle of goats, with no signal, no running water, no electricity, and a job to do anyway.
Don't assume you'll have anything
If you travel a lot, you know in 2023 you can buy pretty much the bear bare necessities anywhere. Tim Ferris famously advice to not bother bringing things like toothbrush or show gel, because they take space and you can cheaply acquire them once you arrive. It allows for traveling light, and it's fun. You get to interact with locals; it's overall, a richer traveling experience.
But in our context, I am not a tourist. First, I need to perform, second, where I go I may not have shops. Or much of anything really.
So I don't rely on a hotel providing a towel, I don't expect to be able to purchase razors, I pack like if I had to get by with just what I have.
This includes:
A bar of very rustic soap, because it can also be used to clean clothes.
A head light, as you make the error of taking light for granted only once.
Pens and paper, because that's the only thing that is reliable. Really.
Additional fully charged battery, they are small and commoditized now.
A multi-tool and protective gloves. Doesn't take much space, rare use, bug huge ROI if you do.
A book. I'll have to wait many times and don't want to eat the batteries.
A BIG hunting knife. You almost never use it. But you don't want to miss it when you need it. Check local laws for this one. I insist, it must be BIG.
A small wifi/ethernet access point. If the network is down, you build your own.
An HDMI/ethernet cable, adapters of all sorts, at least 2 USB C laptop chargers. Something will fail or will be missing. It's a guarantee.
Salt and a Neti Pot to clean your nose. It's disgusting, but also will save you all sorts of troubles.
A power strip and adapters. They never have enough.
Yes, this means you need to have one checked luggage. This is a business trip, not a hobo adventure. Doesn't mean you should bring a huge one, though, since you may have to carry that on rough terrain, climb stuff or be at sea. It's a balance.
Lifting weight helps with that. No kidding.
Assume destruction
Everything you bring must be something you can part with. If you bring a laptop, back it up before you go. Same with your phone. Don't bring your favorite of anything, don't bring ultra high-quality stuff unless the mission requires it.
Your equipment can be taken by authorities, it can get lost, it can get stolen or just broken. Memory may get wiped out, or corrupted. Airlines can delay you luggage delivery for days or weeks. You may even get locked out of your own devices and services for various reasons. You could have to evacuate in a hurry. Happened to me twice, and depending of the urgency, do you want to be slowed down?
One of those things will, in fact, likely happen. I factor the price of that in the quote I send the client.
You learn more and more ways of seeing your stuff go as you travel. My team lost a whole case of hard drives in Senegal once. It disappeared between the moment it came out of the plane, and the airport luggage belt. My phone died once because I didn't realize that the monsoon meant I didn't have a margin of error when going outside. I had a wall of water on me in a minute, sewage water up to my knees in 15.
I now travel with an old smart phone I don't use anymore, plus one dumb phone, with local SIM cards I buy at the airport.
I also have plastic zip bags for everything that matters, papers, money, cards, phones... It protects them from the rain, the insects, the dust, you name it.
I also never buy fancy luggage anymore. I tried expensive one with "life guarantee", and it's not worth it. They break just as well, they get lost/stolen the same way. The guarantee never covers what really happens to it in the wild.
For me, luggage is a consumable now. Headphones as well, for that matter.
Get a backup for everything
This means 2 types of ID documents, and a photocopy of each. This means 2 credit cards with different networks and bank accounts, plus cash. This means 2 hard drives, 2 laptops, 2 thumb drives.
This means your tickets should be copied to all your devices, and printed on paper.
In fact, I have my full trip printed on paper, with addresses, numbers, maps of the areas, names of persons of interest and contacts, etc.
Those back-ups should be stored in different places. One ID in your pocket, one in your small bag. One hard drive and laptop in the small bag, one in the big luggage. The idea is that when one will inevitably be not available to you anymore, you can get to the second one.
I went without ID nor card 3 weeks in Mali once. Never. Again.
Software to pack
Those kinds of missions are niche. Not many organizations need to send someone in Uganda to code a tuberculosis diagnosis software. Besides, more and more of the world is now equipped with electricity and the internet. In fact, there are some places with terrible water supply but excellent 4G signal, and with Starlink coupled to solar panels, I expect this to become only more and more common.
On top of that, I have little experience with low-level languages. Many remote places, such as platforms in the ocean or bunkers, have old systems that are completely out of my skillset. I worked mostly with Python, JS, PHP and Bash. I can sorta code in Java and I'm currently learning Rust, but I would not count them as something I would sell for short missions where I can’t ramp up the required knowledge.
This means the jobs people will send me to do are even more specialized than this niche. Mostly, they will call me for Python things, because it's been around since the nineties and it's installed by default on most Linux systems, so you find it everywhere. Plus I have a lot of practice with it, I can recall the API from the top of my head and teach it on the spot.
I will usually know the tech I’ll deal with in advance, but not always much more. If it's for training, I can ask questions about the OS, the Python version, etc.
But if it's for building a network of computers that will run on solar power and discuss by sending text messages to each other, that can be controlled by old Nokia 3310 plugged on car batteries, I don't necessarily know what I'm getting into. I've done that by the way. It was so cool.
So I'll install every single version of Python I can on both my Linux partition and my Windows one. And I'll add dozens of installers for Mac and Windows on 2 hard drives for subsequent installations on other machines. Not always possible, the clients may have locked up machines I can't plug anything into, but just to be safe.
For some missions I may even set up a partial local mirror of pypi and download a ton of documentation offline.
Getting some portable versions of run of the mill apps is useful as well. I’ve never regretted having a copy of portable Python, VLC, Firefox or Libre Office at hand. I even indulge in having binaries for ripgrep and fdfind now. We live in luxurious times, where software is amazing and disk space is cheap.
This goes without saying, everything must work out of the box without any connection. You can't have something that locks you out because it needs to update to the latest version, you can't have something depending on the cloud, you can't have trial versions that expire, or things that need a driver to be installed or a licence server to be available. Making sure you can unlock everything that requires a password is a must before you leave, including the password manager itself.
If I have a few online services I still hope to be able to use there, I attempt to use a VPN outgoing to the target country and connect from there. Geofancing is a nightmare. This is also why I don't rely on any Google service anymore, since big G will suspect foul play too easily and will lock me out of my own life on a whim, calling that security. If I do need to use a Google service, I make sure I have 3 yubikeys setup as a second factor for it, it relaxes the giant.
Still, not requiring anything online is the only really safe option.
Because USB ports may not be allowed, it's time to double check that I can share things among devices on a local network, and add new machines to my little access points. This includes files, but also access to local services, such as a DB or the pypi mirror. That’s not something you want to debug on premise.
This is also where you want to polish your scripting skills. In Python, bash, cmd.exe… Get cheat sheets, recipes and references accordingly, it's unlikely ChatGPT will be available (although I will enjoy the heck of local coding models once they can run on my laptop comfortably). Knowing by heart is ideal, being able to use anything when a UI is not available as well.
Not that I like coding using VI (not Vim) through a telnet connection from inside an isolated dark and humid room with shitty lighting.
If need be, what am I going to say? Sorry pal, don’t like it, I'm going back?
Plus it's money. I like money.
Very nice write-up; would be nice to have [short] tutorials of some things you mentioned; for example, having pypi and documentation locally. And, as you mentioned you're learning Rust, having a similar thing for Rust (and .... Go 😛)
I fell into the same specialty. For me, it started with a combination of factors: I've always been volunteer to try new things, my colleagues didn't want to go for a boring mission and the boring mission proved to be a very challenging situation. I started traveling around Europe for work, a few weeks at a time. Then, I had the opportunity to go work at the Olympic Games (that was a pretty poor deal but it was interesting). Since then, I've been going to various places in Africa, sometimes under military escort.