When I set my sights on learning to code and becoming a professional software developer five years ago, there was one thing that I was seeking from the job above all else - freedom. When I graduated from college with a B.S. in Neuroscience, I knew next to nothing about software and had never written a line of code. I took a job working in a Neuroscience lab at UCSF hoping to prepare myself for a career in science or medicine. After a little more than a year of work down this path, I realized it wasn't for me. While I had tremendous respect for my colleagues and the work we were doing, I was being driven insane by the monotony of the daily work and, more importantly, my entire daily routine. I knew that I needed to find a job that would provide me with more intellectual engagement on a daily basis, and the flexibility and freedom to work for myself and work remotely.
Living in San Francisco, a career in software became appealing to me as it seemed to coincide perfectly with what I was looking for. I met a ton of recent coding bootcamp graduates around the city and saw that they were able to bring their own software creations to life all on their own and command impressive salaries after only a few short months of intense training. After trying my hand at coding and discovering that I actually enjoyed it, I dedicated the next few months to following this process and managed to land a job at a tech company in SF as a full-stack web developer. The job was great for awhile, as I was learning so many new things and working in a brand-new environment. But, after the pace of my learning began to slow and I got used to the new working environment, the same thirst for freedom that I felt before crept right back. I decided to hit the road and find work freelancing. For more than a year now I've been traveling the world while simultaneously freelancing and working on my own entrepreneurial projects, and I've never been happier. Here's why:
Digital nomad lifestyle has been exploding over the last few years, and for good reason. I've always loved traveling, but working remotely has allowed me to go beyond the superficiality of two-week vacations to actually living abroad and fully immersing myself in foreign cultures. I've spent time across Europe, Asia, and South America and have set up shop now more-or-less full-time in Medellín, Colombia (found out why here). The ability to work remotely full-time not only provides the benefit of long-term cultural immersion and novelty on a day-to-day basis, but also provides a number of practical benefits as well. You can live in a location that is significantly less expensive than a place like San Francisco, and therefore save more money, work fewer hours, or live more extravagantly (I prefer a bit of all three). Also, you can move around to avoid bad weather and keep yourself in a perpetual summer.
Flexible Working Hours
Freelancing also provides the benefit of allowing you to basically work whenever you want. Sure, you'll have some meetings you'll have to coordinate during normal working hours, and you'll need to be available on Slack and by email. However, this is only going to account for a small number of hours and you can create your own schedule. Do you work better late at night than during the day? Feel free to spend all day sleeping and work when you feel most productive. Hungover from a random Tuesday night out? If you're working in a full-time capacity, this will usually mean going into the office and pretending to work for 8 hours while feeling miserable and trying to avoid falling asleep at your desk. As a freelancer, you can just move Wednesday's work to Saturday or wait until your hangover wears off.
Work on Multiple Projects
If you get bored easily (as I do), then the ability to work on multiple projects at the same time is great for keeping you motivated and engaged. If I'm getting bored with a particular technology, I can seek out and take on projects that will allow me to use and/or learn a new skill-set. If I don't like working with a certain client, my commitment is usually only to a few weeks of work at a time, so I can easily discontinue contracts and look for a job with someone I get along with better. Also, for me this is crucial as I'm working on my own business building a web development training academy for digital nomads half-time while freelancing. When I have more work to do on Destination: Dev, I can scale back my freelance commitments. When I'm running low on funds, I can scale back up.
Escaping from the office environment provides some specific, additional benefits for me. Forget about commuting, and forget about working from the same location every day. If I want to work from home, I do it. If I want to head to a coffee shop or co-working space, I don't have to ask permission. Furthermore, while some people thrive in an office environment, I always found myself to be far less productive with people constantly interrupting me, making noise, and gossiping. I'm not interested in engaging in office politics, and I prefer to maximize my efficiency while working and keep social activities separate, which brings me to my next point:
Get Paid for Your Efficiency
Anyone who has worked in a corporate environment knows how inefficiency runs rampant. If you work 5x faster than a co-worker or produce code that has 5x fewer bugs, you might get a raise or a bonus. However, you're not going to get a salary or bonus 5x greater than your co-worker. With freelancing, you actually can command an hourly rate that is multiples higher than your hourly rate in a full-time position, and similarly possibly orders of magnitude higher than a less-skilled, less-productive freelancer. You can also negotiate fixed-cost projects, which reward you for efficiency if you set the terms properly. For example, if you negotiate a fixed-cost project based on your projections of how long it will take an average developer to do the work at $100/hour, and you are able to complete the work in 1/3 of this amount of time, you've now effectively tripled your earning and are getting a rate of $300/hour (these are not exaggerated or fake numbers either - they are entirely feasible).
Do Things Your Own Way
Don't get me wrong, it can be incredibly rewarding learning from experienced senior developers and putting together complex systems as a team. You can find freelance work that will allow you to work with other skilled developers and with a talented team. However, sometimes you don't want to listen to someone else's opinion on the style of your code, which library or technology you should use, or what kinds of tests you should write. As a freelancer, you'll have the opportunity to take on many projects where you are the tech lead. You'll be able to do things how you like to do them, experiment with new technologies whenever you want, and use the tools that you like personally.
(Truly) Unlimited Vacation Time
Many big-name tech companies purport to offer "unlimited vacation policies". In most-cases, this is really just a marketing ploy to attract employees who are not keen to what that actually means. Employees are often guilted into taking even less vacation time than they would with a normal yearly allotment of hours, and don't get paid extra for this because they have no vacation hours to cash out. As a freelancer, you actually do get unlimited vacation time. Want to go on a three-month trek in the Amazon with no cell service? Wrap up whatever you're working on and go right ahead. You'll have no emails to worry about or fires to put out. And, you really can take off for as long as you want. If you decide you'd like to extend that three-month trip an extra month, you'll have no one to clear it with. I've been going on vacations once every 2-3 months over the last year, and I don't think this would be possible with almost any full-time job.
So, there you have it. I truly enjoy writing code as it allows me to constantly learn new things and constantly build tangible (albeit virtual) products. But, the combination of freedom and earning potential offered by this line of work is also, in my opinion, unparalleled. Interested in learning to code and creating a lifestyle you're truly passionate about? Check out Destination: Dev, our software development training academy for digital nomads in Medellín, Colombia.