For most of us, whether to be a full-time employee or independent contractor is never a question. On one side, full-time positions can provide better career options and benefits. On the other, contracting gives you the freedom of how much to work, what to work on, and from where.
There are other options for engineers, but in this article we’ll dive into the advantages and disadvantages the two most common career avenues. This isn’t meant to be a comprehensive list of pros and cons, but rather a list of areas to think about and research further.
First, some terminology
Since I’m based in the US, I’ll be using a US-centric view of what it means to be a full-time employee or independent contractor. Even though the rules of what constitutes each are generally the same throughout the world, I’ll use the terms most commonly communicated to me after years of working with and as both.
A full-time employee (FTE) refers to someone who is employed by a company, receives benefits like health care, and most of the time is paid a salary. In the US, full-time employees complete a W-2 form, so you might also hear the term “W-2 employee.” Unless otherwise stated on an employment agreement, full-time means working 40 hours per week, though the reality of receiving a salary means working as much as is needed to get the job done.
An independent contractor is someone employed on a per-project or as-needed basis. Contractors bill hourly, daily, weekly, or per-project. The term freelancing is equivalent, but generally means creating end-result-focused deliverables that don’t need ongoing maintenance and thus isn’t a good fit for software engineering. Consulting can also be used, but this term implies having specialty knowledge that is used to solve specific problems. Thus, independent contractor, or just contracting, is the best term.
- Full-time employees get paid a salary, which means receiving a fixed amount on a schedule, usually every two weeks. That means you get paid regardless of holidays, taking time off, or being sick.
- Full-time employees receive benefits and perks that not usually offered to contractors. This usually includes an employer-sponsored health plan, which is important in the US because health care here is screwed up. (See the below section on health care.)
- Full-time employees are usually considered “part” of the company and can be offered equity (shares or options), many times in exchange for a lower salary. Equity can end up being worth a lot of money, and it’s the source of all the Silicon Valley riches you hear about. Independent contractors can negotiate equity, of course. But it’s much more common for full-time tech employees to have their compensation be a combination of salary of equity, presumably because the stability of a steady salary and benefits helps offset the risk of taking equity.
- Full-time employees have a career ladder and growth opportunities. As a contractor, you’re expected to already know how to do the job — contractors in the US cannot receive training. Also, because full-time is supposed to represent a long-term commitment, companies are willing to invest more time in growth and development and training, or promotions or lateral movement within the company.
- A long-term relationship with a company opens up social avenues not available when you’re seen as temporary. You can make friends for life. At larger companies, you might find or develop social groups based on interests, like college. This is important because making friends after college is hard.
- In return for stable pay, you’re expected to do your job. This usually means someone telling you what to do, which might not always be what you want to do. Indeed, saying “no” is a valuable soft skill to learn, but declining to do work requires tact. In general, if you don’t do what your manager asks you to do, you’ll be fired.
- Because you’re being paid a fixed amount, you don’t get overtime pay. If you have to work nights and weekends, tough luck. (In the game industry this is so common that it’s called the “crunch.” It’s horrible.)
- You don’t get to choose your co-workers when you’re full-time. This means you can be moved to a desk next to a person who smells like cigarettes, has an annoying laugh, and listens to crappy music over a bluetooth speaker. Or the code you check in will be reviewed by a curmudgeonly pedant who complains about your variable names. There’s not much you can do other than complain to your manager.
- Remote work is less common for full-time employees. Even if a company claims to be “remote-friendly,” if most of the employees are together in the same place and you’re not, you’ll be at a social and professional disadvantage. This is changing, albeit slowly, with notable companies like GitLab and Zapier advertising themselves as “remote-first” while also being successful.
- As a contractor, you choose what projects to take on. This kind of independence is extremely powerful — being able to say “no” to work you don’t want to do can result in high, nearly-unquantifiable levels of life happiness. Or you may choose to charge a higher rate for work you don’t like doing. “Being my own boss” tends to be first reason I hear from people asking why they do contract work.
- As a contractor, you choose where to work, unless your contract requires on-site work. Many software development contracting jobs are remote, so you can work from a beach or somewhere with a low cost-of-living, which can be extremely lucrative.
- As a contractor, you choose how much to work. Instead of grinding to accrue vacation time in a full-time job, you can, for example, work 80 hours per week for a month and then take the next month off.
- You can choose your coworkers. If you’re working on gigs yourself, that means no coworkers. But maybe you want to form a team with a friend or friends. Now you have your own company! Who doesn’t want to work on projects with their friends?
- Consulting can help you find lucrative business or startup ideas, which might augment or even eventually replace your contracting work. If you continue to work on the same problems, you’ll begin to notice patterns, and these patterns can be productized. “We got tired of building X over and over” is common sentiment in the origin stories of SaaS products.
- There are numerous tax advantages to being self-employed. Things that help earn business income, like equipment and travel, might be tax-deductible. Talk to a professional tax advisor.
- You have to be comfortable with the ebb and flow of contracting work. You might work nights and weekends for a month, and the next month might be an unexpected, unpaid vacation. This can be extremely stressful and depressing. Thinking long-term about income and planning your work can help.
- You need to be, or learn to be, very good at communication and negotiation. You need to know your worth, and you need to be better at estimating than would be required in a full-time position. Good negotiation is the key to getting compensated fairly.
- Finding work can be difficult. The best jobs will always come from your personal network, such as friends and former coworkers and even former bosses. But if you don’t have that, or have exhausted it, you need to be resourceful. The next best option is to look at communities for technologies you already know. If you’re not sure where to start at all, here’s a list of job boards and sites where you can find jobs. You can always apply to a talent marketplace, such as Toptal or Upwork, but you won’t get as good a rate as if had found the work yourself.
- You might not get the experience or mentorship you need to grow. Remember, contractors can’t be trained, and contracting implies having a limited-length engagement, so there’s no promotion or growth track provided. Your growth and career is entirely in your hands.
Notes on health care
If you don’t care about health care now, you eventually will.
If you’re younger and healthy and single or don’t have kids, health care probably isn’t on the top of your mind. But as you get older, you might get married or have kids. Even if you don’t, weird unimaginable things will happen to your body, or you’ll have an accident. Unless you live in a padded and sealed bio-dome, that’s the truth.
US companies get large government subsidies to offer health coverage, plus companies get better options for larger groups of people, which means employer health plans are drastically better than what you could afford on your own.
For example, in California, when I was contracting, I paid almost $1,200/mo for a “bronze” level family plan which required me to pay 60% of all non-routine medical costs with no lifetime limit. No lifetime limit means I would have been bankrupted if I or a family member started to need, say, expensive cancer treatments. This is even the premise of one of the highest-rated television shows.
In contrast, my last two full-time employers have paid 100% of the premiums (and 50% or 100% of spouse/children) for “gold” or “platinum” level plans with low maximum-out-of-pocket limits and where I pay only 10% of non-routine costs. Fully paying premiums is becoming the standard with Silicon Valley tech companies. Even if they didn’t pay the premiums, the cost to them would have been only $300–400/mo. (I asked.)
- The best book about our disposition as software engineers is Developer Hegemony: The Future of Labor by Erik Dietrich, which suggests that our industry is flawed and most of us should be contractors. It covers the bad side of being full-time and puts you in the right mindset of how and why you should consider contracting.
- Contract vs. Full-Time: The Legal Framework (Toggl)
- Independent Contractor Versus Employee Status: A Global Perspective (Association of Corporate Counsel)