Slinging code from Montreal

Honest reasons to become a technologist

Honest reasons to become a technologist

The impetus for this post was a conversation I had with a family member. Her son had just quit a software engineering job in Seattle and was considering leaving the field. He enjoyed his computer engineering degree, but found working in a big software company didn’t suit him. As I started laying out the reasons why he might want to re-consider, I realized there’s a lot more to talk about than I could get across in a short conversation.

In service of that, I want to cover what I consider to be the best reasons to become a technologist. I am biased, but I believe the following are real advantages that aren’t emphasized enough. You’ll notice that they also happen to be useful if you intend to live an unconventional life.

🏡 Choose where you work

As far as I know, there’s no other well-paying career that provides as many opportunities to work somewhere other than an office, and to avoid spending too many of your precious hours on this earth commuting to one. I’ve worked 100% remotely for years, and am as grateful as you can imagine.

Along with the remote-only software companies, many older and larger software organizations have adjusted to the new reality of remote work, providing more flexible policies regarding allowing work from home arrangements for sickness or family care, working from home part of the week, etc. In fact, it’s been more or less forced on them due to the need to retain employees as well as saving money on leasing office space. It’s also a technological story, since only recently has the ubiquity of cheap and reliable broadband internet made this possible.

If you’re willing to relocate to another country, you also have the option of arbitraging your cost of living. This means getting paid in a stronger currency than the local one, spending little and saving a lot in a much shorter time. Several countries have seen the opportunity here and become prime destinations for digital nomads. The nature of the work is such that as long as team members can communicate in a shared language and have decently fast internet connectivity, it doesn’t matter if they’re based in Canada or Colombia. The benefits are obvious, both for the employer and employee.

Working remotely gives you ultimate control over your workplace environment - how many people will be around you as you work, noise level and temperature. You have the choice of where you work - home, coffee shops, friends’ and families’ houses, even an Airstream mobile home while traveling all over USA (like a current colleague of mine). Lastly, I would be remiss if I didn’t mention that not having to share a bathroom is awesome. Especially if you happen to enjoy hot sauce and strong coffee.

⏰ Choose when you work

This can apply on two scales - yearly and daily. There are many remote technologists making their living right now from a series of fixed-length contract jobs. If you’re not at the stage of life where your financial needs are such that you have to work 48 weeks a year, this is a great option. What goals, outside of financial and career-oriented ones, could you make progress on if you had a free month out of every 4 or 6? If your eventual goal is to start your own business, this kind of arrangement would also be perfect.

There are also full-time jobs that expect 48 weeks a year, give or take, but provide flexibility regarding your daily working hours. Very necessary if you dream of living a digital nomad lifestyle. On every continent on earth, in many beautiful and worthwhile locations to visit, people are making a living with their laptops. I’ve been lucky enough in my career to have worked for companies that offered a somewhat flexible schedule on daily working hours. I took advantage of this by working while I was traveling through south east Asia, taking long weekends to enjoy my surroundings before moving on to the next place.

What makes this all work is an understanding of trust and responsibility. Just because you happen to be in Bali, being too hungover to finish the feature you’re working on isn’t suddenly excusable. It would be a poor way to repay the trust and willingness to experiment from your employer, so this path is best undertaken by those with the discipline to match. You’ll also need to be independently productive, solving your own problems to get the job done, since you’ll likely have much less crossover with your colleagues in the company’s home timezone. For these reasons and others, I would recommend the digital nomad lifestyle only to a mid-senior engineer.

If you’d rather stay put, daily flexibility in your working hours can still be a godsend - particularly if you have young children. You get to be around your kids when they wake up, getting them ready for school and sending them off before starting work a little later. Or you can start your work day very early, and finish up in time to pick up the kids from school and fix them dinner. Designing your work life around your real life instead of vice versa is a true blessing if you’re lucky enough to be in this situation.

🕺🏻 You get to stay yourself

Corporate environments eventually sand the rough edges off most personalities - creating a uniform culture and mode of communication. The specifics will differ from place to place, but in broad strokes the higher up one goes in corporate land, the more homogeneous the landscape. Those without the social acuity to notice this and modulate their personalities to fit in, might take longer to make it up the ladder (if at all).

The pressure to conform is mercifully less pronounced in engineering. Software is both necessary for the machinery of international trade and constantly needs attention and improvement. As long as everything is running smoothly, your weird idiosyncrasies will be tolerated. Obviously they’d prefer you don’t script the coffee machine, but as long as the highly specialized thing they depend on to keep the company going continues to happen, they’re happy.

This stubborn insistence on individual weirdness has become an indelible point of pride in technology culture. The lovable eccentric genius is an affectionate character in everyone’s imagination, as is the not-so-lovable grouchy tech support guy or gal. I’ve also seen this freedom taken too far; if you’re career-minded, it’s a good idea to stay relatable to technical leadership. Giving a little here will pay off handsomely if your goal is to maximize your career trajectory.

⚔ Your brain stays sharp

The mental activity of building software most resembles solving a series of linked puzzles, each of which has multiple solutions and each being totally different from others in the chain. Now imagine that each puzzle depends on the solutions to puzzles before it, and the quality of your earlier solutions determine the options available to you to solve the current one.

A day in the life of a programmer looks like a loop of the following:

  1. Why the &*%# doesn’t it work?

  2. Oh, that was it! Awesome, next thing…

  3. Argh! It doesn’t work!

The speed at which you can tear through this loop, researching solutions and applying them to your problems is the speed at which you can get your work done. You get used to solving problems quickly and noticing common patterns from previous successful solutions. In some roles, this is your entire job. The cost per minute in lost revenue of an outage can be in the tens of thousands, and if you’re the senior Site Reliability Engineer on deck when an outage occurs - everyone’s looking at you to fix the problem. SREs are a rare breed, but it’s illustrative to see how important rapid problem solving can be.

For most roles, the work exists in the sweet spot between enough repetition to give you confidence in your knowledge and enough novelty to keep it interesting. Programmers get a lot of edge practice, operating in that zone where you kinda know what you’re doing but are aware of the ocean of ignorance in front of you. The road to mastery is infinite, and as soon as you’ve gotten the hang of the tools in front of you, the task changes and you find yourself picking up new tools.

🕴🏻 Avoid lifestyle traps

I’m not a car guy, which I consider a blessing. They look great and sound awesome but I work from home and can’t bring myself to spend money on a car for the sake of it. I’m also unconcerned with conspicuous consumption - I live a minimalist lifestyle and think hard about the utility of each purchase. I ask myself ‘how many hours of my life did I have to sell to buy this?’ If you make this calculation yourself (net income, not gross) the next time you’re looking at a price tag, you might find yourself no longer wanting it.

Even worse - you have the disposable income to consume more than the average person, and so your temptation to do so is greater. Here lies the trap. By scaling your lifestyle to your income, you’ve locked yourself in to the hedonic treadmill. The treats and trinkets of life that used to make you happy no longer do so, you need more extravagance to get that same dopamine spike. More likely than not you’ve also scaled up your social life, and are feeling the social pressure to ‘keep up with the joneses’. It takes a very strong will to scale down an unaffordable lifestyle once it becomes clear that it isn’t sustainable.

Technologists tend to be analytical, naturally extrapolating the behaviour of a system into the future. ‘The more I spend, the more I feel I need to spend’ doesn’t sound too smart. On the contrary - goals like FIRE are very common among technical people. It’s possible to take this too far, and each of us will have to draw the line between living in the moment and planning for the future. But the fact remains - a career in technology provides one of the best opportunities to save money quickly and build a great financial situation.

💸 Sellers’ market

This is a big reason why the rest of these advantages are possible. The bar to becoming a great technologist is higher than for most careers out there. Becoming independently productive requires an enormous amount of practice and learning. You will have to concentrate deeply on a problem for hours at a time. Your main collaborator will be a software interface to a deterministic system that doesn’t care about how you feel. Not all talents and personalities do well in that sort of environment.

Coupled with this, is the fact that automation and a capable engineering organization have become table stakes for companies in many industries. If you can’t attract and retain talented engineers, you’re likely to find your competitors outpacing you into the future. At least for the moment, demand overwhelms supply. A consequence of this is the relatively low formal education requirements for a lot of entry level technology jobs. Sounds counter-intuitive given what I’ve said above about the barrier to entry, but it’s true. What you can do is a lot more important than what you know.

I’ve been the only one on my team of highly capable technologists with a formal education in computer science. Regardless of what you might encounter during technical interviews for programming jobs, almost nobody will have to implement a red/black tree from scratch during their career. So get your hands dirty - there’s more free tutorials and courses online than you’ll ever need. I suggest starting with a modern web stack and building something simple with the tools you’re learning.

No VIPs

No VIPs

Uptime is prime time

Uptime is prime time