Google

Oct 21, 2013

How to become a Java freelancer?

Anyone can become a freelancer, but the hardest part of becoming a freelancer is finding work. You just can't go to a freelance site like Elance.com or Odesk.com and expect to pull jobs that will give you a steady income. Those are low-dollar markets for some countries as you will be competing against people around the world. Hence, this post is based on working for a single client locally on a longer term basis like 3 months to 24 months. So, to find jobs continously

You need to "talk the talk" in your job interviews to get hired as a Java freelancer, and "walk the walk" at your freelance Java work to impress your client and consequently get repeated extensions. It can also be a challenge for Java freelancers who want to break into the finance sector as it pays slightly better rates.


So, you need to develop certain skills that distinguishes you both technically and non-technically from your competition. These are not hard and fast steps, but general guidelines from my experience. Some achieve it quicker whilst others take longer. It depends on the individual and the nature of the market (i.e. demand versus supply).


Step 1: Develop the experience and skills required to become a freelancer.
  • At least 2-3 years hands-on experience with Java, Enterprise Java, XML, SQL, regex, JSON and sought-after frameworks like Spring and Hibernate. Check the local advertisements to see what the prospective employers are looking for. Good to have 2 to 3 projects completed through the full SDLC.
  • Get a good handle on the 16 key areas to solve real business problems and to better market your skills at the job interviews and on the job. I am yet to work for an organization that did not have performance issues, concurrency issues, security vulnerabilities, and memory leaks. So learn how to create and analyze thread dumps, use visual VM to analyze memory leaks and performance issues, etc. You also need to know the big picture of the baseline architecture. you had worked on.
  • You can be a front-end developer (i.e. focusing mainly on GUI development), back end developer (i.e. writing web services to retrieve data from the database and other systems) integrating various systems, or do both, but you tend to have more strength either on front-end or back-end development. I do both, but stronger on the back end development.
  • Have good marketing skills -- 1. Good resume writing 2. Good interview preparation by brushing up on the fundamentals. I use my own resources to brush up just 6 weeks before my current contract is about to expire. I need to compete with other talented freelancers and contractors. Preparation not only breeds confidence, but also ability to sell myself more on work related accomplishments on the 16 key areas and sought-after frameworks.
  • Good networking skills. Build your network via LinkedIn.com and regular catch ups with your former bosses and colleagues. You will be under less scrutiny when you find your next contract via your previous contacts and earn a bit more by cutting out the middleman the "consulting agency" or the "recruiter".


How to become a software architect?
Many Java developers aspire a career as an architect. Can you just study to become a software architect? Will becoming an architect adversely impact your freealancing career as there are more developer jobs than architect jobs? The key is to become a hands-on solution architect. Have 2 resumes. One as Java architect and the other as Java developer.


Step 2:  Register yourself with the recruitment agencies and online freelance sites

  • Send your CV or resume to consulting or recruitment agencies so that they have your  details in their databases. Big clients prefer to deal with consulting or recruitment agencies as they do not directly want to keep in touch with hundreds of freelancers and negotiate rates. Also, if you prematurely leave a client for unforeseen reasons, then the consultancy or recruitment agency can quickly find a replacement.
  • Join the relevant professional bodies like Java forums and LinkedIn.com to advertise your availability. 
  • As only 30% to 40% of the real vacancies are advertised,  build your network to find your future contracts via your contacts. Make it a point to regularly catch-up with your former colleagues and bosses. Build a good rapport with a handful of consultancy or recruitment agencies so that they can proactively look for work on your behalf to create a "win/win" outcome for both. I have done this very successfully. 





Note: If you want to work on multiple assignments on a shorter term, then register yourself with sites like odesk.com, freelancer.com, elance.com, guru.com and bid for jobs. I have not done this myself as I prefer working for a single client on a longer term basis. 

Step 3: Decide whether you want to start your own company or go via an umbrella company.

  •  As you need to have professional indemnity and liability insurance you have to either organize it yourself if you are registering yourself as a company or use an umbrella company set up to look after these for you. You become a pay as you go employee of that umbrella company. These umbrella companies can look after your insurance and other administrative needs. You need to pay the umbrella company 3% to 5% of your pay for the service they provide. Consult an accountant and talk to fellow freelancers in your jurisdiction to see what works best for you. Each approach has its pros and cons. I go via an umbrella company as I will have no administrative work to worry about.

Step 4: Carefully asses the position(s) or offer(s) on the table

Freelancers or contractors are hired for 3 main reasons.
  1. To get them to do the boring work that other permanent staff  don't want to take on.
  2. To get the project over the line. In other words meet the deadline. 
  3. To bring in expertise that are lacked within the current team. 
So, it is imperative to learn more about the position at the job interview to ensure what you are getting into. Ask about the technologies and frameworks used, mission criticality of the project  - e.g. how many registered users?, how many servers on the clusters, the development team size, number of other systems to be integrated with? (e.g. CRM system, Data warehouse system, CMS system, etc) and so on.

You would ideally want points 2 and 3 to be the reason where you can acquire more skills and experience.

When you are asked for your contracting rates, provide a range like $650.00 to $750.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 have sold your capabilities to your prospective employer.

Step 5: Enjoy your career as a freelancer and continue to improve on step 1, 2 and 4 with more experience and exposure.

  • Endeavor  to build specialized skills in Java to increase your rates and reduce your competition. So, build niche skills by having Java + [something].  In 2004/2005, if you know Java + Spring framework + Hibernate you would have been in hot demand. But now there are thousands of developers with these skills sets. So, when you are lucky enough to pick from multiple contract or freelancing offers, choose the one that is more conducive to acquiring niche skills. Here are some examples from my experience -- A BPM  tool like IBM Lombardi, a SOA tool like web Methods, experience with highly scalable trading application using FIX protocol, a BI (Business Intelligence) tool like IBM Cognos, in memory Data grid like Oracle coherence, BigData (e.g. Hadoop)etc. In short, good system integration skills. Most applications built today are distributed. Learning Apache Camel will be handy as well.
  • If you fancy web development, invest your time in learning HTML5, CSS3, JavaScript, and JavaScript based frameworks like Angular JS, Backbone, etc. Single page RIA (Rich Internet Application) type applications are very popular using ajax calls to back end RESTful services. These frameworks use MVW (Model View Whatever) design patterns.
  • Continuously update your resume and online profiles with newly acquired skills and experience. Also, get your consultancy and recruitment agencies to update their databases.


You will gain more confidence as you go through the above steps. Freelancing  is not everyone's cup of tea, but can give professional freedom and better income streams for some.   The pros and cons of freelancing and other questions and answers are discussed in the post entitled "why work as a Java freelancer?". Some may prefer doing it for a short while and then settle down with a company to grow within that organization. Some love to do it, but fearful of or too complacent in the current role to take the first step. First step is always the hardest. Freelancing or not, more and more organizations are becoming leaner and meaner to make profit for their stake holders, and staying relevant with the technologies/frameworks without being too complacent about your current role is your only job security as a software developer. This blog has lots of technical know hows and career making tips to stay relavant.

I thoroughly enjoy my career as a freelance Java developer. In addition to monetary benefits, it also helped me fast-track my career without feeling stagnated and work with very talented Java developers.

Hope to hear your experience as a freelancer, especially for multiple clients via odesk.com, elance.com, etc.

Disclaimer: This is a general discussion only. It is imperative that you consult your accountant for relevant business structure and tax laws in your jurisdiction.

You may also like:

Labels: ,

8 Comments:

Blogger Nithyanantham. T said...

This is really good... and though I haven't thought about freelancing... but it definitely gives me what to look for and how to build...! Thanks a lot, Sir!

10:26 AM, October 22, 2013  
Blogger Arulkumaran Kumaraswamipillai said...

Glad that you found it useful.

3:35 AM, October 23, 2013  
Blogger Jitendra Kumar said...

This is the THREAD I was looking for ... very good post...
I have 3 confusion regarding the freelancer
1> I am working with MNC in India(Noida) having 6+ exp in JAVA and don't want leave it now. In this case how much I can succeed in freelancer ... because U describe as a full time freelancer.

2> If I got the payment from foreign (usa, uk...) how much tax need to pay as per Indian tax law.

3> Should I start with little projects in freelancer sites or from where I should start ... because I want to do freelancer as a part-time only ... May be later look for full time ..

Thanks Sir

8:20 AM, January 30, 2014  
Blogger Arulkumaran Kumaraswamipillai said...

1. It is your choice.
2. I don't live in India. You need to check with an accountant in your jurisdiction
3.You can look at the freelancer sites listed -- http://java-success.blogspot.com.au/2013/10/how-to-become-java-freelancer-or.html

12:41 PM, January 31, 2014  
Blogger Sri D said...

How should a fresher start his/her career here??No experience in java but still struggling to find a right path??

8:39 PM, March 11, 2014  
Blogger Arulkumaran Kumaraswamipillai said...

You need to have at least 2-3 year experience. Fast-track your career first by getting a good handle on the 16 technical key areas and sought-after frameworks

9:19 AM, March 12, 2014  
Blogger Vidya said...

I would be interested to know how you can be a Java freelancer in India

5:00 PM, August 08, 2014  
Blogger Shambhu Kumar said...

I want to do freelancing for part time. I have 7+ experience. Can you tell how to get projects. It's difficult ot get on odesk also.

5:29 PM, August 13, 2014  

Post a Comment

Subscribe to Post Comments [Atom]

<< Home