My name is Roberto and I’m a professional Java Developer from Portugal. My development experience over the last 8 years has been mainly in the areas of Finance, Insurance and Government, but about a year ago I started to work as a Java Freelancer for three different customers and now I’m considering creating a company to handle all the requests I have. Btw, that’s not me in the picture to the left, that’s Jaroslav Tulach (of NetBeans fame!)
In a way, I think I have managed to become successful freelancer, but it wasn’t always easy. The idea of standing with a sign that says “Will code HTML for food” was not appealing to me, so I made it work. The following thoughts are my humble contributions to steer people that want to change their professional career and experience the way of a freelancer.
1. Work as a non-freelancer for at least 10 years (kidding)
Maybe not that long, but before anyone will hire you, you’ll need to get some experience and a track record first! Freelancers almost never start off as one; they usually start with a fixed job. After I finished my university degree, I had no experience in the real market, so even if I wanted to launch my career as a freelancer how could I convince any potential customer to hire me?
Freelance jobs are not easy, unless you already have some kind of unique skill. Remember, most customers want instant results and their time (and money) is too valuable to spend training you–otherwise, they would just hire an intern and train the person on their own. I worked for the same company in Portugal for 7 years until I had enough confidence in my own skills that would allow me to move to freelance. If you can do it straight away, great, but in my opinion gathering enough experience early on will increase your chances to become a successful freelancer in the future.
2. Invest in yourself (finally, you can have business cards!)
The software freelance market is not easy. You need to be able to quickly answer requests from your customers & prospective clients or they will look for someone else, but you also need time to learn and research new technologies, so you need to balance each aspect carefully.
Going to Java conferences around the world is a good start. Not only you are gaining a lot of knowledge, but you are also networking with your peers. Who knows, maybe they get so impressed by you that they would recommend you if they need someone to fill a job in their company?
Remember to take business cards with you for networking. I actually obtained one of my current customers that way, so don’t underestimate their value. You also need to build some name for yourself and invest in your reputation/visibility, so future customers can rest assured that you are reliable. Contributing to open-source projects and writing your own technical blog are excellent showcases to demonstrate your expertise.
How many of us have a preference for one technology over another? Probably everyone. I also have my own preferences; during most of my professional career I enjoyed developing stuff in the backend, but in the last few months I have worked with Android, JQuery and AngularJS just to name a few. You really need to try different stuff. If a customer asks something from you and he is willing to pay, are you really going to answer him: “No. I’m sorry. I only code EJB’s”?
I’m not telling you to be some sort of jack-of-all-trades-and-master-of-none, but as a freelancer you should cover a wider range of technologies. If you think about start-ups or other small companies, they usually can’t afford several people to do just one kind of task. If you’re not willing to match your client’s expectations, most likely there will be someone that is and you will be at a disadvantage.
4. Manage your finances (ummm, what taxes??)
As a freelancer, I’m already stressed enough with technology problems and customer relationships and shouldn’t need to worry about anything else. Unfortunately, you’ll have to and it’s too much important to not care about. When you are part of a company, their own departments handle most of the financial details, but freelancers are a one-man show, so they need to handle taxes, insurance, registrations and all that on their own.
In my case, Portugal’s finance laws not only change all the time, but are also very complex to understand. Doing your business in certain ways may be the difference between earning or losing money from your total payment due to taxes. It also requires you to fill a lot of paperwork that takes away your precious time that could be used to invest in yourself or your customers instead. My suggestion is to hire someone to do the job for you and focus on what you are good at, not waste time on something that you dislike and are probably doing half wrong anyway.
5. Don’t get carried away (“I can’t even afford to put fuel in my plane!”)
It’s very easy to get carried away if you start to be successful. You may end up having multiple customers seeking your services and the temptation to accommodate them all will be strong–after all, you don’t want to turn down business, right?
But watch out: the earning you will make sure looks good, but you have to realize that you may not be able to dedicate the full attention needed to every single one. In a worse case, your customer may not be happy with your work and not recommend you/hire you again for future jobs. Don’t be afraid to refuse a job–telling someone that you are currently too busy, and that just like your current customers, you know that they would want your full attention without distractions on their project as well.
You may even help other fellow freelancers by recommending them to customers that you couldn’t accept. Time management is very important here. Keep also in mind that you should balance your professional and personal life or you may get burned pretty quickly and regret your change to freelance.
Final point: Why not try it someday?
There are many more details that make up the life of a freelancer. These reflect my own personal experience. Feel free to contact me if you have any question.
So far, I have been enjoying the freelance experience and I don’t regret my decision, but I cannot tell you to do the same. That’s a decision you have to make on your own. But if you feel that you’d like to try something different, why not give it a try? What’s the worst thing that could happen to you–be unemployed? Luckily, working in the software development market means there is high demand for your services, so you shouldn’t have a problem getting another job if you don’t like to freelance.
And remember, you can always code HTML for food…