Making a living as an independent freelance developer is great, but it can be a tough job at times. What I love most about freelancing are the skills you learn to master, or better, are forced to master.
As an independent freelance developer, then you spend a significant chunk of your time doing tasks that don't involve programming. If programming is what you want to focus on and you have the ambition to run your own business, then you may want to consider subcontracting?
What Is Subcontracting?
A subcontractor is an individual or in many cases a business that signs a contract to perform part or all of the obligations of another's contract. — Wikipedia
The above definition sums it up nicely. As a subcontractor, you are hired by another company to carry out work for one of their clients. Why would a company do that? There are a number of reasons. The most common reasons are a temporary shortage of manpower and a lack of expertise in a particular field.
Why Consider Subcontracting?
It is true that, at times, it feels as if you are an employee of the company. Subcontracting isn't for you if that is a compromise you are not willing to take. I can see why you don't want to go that route as an independent freelancer. As a subcontractor, you run a business while, at the same time, you are working for another company. There are several notable benefits, though.
Change of Environments
One of the advantages of subcontracting is the change of environments. I don't mean a change of scenery, but a change of development environments. By working at different companies, you come into contact with a wide range of people and company cultures. You learn the pros and cons of the tools they use, the workflows they apply, and the best practices they live by.
Even if you have been programming for years and years, you learn something at every company you work for. There is always someone who is smarter than you and who you can learn from. This is a benefit of subcontracting that is often overlooked. As a developer, it is one of the most important benefits if you ask me.
If you enter a contract with the mindset of knowing everything you need to know, then this free benefit is not for you. That said, if you ever come at a point where you think you know everything there is to know about your craft, then it may be time to evaluate your current situation. I have yet to meet someone who knows everything about their craft. The more you learn, the more you realize how little you know.
Focus on What You Love
As I mentioned earlier, an independent freelance developer needs to master a wide range of skills to run a successful business. Finding leads, talking to customers, and writing proposals and specifications are a small subset of the things you do as a freelancer and business owner. Some people love that mix of responsibilities. If that is you, then subcontracting may take some getting used to.
But if you started freelancing because you enjoy programming more than anything else, then you may not like those responsibilities all that much. In that case, subcontracting could be a great fit for you.
In larger companies, developers can focus on what they do best, programming. A project manager takes care of client relationships, the sales team makes sure new projects are lined up for you to work on, and the operations team handles the infrastructure.
Choose Your Clients
The company you work for as a subcontractor is your client. The company's clients are not your clients. Before you decide to subcontract for a company, take a look at the company's portfolio. It is fine to be picky, especially if you have a portfolio you can be proud of.
Subcontracting or Employment
The line between subcontracting and employment may seem thin at times. This is especially true if you have been working for the same company for several months or years. There is nothing wrong with that, but it is important that you feel comfortable in that situation.
If subcontracting begins to feel like employment without the benefits of being an employee, then it may be time to find another project at a different company or choose a different path altogether.
If this really bothers you, then being an independent freelancer may be a better fit. Nothing stops you from mixing subcontracting with working as an independent freelancer. Many freelancers do. The line between subcontracting and freelancing is sometimes pretty thin.
Both paths will teach you more than you can imagine. But make sure you don't become complacent. That is my one advice. If you choose a particular path because it makes your bank account happy, then it is time to reconsider your choices and priorities.