As software developers, who can more easily break the average developer salary of $98k in the US, freelancers or fulltime employees? The answer is freelancers. It might not have been clear a decade or two ago, but in the last 5 or more years especially since 2010 there have been more well-paid web and mobile opportunities for freelancers.
A freelancer is a self-employed person offering services, usually to businesses; and work on a contract basis for a variety of companies, as opposed to working as an employee for a single company.
Fulltime salaried developers have a steady and stable income, but the opportunities for them to earn more would only be through promotions or switching jobs. Before you ask, some can definitely take freelance projects on the side but it’s very hard to manage focus and performance in both their fulltime and freelance job. Those who can successfully do so have already become self-employed freelancers who own their businesses, simply because they can reap more earnings this way.
The freelance development world in the US has different types of players:
Individual freelancers: independent developers who work as contractors for other individuals and businesses. Most freelancers conduct their business as sole proprietors.
- Single-purpose teams: small shops (2-5 people) or small agencies (couple-dozen people) that offer a service for a single function of the Software Development Life Cycle (SDLC).
- Small development shops: expansions of individual freelancers wanting to scale up by teaming up with his/her developer friends. Small shops typically operate as Partnerships or LLCs.
- Small agencies: better established and more organized versions of the single-purpose development shops. They tend to focus only on design, or on a certain type of development (Web only, Mobile iOS only), or offering full services in a certain specialty (from design, development, to maintenance but only for Wordpress sites). Small agencies are usually LLCs.
- Full-service agencies: provide full services from concept, design, development to content creation, marketing, etc. for any type of technical work, media project, or product development. Full-service agencies can either stay as LLCs or incorporated.
- Midsize agencies: few-dozen to couple-hundred people companies
- Large agencies: couple-hundred or more people companies
- End clients are individuals and businesses who pay money to have the work done.
CodeProcess, we focus on providing recommendations that help individual freelancers and single-purpose teams from the years of experiences we’ve had as full-service agencies and end clients.
Size of Work
For individual freelancers and single-purpose teams, the sizes of work can be categorized into:
- Small: a week to a couple months
- Medium: a couple months to half a year
- Large: half a year to a year
Anything smaller than a week of work is too short to be considered a good opportunity for seasoned freelancers. For freelancers who are just starting out, any type of work no matter how small is a good opportunity. But for established freelancers, the management overhead is not worth it to engage in projects that are less than a week of work, unless those are recurrent work from a known client.
Anything longer than a year is going into long-term contracting territory. There are large 2 to 3-year projects but they are alway planned in phases. A signed contract should always for a certain phase and it should be less than a year of work. A phase that is longer than a year signals poor planning from the client.
Types of Agreements
Freelancers enter a work agreement with either a direct client, or with an agency serving as a vendor for an end client.
- A direct project agreement is between the freelancer and a client who owns that project.
- A sub project agreement (aka sub-contracting) is between the freelancer and a client who doesn’t own that project. The client in this case can be considered as an intermediate client. An intermediate client is an agency vendor that is hired by an end client to do the project work.
For all intents and purposes, a contract agreement is between 2 parties, the freelancer and the client, for the Scope of Work (SOW) to be done. It doesn’t matter who the client is, whether the direct client or the agency. The SOW is defined in the contract, together with the timeline for that work, and the amount to be paid by the client once the work is done.
We differentiate the 2 types of agreements here because even thought the work is the same, the nature of overhead are quite different in practice. Sub-contracting for an agency vendor may reduce the management overhead for a freelancer because the agency always handles the client facing management. However, since the agency isn’t the direct owner of the project, they may not understand the project requirements as well as the direct client to clarify ambiguities for the freelancer. With this agency layer in between the freelancer and the direct client, the freelancer needs to account for more effort overhead to make sure nothing in the work requirements is misunderstood or unspecified.
DESIRABLE FREELANCERS - FROM A HIRING PERSPECTIVE
So, from a hiring perspective, what make and don’t make a freelance developer desirable in the eyes of a full-service agency:
- He/she has the technical skills required for a certain project (interesting enough, this is the 1st requirement but sometimes it’s not the most important one 1)
- He/she knows how to collaborate well and understand the client/agency/service workflow
- He/she is dependable and knows how to offer solutions to client’s requests
- He/she is presentable with great communication and good client-facing skills
- He/she knows to how clarify requirement ambiguities and can estimate efforts which lead to timely deliverables
- He/she is organized, thorough, and pays attention to details
- Great technical skills but poor communication
- Rock-star developer but doesn’t work well with others
- Push back instead of offering solutions to requests
- Bad at understanding requirements fully or cannot estimate efforts
- Say “done” when the delivered work is not truly done (broken in edge cases, missing details, etc.)
The technical capability is usually only half of the requirement when we decide to hire someone or some team for a project. As a full-service agency, we offered more contracts to freelancers and single-purpose teams who not only were great at technical skills but also demonstrated they knew how to work effectively and productively with us.
This is usually a given. However you’d be surprised at how many times we reached out to our trusted freelancers, and hired them knowing they didn’t have the required skills at the time. We were willing to pay extra for their time picking up the skills while they worked on the project because we knew they were technically capable, dependable, and worked effectively with us). ↩