Software Engineer Choices: Permanent Employee vs Contractor vs Micro-ISV, Part 1: Employee
For engineers who prefer stability.
A repost of my past article on Medium
Today is 2025-01-01, a good time to plan your career.
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 (i.e. solopreneur), the person must possess high-level coding skills.
Having experienced all three, I’ll share my insights on each path through this article series.
1. Permanent Employee
Pros:
Job Stability
Career ladder via promotions
suitable for people with high EQ.The sense of belonging
Training
but rarely nowadays. If your company does care about employee growth and sponsors in-demand training, ask for “End-to-End Test Automation” like mine. I was so fortunate to access one in 2005, which totally transformed me for much better.More flexible in terms of taking holidays
Contractors, if concerned about money, will mostly have to take holidays during Christmas break.
Cons:
Less flexible
you might be stuck with a boring job or a bad bossLower 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 the 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.”
A lesson from the above : "Don't let non-achievers discourage you from achieving greatness."
However, one downside of being employed at DSTC is the low salary, especially for experienced Java software engineers (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 five months after I started working there, and our newly-opened branch was among the first ones 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), and 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
Permanent or Contractor? I definitely recommend junior engineers take up permanent jobs, my daughter did. 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.
Related reading: