Long time no post! It’s been a super busy period, I had a lot happening for me during the last months, which left me so little time to write here. I came up with a new post which will present some advice for beginner freelance mobile developers. I’ve been freelancing for close to as much as I’ve been working professionally and I managed to learn a lot, not only programming-wise, but also developed skills in time management, negotiation, communication (or basically how to best present yourself in order to prove exactly what you are about). I will describe the things I learnt and what to do to be a good freelancer.

I started freelancing back in 2014 on Fiverr.com. For those who do not know, Fiverr is a platform that was built around the idea of selling something for 5$. So I set up an account and started doing some small Java projects, of course, not for 5$, but negotiated prices that I found fair. To find more clients and get more orders, you need to first have a very good rating.

This is where I learnt the first lesson – if you are a beginning freelancer, you need to give a lot more value than you are paid for! That is so simple to understand, but sometimes people think they will be exploited into doing a lot more – which is wrong.

On a website like Fiverr, ratings matter more than one could think. The first thing that someone will check when searching for a freelancer is the rating and his reviews. The idea is to give more than you’re asked for, so that clients are happy to leave a good review without the need for you to ask them to do it! Work hard, make sure the project meets the client’s expectations and if you feel there’s any cause of concern – ask for feedback and make sure it’s exactly how they expect it to be. Also, make sure you always reply fast to their messages. Clients love prompt communication. And also, very important – never get late with your order. If you feel you can’t finish in time, don’t take it. These advice are not only for the first projects – you should always behave like this – but if you start off without them, you will most likely fail or advance very slowly.

So as a small recap so far – give more, work hard, be responsive, make sure the client is happy with what they ordered, don’t miss the deadline.

After I managed to establish my profile and have a steady flow of orders, I often found myself not being able to withstand the entire load and had to work until 4 in the morning just to finish stuff on time (yeah, nights with 3-4h of sleep, sometimes nights with 0 sleep). Here I learnt another very valuable lesson – don’t take more work than you are able to do. If you are like me, then you would like to do every project you receive and make as many clients happy as possible. However, there are only 24 hours in a day, and you probably wanna do other stuff as well. My advice in this regard is that when the orders keep coming, don’t be afraid to be picky. Choose the best value orders (and by value I don’t mean money necessarily, the value in a project differs for every one of us) and you can always try to tell the other potential clients that you can offer your services in the future. Maybe you will find some long term clients – and at this point you will be working mostly with them, hence the need for finding new ones disappears.

When negotiating projects and establishing your work flow, you need to be able to understand and make the client also understand what I call The Golden Triangle – time, quality, maintainability – which should always be kept in balance, as an equilateral triangle. Otherwise – if not explained properly – the client’s expectations will not match what you provide. Let me give you a clear example – the client might expect your project to be completed in a short amount of time. You need to be able to explain that the quality and long term maintainability will be affected. They need to understand the balance, they need to know that in order for you to give them what they need, they also need to either accept that all 3 notions are equally important, or that they will have to expect a tradeoff. This tradeoff is globally accepted, from what I saw, the main component that is sacrificed was usually maintainability. Usually, clients want a quick and good working solution for their request. Most of them only care about present time so be prepared to adjust the code you provide according to what they want.

From the projects I received for fixing, I would say that 99% of them looked horrible in terms of code (so code quality was close nonexistent, zero maintainability) but they did what they were supposed to do. Of course, such solutions fail if their environment changes just a small bit, but the clients received what they asked for (a working project for a small cost). Reaching me was the point they realised that doing so was a mistake, and they should have paid more for a better product.

On a closing note, I would like to say that freelancing is honestly awesome. You get to work with a lot of different people, you experience many different work styles, technologies and you get to see a lot of ideas being put into practice – people who want to achieve success with their apps. You have the liberty of doing it from the comfort of your home or wherever you would like. However, you have a great responsibility towards your clients – remember, always do what you promised to – be a man/woman of your word. If you have any questions or comments, please don’t hesitate to contact me, either in the comment section or in the Contact section of the blog.