I am Joannes Vermorel, founder at Lokad. I am also an engineer from the Corps des Mines who initially graduated from the ENS.

I have been passionate about computer science, software matters and data mining for almost two decades. (RSS - ATOM)


Entries in freelance (6)


In praise of

I have been a long time consumer of freelance marketplaces. Yet, all the freelance websites that I have experienced so far left me a feeling of half-backed design. Guru, oDesk, eLance, rentacoder, just to name a few of them.

The heart of the problem lies in the doomed attempts at supporting any type of freelance jobs with a unique web application.

In contrast, has a unique focus on voice talents. You won't find database administrators or supply chain consultants on; but when it comes to voice-over jobs, the application is just plain great.

Basically, like any other freelance website, you post your job - including your scripts since it's a voice over job - and within hours you get dozen of freelance offers. So far, so good, all other freelance websites are doing that.

Yet, the killing feature of is that each freelancer gives you a 30s record of their own voice over your scripts.

And this feature is plain amazing. Instead of wasting hours making desperate attempts at sorting out true talent out of the massive amount of junk proposals, you just listen to your 30s samples, which precisely happens to be the rational way to take your decision.

And the best thing is that since is putting a strong emphasis on talent through this very feature, you're getting virtually no junk proposal at all. Among the 30 proposals that I have been getting yesterday in less than 6h, most of them were very good, and a few of them, plain excellent.

Not believing me? Just check the very nice job that Ray Grover did for us within a 6h timeframe from job posting to job termination.


Buyer's guide to development outsourcing

Outsourcing parts of your IT developments can be highly cost effective. While running, I have outsourced most of the work for 3rd party connectors (23 of them at the time) and I am considering the outcome as more than satisfying since I would never have achieved the same amount of work without outsourcing, considering comparable delays and financial investments.

This document is a small guide for mISV or ISV that might be willing to go freelance too. May this document help you to avoid my early mistakes.

Getting freelance proposals

Finding freelancers is easy, but being a good freelance manager is hard. Indeed, you have plenty of open freelance websites. I have been using and (among others), but I think that the freelance website has a very limited impact on the outcome of your outsourced projects. Just stick to freelance websites with significant traffic and it should be OK. Do not ever accept to pay anything upfront to post your job, you would be wasting your money.

Multi-posting is cheap, I suggest not to hesitate to cross-post your job descriptions. It requires a bit more work to keep track of all your postings but it increases the amount of proposals that you get. Since you are going to navigate within tons of websites, proposals, coder profiles, I suggest to create some bookmark repository to manage the whole process: a non-public wiki page is perfect for that especially, if you work in a team. Having 100 proposals is not an issue, you just need the right sorting algorithm (see next section).

Disclose your name and your company. Usually the freelancer gets paid at the end of the job. Thus, the freelancer is taking the risk of not getting paid. By disclosing your name and your company, you are reducing risk, in the opinion of the freelancer, of not getting paid. Anonymous job posting are just more suspicious; and the freelancers are going to charge you more based on that suspicion.

The job must be factual and non-ambiguous. Writing a good job description is hard, especially if you want it done quickly. The first paragraph should be a Job overview. In 5 lines or less the freelancer must know whether this job match his technical skills. It's really important to list all the technologies, languages and tools in this section. If that list can't fit into 5 lines, then you should consider splitting this job into smaller ones. The comes the Delivery section. This section is the exhaustive list of all the documents that you expect to be delivered by the freelancer and the end of the job. Do not forget to specify the formats and possibly the encoding. At the end, the extensive description and your requirements should be found. Notice that this order is respecting the inverted pyramid principle.

Make the job as much stand-alone as possible. Taking over a job can be a significant investment for a freelancer if he has to get familiar with your tools, your own software libraries (worse, your home-made programming language). The freelancer is going to charge you for this take-over investment. Thus, if you want to save money, make the job as much stand-alone as possible. Often it means that you ill handle yourself the integration of the delivered code into your systems.

Go for small jobs (no more than $1000 at once). The larger the job, the more uncertainties; thus it's better to stick to small jobs. First, freelancers are only paid at delivery, thus they will not accept to commit themselves to bigger jobs without being paid upfront. Then, if it's safer on your end to be able to make adjustments along the way like changing of freelancer (if the one you picked does not match your requirements) and/or adjusting your requirements.

Suggest reasonable price and delay. Although, it might be a bit counter intuitive, suggesting a reasonable price is actually a good way to lower the final price. First, it sends a signal to the freelancer about the scope of your job. The worse situation for a freelancer are the ill-defined requirements that leave a large latitude in the workload estimation. By helping the freelancer to make his workload estimation, you are decreasing the job uncertainty and thus, the price associated to this uncertainty.

A question at the end of your job description. This question should be factual and related to the job itself. The purpose of this question is to facilitate your choice when you will be sorting out the dozens of proposals that you did get for the job. Basically, you can discard all the proposals that do not start by addressing your final question. Indeed, if those freelancers did not even bother to read your job description until the end, trusting the job in their hand is a bad idea anyway.

Choosing the right freelancer

Do not trust ratings for IT projects. Many freelance jobs are actually home works submitted by US students. Since 1st year college home works do require much skill (think of Hello World style exercises), many poorly skilled freelancers ends up with tons of positive ratings. Also, non-technical people submit loads of trivial IT jobs like converting CSV data into Excel data. I mean "trivial" for IT professionals, not for your Uncle, the divorce lawyer, who is also buying IT services occasionally. At the end, I have found that positive ratings aren't reliable for coders.

Discard cut and paste proposals. A lot of Indian companies (well, not only India in fact, they just tend to be more visible) are just cut-and-pasting generic proposals. Those companies do do not even bother to read your job description, and automatically propose a random amount for your job (typically $2000). They also tend to send you a private message (cut-and-pasted as well). Spotting those proposals is easy. Do not even bother to read their long stories about the 1000 satisfied customers. Choosing such a company is only asking for trouble. To be discarded at first sight.

Go for specialists. A lot of freelancers go for the "Jack of all trade" strategy and submit proposals at random no matter the technology (PHP, Java, C#, C++, ...). In my experience, the best freelancers are those who are heavily specialized in a few areas; even better but it's rare, the freelancer who's an expert with a list of applications (like Oracle 5 to 10). The cost of outsourcing is highly dependent of the final productivity of the selected freelancer. More specialization means shorter delays and increased code quality.

The country has no importance. The "right" person can be anywhere, including the "expensive" countries. As stated previously, the price depends heavily on the final productivity of the selected freelancer. In my experience, productivity easily varies of one order of magnitude between specialized and non-specialized developers. Skills matter, countries do not as long as people are fluent in English.

Go for independent freelancers. Outsourcing companies just complicate the process without adding value. The company is just another communication layer: you get a "manager" between you and the "coder". If the requirements need to be adjusted along the way (it happens often for the fine-grained detail of the job), you have to negotiate with a manager who do not really understand the problem, because he is not in charge of the job and then re-forward the decisions to the coder. Worse, all the good freelancers realize quickly that an outsourcing company on top of their head is not adding value but eating a significant part of their lunch. As a result, the best freelancers are always those who work for themselves. Do not get fooled by pretty websites of outsourcing companies. At the end, the only thing that matters is the skill of the person working for you.

Probe freelancer responsiveness. Once you've cornered a small set of interesting offers, I suggest to probe the "responsiveness" of those freelancers. Most freelance websites provide some sort of private message system. Just a send a private message (raising a question about the freelancer proposal for example) to see if you get an answer within a short delay. In my experience, discard any freelancer who can't respond to your message within 24h. Responsiveness is a key of effective freelance works, if you can't even get an simple answer like "I am too busy right now, give me 48h", then the chance to get the job done are low.

Managing the freelancers

Outsourcing must be part of your strategy. Managing freelancers take time and skills. Taking the "right" strategic decision can significantly simplify your outsourcing processes. For example, at Lokad, we have put released all our 3rd party integration components as open source. Disclosing this source code is not an issue since it does not impact the Lokad core business. Yet, in terms of outsourcing, it significantly simplifies the process. We do not need to transmit any access codes to freelancers, everything being readily available. Furthermore, it facilitates price and delay estimation on the freelancer side. Open source is only one option among others; but keep the idea in mind: a lot can be done to facilitate 3rd party developments without damaging your core business.

Anticipate a high failure rate. A lot of things can go wrong. You might realize that the freelancer do not have the required skills. The freelancer is bidding on many jobs at once and takes other commitments after bidding on your job. Your job description was ambiguous. etc... Anticipating a 30% failure rate while hiring a "new" freelancer is not unrealistic. Yet, a 99% reliability would cost you x10 more; thus it's a trade-off between acceptable risks and costs. Part of the reasons that make outsourcing cheap is because nobody takes strong commitments.

The infrastructure has to be ready. There are tons of tools that facilitate remote freelance works: source code manager, bug and feature tracker, open forums, etc... This infrastructure has to be ready before you actually start to look for freelancers. Otherwise, you and your freelancers will end-up wasting a lot of time on mundane communication details.

Strong IT skills are required. You must be able to do what you are asking from the freelancer; at least potentially, if the time was given to you. First, if you're not an expert yourself, you will not be able to write an "efficient" job description that include the necessary technical details. Second, the freelancer is going to raise very technical questions on the job (like "What encoding do you want?"), if you are not able to answer, then the whole process is in trouble because even the smartest freelancer does not know the exact technical requirements of
your business.

Be super responsive. Remember that most of the time, when the freelancer is raising a question, it's because he is stuck. In order to move forward, he needs your answer NOW. Making yourself available through your favorite Instant Messenger can greatly increase the speed of your freelancer. Worse, if you're slow to answer, the freelancer might be tempted to start another job because, you're not keeping him busy (wasted time = wasted money) and this is not going to improve anything for your deadlines.

Nights and week-ends do not count. Most of people in the world do not live in the same timezone as you do. Thus, your "business hours" are completely irrelevant when it comes to freelancing. Also, many freelancers do have a part-time or full-time jobs already and wants to make some extra money during the week-end. In my experience, those people tends to be among the most skilled and efficient freelancers. Yet, those people are working the weed-ends. The "super responsive" condition applies 16h / day and during week-ends too.

Source code must be proof-read. Never trust delivered code without proofreading it. Proofreading takes time, but not doing it is asking for trouble because the freelancer will not be there to answer your questions once the job is closed. First, you must make sure you understand the delivered code entirely (see point below); but you want also to make sure that your coding guidelines are respected and that all the job requirements are met.

Ask for code comments, re-ask for code comments. Once the job is closed, the freelancer is gone; leaving you alone with the delivered source code. As a result, the source code must be heavily commented in order to be sure that the code can be maintained at a reasonable cost. Yet, the code comments somehow conflict with the freelancer goal get it done as fast as possible and move on. Thus, you have often to put some (limited) pressure to get source code comments from freelancers.

A formal testing process has to be devised. If unit testing is possible in the context of your job, then go for unit testing. Otherwise, make sure you that you have a formal way of to validate the delivered source code. If the validation/testing process is manual and tedious, you can include it as a part of the job description. For example, I have often asked the freelancers to provide all the necessary screenshots as a part of deliverable elements.

Once the job is done, pay immediately. Depending on your business, several weeks of delay for a payment might be acceptable. Yet, for online jobs, several weeks is a HUGE delay. As a rule of thumb, freelancers expect to be paid in less than a week. In this respect, instant payment systems (like Paypal) are usually quite appreciated by freelancers (at least for those who have access to Paypal in their country). Being a fast payer is important for the freelancer, delaying the payment for weeks will significantly reduce your chance to get this freelancer working for you again; especially if the freelancer is talented.


Homeworks going freelance

I am a regular customer of freelance services. It's especially useful when you need to translate your website or when you need open source developments (because confidentiality becomes irrelevant).

Usually, I am browsing the freelance websites on the buyer side; yet I only recently gave a try to the provider side. Most freelance websites include tons of job like

  • Simple sort in Java, NEED HELP


  • Solving a puzzle in C

  • ...

Those jobs are clearly student homeworks, and I have been stunned by the fact that those jobs may represent one job out of two on most freelance websites (yet those jobs are tiny on average; thus the business impact is probably much smaller than 50%). Western IT companies might not already exploit outsourcing to its full potential but US IT students seem to be really good at it.


Scammers going global leveraging freelance services

In my previous post, I was discussing the various trust issues that are encountered when dealing with an online community. I was discussing some issues related to translation jobs sabotage by scammers. My point was the risks in freelance translation jobs are much higher on the customer side than on the translator side. The main argument was it's hard to turn a small translation job into cash. Well, scammers have more imagination that I have, and it seems that this argument is partially wrong.

I have just recently banned a few translation jobs on PeopleWords. Basically, a scammer was trying to use freelancers to translate typical scam letters. Indeed the main letter topic (the letter content was on public display by the scammer) was related to a large amount of money somehow blocked in a country of Central Africa. It was quite perfectly fitting the typical scam patterns (see 419Eater for an introduction to the common scam practice and how to fight them).

Moral of the story: scammers are fast movers, like any ambitious company they want to go global. Freelance translators will be on the front line of this move.


A few marketing tips for online freelance translators from a customer view point

Let me get the point clear: I am not a translator, I have never step a foot into a translation agency and I know nothing about the translation business. But as a simple customer, I have had a large amount of interactions with many freelance translators (most of this experience is related to the setup of the PeopleWords website).

Good online marketing is about sending positive signals to the customers. As a freelance translator, what signals are you sending to your customers?

If I am writing this small guide, it's because I have noticed that translators, in my experience, have, on average, really poor online marketing strategies. When I say "online marketing strategy", I mean What are you doing to convince a customer that you are an honest and brilliant translator. I have seen dozens of translators, often claiming years of experience for large and well-established companies, doing so ridiculous mistakes in their interactions with potential customers (i.e. myself) that I think a few "marketing" tips might not be totally unnecessary.

Sending your resume

Frankly for a $100 online translation, I am never going to read your resume. Consider that for a $100 job, I am receiving a dozens of resume. Do you really think that a typical customer is going to read 20 pages (or more) of resume for a $100 job? Additionally, there are so many resume just freely available on the web, what kind of proof is that? What tells me that you did not just get a random resume on the web and put your name on it? For online translation jobs, the usability of resumes is close to zero.

Not disclosing your personal data

What is your real name, your address, etc? Most online translators seem to be very reluctant to disclose anything. Do not expect the customer to ask you such information, you have to disclose everything first. Just consider the customer position: if you have to choose between 1) a "real" person with a "real" name and a "real" address; 2) a fly-by-night anonymous login. Who would you choose? By the way, what are the risks of disclosing such information anyway? If you are afraid of being visible on the web, surrender now all hopes to become a successful online translator. Also avoid any, and e-mail addresses. Those e-mail providers are widely known to be totally anonymous. You need a trustful e-mail address (see point below).

Not having your own website (or blog)

A website or a blog (with some content in it) is really a strong signal for the customer. It means that you have a persistent online existence. Persistence means that you did not appear last week and consequently that you will most-probably still exist next week. The number one quality of freelance translator homepage is not shiny designs (who care's if it's just plain text) but bilingual content. Your page must be available at least in two languages. What a better proof that you're not a soon-to-be-vanished crook? Setting up an homepage requires only a few hours of work. Yet, my guess would be that more than 95% of the freelance translators do not have a personal homepage.

Poorly written communications

As a French customer, I can't judge whether you're writing good Chinese or not. I have no way to check your Chinese writing skills. Therefore, I will judge your skills based on what you will be writing to me. If your communications are constantly full of spelling mistakes, how can I trust you not having the same amount of spelling mistakes in the translated documents? My experience is that more than half of translators do not pay any attention to the spelling mistake in their communications. Spelling mistakes are a strong negative signal for the customer.

Unfocused job application

This point is connected to the resume discussion here above. A customer posting online a translation job is most likely to get at least a dozen of competitive translation offers. Therefore, your answer must be sharp and focused. Do not cut-and-paste a 10 line presentation of yourself, it's almost as pointless as sending your resume. In your answer, you must prove to the customer that you have some understanding of his context and that your experience matches his documents. In the customer's mind, such an answer sends a highly positive signal that you've already started to work on his case (which is not totally untrue).

As final note, remember that the customer choices are more a matter of trust than a matter of price.