Software Engineer Choices: Permanent Employee vs Contractor vs Micro-ISV, Part -1: Permanent Employee
For engineers who prefer stability.

Here is a quick explanation of three work choices for a software engineer:
- Permanent Employee: a full-time job. Employees work in and are part of the business.
- Contractor: offer IT services to a company for a short period. Contractors are running their own business.
- Micro-ISV: is an independent software vendor with fewer than 10 or even just one software developer, i.e. Work for yourself. In the context of this article, Mirco-ISV is a one-person software business.
The first two choices are available for most IT roles, including testers (auto or manual, business analysts and managers). For a one-person Micro-ISV, the person must possess high-level coding skills.
I worked in all the above three types (for at least 4+ years in each), in order. In this article, I will share my thoughts.
1. Permanent Employee
Pros:
- Job Stability
- Career ladder via promotions.
- The sense of belonging.
- Training, but rarely nowadays.
- More flexible in terms of taking holidays. (Contractors, who tend to be more concerned about money and the next contract, mostly will have to take holidays during Christmas time)
Cons:
- Less flexible, you might be stuck with a tedious job or a bad boss
- Lower Pay, but the gap between the contractor rates, based on my observation, has been narrowing.
- The creative work (IP) you did might belong to the company. While it still arguably takes the ownership but …, watch the excellent "Silicon Valley" TV show.
Personal Story:
My first industry experience started at Distributed Systems Technology Center, located on the campus of the University of Queensland. Despite being a junior, I really liked the atmosphere and colleagues (friendly and knowledgeable). Now looking back, I developed a few good habits that benefited me my whole career, such as reading regularly and being open-minded to try new things.
Another great benefit, more like being lucky, is that I had the chance to meet the following Software Legends while working at DSTC.
- Richard Stallman, the GNU project's founder and Emacs's creator.
- Sir. Tim Berners Lee, inventor of the Web.
- Larry Page & Sergey Brin, co-founders of Google
- James Gosling, the creator of the Java language
It is hard to quantify the inspiration sparked by seeing and hearing these legends in person. I could share a short story. At the 2009 CITCON conference, I casually demonstrated Watir test automation execution to one tester using my own TestWise tool. One person passed by, he stopped and pointed to my screen, "What is that tool?"
I answered, "TestWise, a testing IDE I created".
He shook his head with a mocking laugh, "You? developed a testing IDE! Haha", then walked away.
Later, I came across a book that conveyed, "When you share your ambitious goal with an average individual, they might consider you out of your mind. Yet, when you tell a highly successful individual, he is more likely to believe in it, drawing from his own experience."
However, one downside of being employed at DSTC is the low salary, especially for Java software engineers (was in big demand then) like me. After we had our first child, the money issues became apparent.
After working for 3.5 years in a research centre, I joined a tech giant (which was rated one of the top 10 most promising companies in the world in 1999) and hoped for a long and stable career there.
However, the Dot-com bubble burst just five months after I started working there, and our newly-opened branch was among the first ones to be closed. I still remember that day.
A meeting was called for all of us to attend, as a high-ranking executive had flown in from New South Wales. Following the initial announcement, the executive conveyed, "Your login has been deactivated as we speak, and we will be discussing the available choices with each of you individually." While I was presented with the opportunity to relocate to NSW, I opted not to accept. To be honest, I wasn't fond of the project (using C++ for a hopeless product). I had a strong belief in my ability to secure the next job due to the high demand for my Java skills at that time.
I received a good severance package and learned a good lesson, "when a company says, 'our staff is its best asset', that's bulls**t". I no longer believe in the so-called company loyalty (this is just me, don't generalize. Make your own call). I started contracting.
Practical Advice
ermanent or Contractor? I definitely recommend junior engineers take up permanent jobs. Based on my observation, the wage disparity between a full-time and a contract software engineer has been diminishing in recent years.
Tech companies - including the likes of Amazon, Google, Atlassian and Canva - are paying between $147,000 and $350,000 for graduates, with some salaries including stock options and end-of-year bonuses, according to data obtained by The Australian. [source - news.com.au, 2022–05–13]
For ambitious ones, don't settle in a comfort zone; try to learn and embrace new technologies, especially E2E Test Automation, which can greatly help you become a senior developer quicker.
After building confidence in your technical competence, contracting may be an option when the time is right.
In the next article, I will talk about Contracting.
--
This article was originally published on my Medium Blog on 2023-08-20.
About the Creator
Zhimin Zhan
Test automation & CT coach, author, speaker and award-winning software developer.
A top writer on Test Automation, with 150+ articles featured in leading software testing newsletters.




Comments
There are no comments for this story
Be the first to respond and start the conversation.