Hey Folks!
Have you been an employee for a number of years watching IT contractors come and go?
Or perhaps wondered about how to get started and the basics around what a contractor is all about?
After being a contractor for many years, there are lots of things I wished I knew before getting into contracting- which would have made things easier. In this series of articles, I'll be writing about what I, along with other members of @CanosieLabs, have learned - so that it may be helpful to others thinking of becoming contractors.
In this first article, I’ll explain some of the fundamental differences between being an employee versus a contractor that are not usually discussed when developers consider contracting.
Running a business
As an independent contractor, you are now running your own business and this comes with certain responsibilities that you may need to fulfill. These include things such as accounting paperwork and additional tax requirements.
In software development, employees are often provided with company computers, software licences, and other equipment. As a contractor, the company you work for is your client and they clients may require you to provide your own equipment.
As an employee, travel expenses are covered by your employer. As a contractor, payment is determined as per the contract. Sometimes, they will be covered by your client. In other cases, you have to pay for them, but, you build the cost into your invoice. So, expense reimbursement is something you will want to think about while looking at your first contract. In contract-employee contracts, travel expenses are usually paid by your client.
Additionally, you will not receive employee benefits (such as health care) or vacation pay. Contractors often build in such costs into the rate charged to clients.
Contractors with a Specialization Are Desirable
Contractors are hired for a specific reason and you will be brought on to solve a problem using a specific technology. Therefore, if you position yourself as a specialist with greater depth using in-demand technologies, generally companies will find that more desirable.
For example, you might be brought onboard to augment a java development team’s knowledge using a specific set of Spring frameworks using a MYSQL database. Having more years of experience in those tech specific techstacks will increase your chances of securing the contract.
Hence, you need to have good in-depth knowledge for the in-demand technologies. When companies hire contractors, unlike employees, they are not looking for people who can 'grow' and learn their tech stack, but instead, looking for people who already have the right level of experience and start contributing right away.
Keep in mind, learning a wide array of languages and frameworks are a valuable asset for your personal growth and preferences. In addition, learning more languages and frameworks is an important mechanism to gain access to additional contracts.
Remember, you are not an employee
When you join an organization as a contractor, you may not have access to the same perks and day-to-day entitlements employees have. You may not be able to participate in any organization bonus payouts, afterhour meal vouchers, or be invited to the Christmas party! Good organizations want their employees to learn and grow, but don’t expect coaching as a contractor. Contractors are sometimes referred to as ‘hired help’ - remember, you’ve been brought in to solve a problem with your expertise.
If you decide to become a contractor, the organizations you work for become your clients. They no longer need to consider your career growth - that responsibility falls entirely on you. They are your clients. You are their service provider.
As a contractor, you become your own boss and that comes with much freedom but also responsibilities. In the end, contracting is a good way to gain different experiences and exposure to different organizations - these are some of the reasons why people get into contracting.
Still interesting in contracting? Stay tuned for my next post when I write about the different of contracting routes.
Types of Contractors in Software Development
Jen Miller for Canosie Labs ・ Aug 4 '19
I’d like to hear your thoughts, experiences and perspectives, feel free to comment below or follow me at @JennrmillerDev on Twitter.
Top comments (3)
This was a great read.
I am a contractor specialised in front end web development. Specifically Angular.
There is more than enough work out there for me, and I want to stay specialised. I do feel some pressure to go full stack with Java Spring, but as a contractor I think I should become a master of one, rather than a jack of all trades.
However, I would some day like to be fullstack JS, node on the backend and Angular on the front end. Since it's still the world of JS, the knowledge transfer is huge.
I'm just not a fan of trying to keep up to speed with two separate world's, or: JS and JVM/Java
thanks!
I agree in that mind set. If there's a domain that's large enough and you can be specialized in it, I do feel (at least right now) that it will give a person the edge in contracting.
I started 'fullstack' work as RoR dev, but then went into Java only...eventually transiting into JS/Java. I do think it's becoming harder to be fullstack since the domains are so different....I became fullstack b/c I wanted front-end experience...but was primarily a Java dev.
If I started right now in today's ecosystem, I'd probably only do fullstack JS(maybe....).
For me, I'll personally try to hang on to the fullstack Java/JS as long as it makes sense from a career perspective -since there's such a demand for it - but also b/c I have so much Java experience which I enjoy and I don't want to give up.
I believe for most people full stack is usually:
Or vice-versa.
I have met people who are really good at both, but they are rare.
Personally for the web development world I:
I only have so much time, if I was to split the above list between the JS & JVM world I would inevitably be diluting my skills in one in order to grow the other.
And I want to have some sort of life outside of tech 😅
I do believe for some people they LOVE learning both stacks, but that just doesn't work for me. I guess you have to listen to yourself and go with what you enjoy!
From what I've seen the "Java Spring Boot + Angular" stack is HUGE in large corporations.
It definitely helps career-wise having Java + JS. But again, if you have enough opportunities then you may not need both.