This is mainly based on working as a freelancer for a single client on a contractual basis like 6 to 24 months or longer, and not working on smaller jobs for multiple clients. Whilst there are premium freelancing sites like toptal, upwork, etc which only hire the top notch developers, and pay competitive rates, many other sites work in the low dollar cost markets and pay only peanuts. Hence working for a single client on a contractual basis is going to be more suited for the most hands-on Java developers & Big Data Engineers. You will be interviewed & then hired on a contractual basis. Initially, 6-12 months with a possibility of further extensions. I have been contracting for the past 18+ years in Sydney, and never been out of work, and often attended 6-10 job interviews & had 4-6 job offers to choose from. I have outlined my career roadmap at How do you expand your horizons with multiple income streams?.
Benefits of contracting
Better pay => Professional Freedom => Fast-tracked career => Professional Confidence => Job Security
Reason #1: Better pay
Freelance Java & Big Data developers can earn between 1.5 to 2.5 times the permanent salary. The reasons for this better pay are
- As a compensation for short term or temporary nature of the assignment. Freelancers or contractors can be easily hired and fired.
- To attract specialized and wider range of skills.
- cost to a company for a permanent employee with benefits can be 1.5 to 2.0 times the amount they see in their pay check.
Reason #2: Professional freedom
Since freelancers earn more, you can afford to take some time off say 2-4 months in between your contractual assignments to pursue other avenues like launching your own products and apps, self-publishing your book, starting your own blog, and any other creative ventures to channel your knowledge, skills, and talent. The main focus is to attract more customers, earn more passive income, and to grow your small businesses.
Once you have created your own brand, it empowers you to build and promote yours’ and others’ products and services through your brand. You can afford to take more vacations as you will be reaping in the benefits of ongoing passive income.
Break your routine
From Working hard at your job, getting home (often late), having a bite to eat, watching a little TV to relax, and then going to bed.
To Getting your regular work done, and channelling some of your time towards expanding your horizons.
Reason #3: Fast-tracked career
As a freelancer, you can fast-track your career by acquiring a wider range of generic and specialized technical skills. Easier to quit your job if you are feeling stagnated. You have a better chance of staying relevant in terms of technologies, frameworks and tools.
Reason #4: Professional confidence & job security
Staying with the same company or piling up on your certifications are NOT going to give you the real job security. Your non-technical skills like job hunting skills, networking skills, resume writing skills, and interviewing skills along with your wider range of technical skills & know-hows will give the confidence that you will be able to find a job in any job market. IT Job Security and complimenting your IT technical skills with non-technical skills
Once you earn a reputation as a go to person in getting things done, you will not only get contracts extended, but also will get repeated assignments from your past clients.
Choose your contracts wisely
There are 3 reasons why companies hire freelance programmers:
Reason #1: To get freelance programmers to do the boring tasks that other permanent staff don’t want to take on. For example, working with an outdated technology.
Reason #2: To get the mission critical projects over the line. In other words, to meet the deadline.
Reason #3: To bring in the expertise that are lacked within the current team. E.g. Big Data, Amazon Web Services, Scala, Design Skills, solving performance issues, etc.
So, it is imperative to learn more about the position at the job interviews by asking the right questions to ensure what you are getting into. Ask about the
- Technologies, frameworks, and tools used
- Mission criticality of the project – e.g. how many registered users?, how many servers on the clusters, the development team size, and number of other systems to be integrated with? (e.g. CRM systems, Data warehouse systems, Big Data systems, etc).
4 Tips to keep in mind
Tip #1: When you are asked for your freelancing/contract rates, provide a range like $900.00 to $1200.0 a day as you don’t want to price yourself out of the market and at the same time miss out on great opportunities. After your job interview, you will be in a better position to negotiate further once you had effectively sold your capabilities to your prospective employer.
Tip #2: There are more contract/freelancing opportunities out there for the developers, engineers & solution designers than for the architects & managers. This is why I stayed on as a hands-on engineer.
Tip #3: One of the dilemmas many professionals face is when to jump ship? versus when to steady the ship? There is no right or wrong answer to this question, and the answer depends on the individual circumstances. When to jump ship? Vs When to steady the ship?
Tip #4: It is very important that your technical skills must be complimented with good resume writing skills, interview skills, soft skills & right attitude. You need to grow NOT just as a “techie” but as a well-rounded person with good technical skills to get things done in a team environment.