The inspiration for this post came to me while reading a few invitations I received from some of the “modern contracting” websites. I’d like to thank them for giving me a chance of some good bashing, but I won’t write their names here as they don’t deserve free advertisement.
A bit of background
I registered on some of these websites some time ago, because I needed to outsource some work I could not do myself. Despite being the Client and, thus, looking for someone to hire, I also completed my professional profile in the Contractors section. I did it because I like to know the background of people with whom I collaborate, and I think it’s only fair that they get to know about me as well.
The drawback of this is that now I also appear as a Contractor, which allows other Clients to invite me to submit proposals to their projects. I was aware of this, and I thought it would not have been a big deal to reject an invitation, from time to time. Also, I saw it as an opportunity to get in touch with new prospective Clients and establish a relationship outside these platforms. Things went as expected for a while, until I started receiving invitations so disgustingly arrogant that ticked me off.
Here’s a selection of the “best” job offers I received in the past weeks. Descriptions not copied verbatim, but the content is unaltered:
- I need a complete clone of somesite.com with all the frontend and backend features
Also called “job from a customer on cocaine”. Someone sees a successful product, or website, and wants to copy it, convinced that they will automatically share the success. This is a very common job posting, yet it’s idiotic like hell. Clients have this stupid habit of thinking that “the same as XYZ” represents a complete set of specifications. Sure, after all it takes nothing more than a glance at a website to immediately know it inside out, you moron!
Some Professionals would say that it’s our job to help the Client and transform their requirements into specifications, and I would agree with them, if the budget for such project weren’t so pathetic. You really expect to get a perfect clone of Ebay for $500? I have two words for you.
- Urgent! Emergency! I need it now! Budget is non-existent
Also called “panicking Scrooge”. It’s fine to try saving a few bucks on a project, but I’ve never seen, in my life, anyone with a brain starting the negotiation with “urgent, vital, I need it immediately”. Even my daughter, who doesn’t even know what a market is, is aware of the mechanism of demand and offer. Urgency and need are guaranteed to increase the price of anything. If your site is dead and you need to have it running because your business depends on it, then it is your problem. Whatever is the reason of it (poor quality, hacking, carelessness), if you want me to run like lightning, then you have to pay for it. It’s just fair. If you want to have it fixed for $21 (exact sum taken from a job offer of such type), I have two words for you as well.
- Simple change required / Extremely easy job
Alias “the know-it-all” customer. As you probably guessed, all job offers of this kind have even more pitiful budgets, such as less than $10/hour or $25 as a fixed price. FFS, if you are so smart and competent to know that the job is so easy that it shouldn’t cost more than $25 to do it, why don’t you move your butt and do it yourself, you cheap ass? Don’t tell me you’re too busy, with all your knowledge your hourly rate must be stellar, hence $25 should not represent more than 10 minutes of work. The (obvious) truth behind these jobs is that customers use words such as “easy, simple, quick” to lower the price for the work. After all, if a customer thinks that what you’re selling is not worth much, you won’t be daring to ask too much, or you’ll lose him. Well, so be it. Lose him and live happily ever after. Same two words apply.
- We require a week of work upfront before we decide if we’ll hire you. If we won’t, we’ll keep the work and pay you nothing
Sure! Would you like a cappuccino and a croissant with that? I can also lie down and be your carpet, while I’m here!
This is the last drop, the one that pushed me into writing this post. A word of warning: this comment will be quite rude.
This type of customer is simply known as the “smart asshole”, who thinks he’s doing you a favour by letting you work for free (of course, on real project, where he can benefit from your efforts) and, if you’ll prove yourself worthy of his “generous” budget, he might give you the chance of actually being paid for it. This is the purest bullsh.t you can ever find, not even sales people can reach that level of cr.p crafting excellence. I have worked on projects that required to do some work as for evaluation purposes, but all of them clearly specified that, in case of “no go”, the client will have paid the work delivered until that moment.Ironically, I have received at least three of these offers, always from the same company, and I regret that the platform doesn’t allow me to really express my opinion about them. It’s good to be polite and professional, but some people clearly don’t deserve it. Same two words for them, but in capital letters and repeated multiple times.
What you have to do, apart for the obvious “steer clear of these job sites”, is simple.
Know your worth
Knowing your worth, and not settling for anything less, is the first rule you must learn if you want to become a Professional Software Developer. Learn the value of your time and your skills on the market(s) of your choice and don’t be afraid of asking to be paid what’s right. The fact that you might enjoy doing your job doesn’t automatically give your clients the right of expecting discounts or, even worse, having you working for free (I know people who do it, and then they complain that they feel exploited).
The rule applies to every job (or contract, if you’re self-employed) you will get, no matter if you’re doing it for a complete stranger, an acquaintance or your best friend. Your knowledge costs, your time costs; if they think they can get things cheaper elsewhere, let them go. They’ll come back to you from India angry and frustrated, at which point you’ll present them a higher price, since you will first have to fix the mess and then do things properly.
The issue you might be facing, though, is finding your worth. While the market can pay X thousands for an experienced Professional, what could you expect if you are just at the beginning? Here’s a set of rules that might help you finding an appropriate hourly rate.
If you have zero experience
- Learn, learn, learn! Find a field that you like particularly and take part in Open Source projects. You will be able to do it from home and not having a supervisor breathing on your neck will force you to manage your own time. This skill alone will be invaluable.
- Do a paid internship. It may look like I’m contradicting myself, since internships are never paid much, but this is not a gift you do to a company. The internship will put you in contact with other, more experienced professionals, from whom you’ll learn a lot (definitely much more than just staying in your room by yourself). You’re investing in yourself: you will earn little in terms of money, but immensely in terms of knowledge.
If you have experience
- Find as many job offers as you can, where your skills and knowledge are required, and calculate an average of the ongoing rate for your figure. Make sure you’re comparing similar positions, i.e. don’t mix up one asking for pure PHP skills with another where DBA skills are necessary.
- With the average in your hand, you’ll immediately see if such market can be profitable to you. If it doesn’t pay enough, move on and don’t worry too much. Remember, you’re a Developer and, as such, you’re smart and flexible. Therefore, you’ll be able to enter that market at another time, when the situation will be better.
- If you like what the market pays, you found your hourly rate. You must never go below that level.
Tip: companies, often, tend to ask for a daily rate, rather than an hourly one. The reason for that is simply to contain costs: they define a day as eight hours and pay you X for it. If one day you’ll work four hours, they’ll expect you to pay 50% of X for that day. However, if next day you’ll work ten hours, you’ll still get paid for eight. Your daily rate, suddenly, becomes an “up to”, which is stupid offer to accept. Always insist for an hourly calculation, with extra charges for overtime.
Tip: if you’re on a salary, you won’t get paid overtime at all. In this case, insist in working per goals, rather that per hours. Your work should be reaching target X by day Y, not putting at least eight hours every day. While on a salary, you’re not paid for the time you put, but for the results you bring; insist in being allowed to manage your own time, as long as you deliver on time.
- Once you have your hourly rate, increase it by a percentage for anything out of the ordinary. For example:
- Overtime: between 30% and 50% extra.
- Night overtime: between 70% and 100% extra.
- Weekends and holidays: between 100% and 200% extra.
- Emergencies: 50% extra on top of the above, unless the emergency is due to your negligence.
It may seem a lot, but I guarantee you that your clients will be glad to pay once they learn the value of your work. Having a mission critical system out of order the whole weekend might end up costing them several times your premium fee. It’s good to help who is in trouble, but it’s fair to be rewarded appropriately for it.
We’ve been in the era of technologies for decades, and Developers, despite being seen by computer-burger flippers by some, are now more than ever in demand. The offer, however, is not as plentiful and, often, its quality is abysmal. Distinguish yourself from the masses of crappy coders that infest the net. Be proud of what you do and, most importantly, always give your best. Work with Clients that value the quality you can offer, and you won’t ever have to justify your fees.
Finally, if you’ll ever meet a cheap skate such as the guys above, remember the magic words!