Freelancing is a good way to learn new technology, get some hands on experience and not getting limited to the technology stack at your full-time job and of course earn some extra money!. There is a great demand for developers out there, so if its ‘legal’ (check with your employer, if you already have another full-time job) for you to freelance then give it a try. There are a lot of online freelance platforms(Upwork, Freelancer) that connects businesses and developers remotely. These platforms enable you as a developer, to start a profile and bid for jobs of your interest. If the business/client finds you as a match for the job, then you get signed up and can start working immediately.
Easy right! Yes absolutely it is, but here are a few things that might help you through the journey, that I have learned from my experiences.
Finding work is just an easy search across on the platforms with your preferred skills. It will be a good idea to stick to one of the platforms so that you can build up a profile and then move on to other platforms. Landing your first job as a freelancer could be tricky as clients have a tendency to look for people with some work record on the platform, which assures them that it is a ‘real human’ that they are talking to. But this is kind of ‘chicken and egg problem’. One of the best way to break into your first job is to sell yourself low - Yes, you heard it right - Really low!
While I started on with the idea of freelancing, I took on it with the perspective of that of an experienced developer(as I had a full-time job, which was paying me decently well). I bid on all projects with a relatively higher amount or at par to that my current job was paying, until I received back the below email from one of the clients.
You lack test scores, have a small portfolio, and have no Odesk history. You should try to underbid and get jobs when you are building up odesk history, get good feedback and then raise your rates later.I see you have good qualifications and don’t mean you are not worth what you charge, this is just a way to get more clients in the beginning
It’s not always that you get a reply like this and it was an eye-opener for me. So to get the ball rolling, I tried bidding low on a couple of bug fix project which was about 1-2 hours work. Luckily I got one of the jobs and from then followed the exact feedback that I got back - Slowly increase rates and build profile.When bidding lower always make sure that you do on projects of smaller size, so that you don’t feel really bad selling yourself low midway through the project (you could always renegotiate, but it might affect the feedback).
Bidding is an important part of the freelancing cycle. Make sure you put in as much details to put across that you are an ideal candidate. It’s where your skills to sell yourself come into play. Make sure you convey through the reasons on the ‘Why’,‘What’ and ‘How’ in your bid cover letter.
Approach bidding the same way you would attend an interview with a prospective employer.
- Why you are interested in the project
- What makes you a good candidate and your experiences. It will be good to have some references to existing projects/applications/blogs to back your claims.
- How you would approach the problem at hand and some questions probing more details.
Many a times we have a tendency to copy paste bid cover letters and clients might look for specific references to their project. There are also clients who ask to start/end the bid with specific words or phrases just to make sure you have at least read through the job description.
Communication is the key when working remotely. Keeping your clients/stakeholders up to date on what’s happening in the project, calling out any risks associated and clarifying on any issues should be done promptly. Your bid cover letter is the first impression that you leave on the client on your communications skills. So that makes it an added reason to give enough time while sending out your bid.
Missing a deadline is not really a problem, but not communicating it up front is.
It’s a good idea to set a rhythm to your updates and also sticking on to an update format, so that client knows how and when to expect for things. This will also allow them to plan for work. If working on hourly jobs, it would also be a good idea to set up repositories to share code or other artifacts that you are working on. Github (paid for private repositories), Visual Studio Online (VSO) or Bitbuket (free with limits for private repositories) are good providers that you can use. Using Trello boards or VSO for managing work/tasks will give enough visibility to clients on the current status at any point in time.
Hourly vs Fixed Price
When starting out it might be a good idea to start with an hourly project, so that you get introduced to various aspects of freelancing and get used to it. Once comfortable with the overall life cycle you can try fixed price projects. The challenge with fixed price projects, is in getting the scope fixed and making sure that you have accounted for all possible work. Also in tactfully raising cost variations when the client changes from agreed scope or when you discover work that you had not estimated for. Having cost change costs quite often does not put across a good message, so do that wisely and only when absolutely required. Even on hourly projects, there is nothing wrong in negotiating with the per-hour rate, especially if the project is a long running one.
Understand how the payment terms and conditions associated with the platform works. Some platforms have the escrow model, so the risk of loosing out on money is less. For hourly projects, some platforms have tools that automatically track the amount of time you work on a project and directly bill the clients card once in a week/month, in which case you are sure to receive the payment (unless the client raises a conflict). For cases where none of the above applies, make sure that you have payment milestones set at different phases of the project and you share the code/working product only once you receive payments for milestones. Sharing videos, pictures, live remote sessions could be some alternatives to prove milestone criteria.
Proving your metal is tough if you are just starting out freelancing. Having some experiences to show case is valuable when bidding for projects. When I started off freelancing, my intention was to learn Windows Phone and Windows 8 Modern application development. Since the platform was relatively new then, I started off with a side project Picfinity, to showcase my capabilities. Building the application also helped me generate a few blog posts around these areas and I used both of above to showcase my ability to build applications for the Windows platform. This also helped me increase my hourly rates at a faster pace. Branding is an ongoing effort that you need to do when freelancing, which indirectly enables you to increase your rates over time. Writing blogs, creating reusable libraries, contributing on forums, etc. are some of the things that help with this.
From the experiences gained from these freelancing platforms you will soon be able to move to consulting on your own or join premium freelancing platforms like Toptal, Xteam, etc. You could also stick on with these platforms and learn new technologies while getting paid. At the very least I see that it has helped me generate content for my blogs (as I still struggle with topics to blog about).
Hope this helps you to get started with freelancing!