First posted on Dev Letters
In the last couple of years, I have tried different careers as a programmer. First, I tried a part-time office job for some time and then I went remote in the same company. Then, I did some freelancing and now I am trying to do freelancing + entrepreneurship.
It's interesting that all this happened is less than 2 years. After going through each of the career models and trying to find my fit, I realized that there are very few key differences between them. Each of these models has their own set of trade-offs and benefits, and one should be aware of them before making a decision.
I didn't know that when I started, but now I do so in this post I plan to share what I have learned through my experiences. Before we go any deeper, let me be clear that this is not an exhaustive list of all careers possible as a programmer. You can be a YouTuber, you can be a tutor, you can be a blogger and maybe much more. But in this post, I want to cover the careers which are most prominent and more mainstream. So without further ado, here we go -
Full-time office jobs can be great in the sense that they give you a strong sense of belonging and purpose. Belonging, because in an office job, you will belong to a certain team which will be like your family. You will interact with them every day and with time, you will start caring about each other.
Purpose because after giving some time in a job, you will feel that your life's mission is to stay in this company and do your best. It's no surprise why many people have long careers in a single company. Their sense of purpose aligns with the company and therefore they like to belong there.
If you are working reasonable hours and don't have a crazy workload, an office job can also mean a strong peace of mind. In fact, if you explore the other career models down below, you will realize that office job actually has the one of the best peace of mind to offer.
Some office jobs allow remote work too, and that is a BIG plus. If you are allowed to work remotely whenever you want, it means that you can avoid going to the office whenever you don't feel like or if you have a personal appointment.
But remote + office full-time jobs are very rare so don't assume that every full-time job you find will have an option for remote.
With that said, there are some very common issues with full-time office jobs that should be noted.
Lack of purpose (mission) - There can be times when you are asked to work on things you don't like. Or maybe, you will be switched to a team that is not the best fit for you. You will not like it but you will still have to do it because you won't have any other options.
Transfers - While working a full-time job, you can get relocated. Your family will prefer living where they have lived but you will be forced to move to a new place. It won't be easy to quit because you have already build your repute in the company and are hoping for a raise. You won't get that good a position elsewhere. So you will go ahead with the transfer and your life will be disturbed.
Long travel times - Daily traveling can be a huge waste of time and energy. If your office is far, you will suffer.
Bad boss - Not all bosses are good. And they can make your life measurable by giving you tough deadlines and large workloads.
Demanding nature of work - I know quite a many offices that require you to put 10+hrs of work daily. Combine this with travel times and you hardly have time left for other things.
These are like full-time office jobs but different in the sense that the team is remote, in different parts of the world and they meet monthly or quarterly to discuss agendas and catch up.
These jobs have a strong benefit that you won't have to relocate anywhere, and also that you won't waste time on transport. Also, these jobs tend to have a reasonable amount of workload compared to office jobs (I don't know why, maybe because the head feels they are saving on office infrastructure).
Given all this, these type of jobs have some issues of their own, such as -
- No co-workers, boring life - Your co-workers are remote so you are going to miss the lovely office chats and puns. No amount of Slack or Zoom can cover that. Coding by yourself in a room is not that fun TBH.
Then again, we have the common office job cons.
Lack of purpose
Both of these issues are very common, and I have seen it, either through myself or through a friend.
Freelancing means that you take a project of some duration, work on it, and then take your next project. The frequency and the projects you take depends on you so you have a lot of control over what you work on, and how much you work.
They also have the benefit that if you live in a cheap country (like India) and work for rich clients from an expensive country (like the USA), you can get relatively high pay for your work than any other similar professional in your country. In fact, you can go as much as making a good year's salary in 2-3 months. So, having this kind of leverage will allow you to take a lot of vacations.
In fact, freelancing is already vacation friendly. Being able to control when you work means you can take a vacation anytime you want. But it's not that easy. Freelancing has its own challenges.
Tough to start - Finding work as a freelancer is tough. Agencies like Toptal or X-Team help but if you are not a part of them, it will take you some months or years to build a reputation that attracts good clients to you.
Lack of purpose - This one is different from what we discussed in office jobs. When you are freelancing, you are essentially trading your time for money. This sounds cool at first but it makes you question your purpose. Is my life only meant to trade some of my time for money?
Irregular work, irregular pay - Unless you are a very established freelancer, you will suffer downtime between the gigs. This can mean going unemployed for weeks or months. So, if you are not in the habit of keeping savings, or are spending everything you earn, you will struggle during this time.
No co-workers - Again, you might miss the office environment.
Bad boss - You are still working for someone else, and they have power over you.
Startups are cool because you work on what you are passionate about, and if your startup is going well, it means you are earning well too. In fact, startups are the only way to reach certain levels of wealth which are just not possible by the options mentioned above.
Startups also mean that you are your own boss (in the real sense, unlike freelancing) so it means you can do anything you please. But gaining all of this is not easy and requires lots of work and sacrifices.
Startups take time to take off, and in most cases, won't - Startups are not like you put in the coding - design - copy and you are making income. They succeed given many factors like does the market need your product, does the market want your product, are you providing enough value etc. Basically, I don't think I can write it out why they succeed. It's just tough. If your startup fails, it can mean months or years of wasted, unpaid work.
Lowest peace of mind - Startup requires tremendous work to get them right. In very rare cases, do startups launch small and succeed. You will have to keep tweaking your product till you get it right or till you are convinced that it won't work out. And all this will kill your peace of mind.
Startups consume your life - Even if you are working on a startup in your free time, say after the job, it means that you are using the time that would generally go to family or something else. Suppose you do this for 2-years straight. Now, if your startup doesn't work out, it means that time is lost.
Given all this information, you should choose a career model based on what you value. If peace of mind and a sense of belonging is what you value, maybe a full-time job is the best bet for you.
If you value time independence for yourself and have enough of a social environment already, maybe look for a full-time remote job or freelancing.
And if you just don't like working for others or would like to be your own boss, maybe entrepreneurship is right for you. Just remember that it comes with lots of risks.