That is exactly the issue. It mostly comes down to code review, i.e. to make sure they produce functional code in a reasonable amount of time, where the code doesn't look like it was written by a crazed monkey on crack. The last few years the latter was increasingly the case. There are many times where, after the first few days, there is a dramatic shift in coding style, and you know that another (possibly junior) dev has taken over the work.
As this kind of fraud increases, it becomes increasingly expensive and overall unattractive to work in this fashion.
To be honest, right now the market is fucked, which is why I am eager to get out. On the one hand, pressure from "cheap freelancers" has driven down the client expectation of cost, whilst on the other hand, decent freelancers often command rates that are in excess of what I am able to bill. It is unsustainable, and I am out. I am finishing a migration project for a long standing client of mine, and that will probably be the last project I take on that will require me to engage with freelancers. I am already struggling to resource this current project, and I can do without the hassle.
I'm scoping out a new startup, and will need to find something to do to keep the money flowing in until that's done.
In my experience, you need to work with individual developers and never ever with shops. I don't know how many of those are still around, but I had good work done on what was then Elance.
An easy filter when soliciting work is to include some things in the job description that the applicant has to respond to/think about. Most applicants will not, so you can throw them right out.
I also discriminate fairly aggressively based on country, suffice to say that certain regions usually match my requirements better for developers who match their advertised skill level and think critically about the tasks presented to them. Controversial, possibly unfair, but there it is.
Yeah, did the same things. I only work with "Western", Eastern European, and Russian developers. I speak and read a bit of Russian, and sometimes screenshots are a dead giveaway. I also have the interviews, with a surprise coding and reasoning task, and ask for references.
The reality is that today, a "meatmarket" (upwork etc. al.) freelancer is good enough to throw up a nice Wordpress site with a fancy frontend. Unfortunately, the people with the skills and qualities that I look for always end up with full time jobs at some point. All my long timers now have lead-dev type jobs with large firms.
This is exactly what I do. First thing is to require someone to put something specific in the subject line- that gives an easy filter. Next is to provide a pretty detailed spec so they know that they're not dealing with an ignoramus (either that or a verify that they are dealing with an ignoramus lol).
But I only outsource pieces- plug-innable- of a project. If you make the analogy to OOP- I write the interfaces and outsource the coding.
Often I'll have them modify or incorporate some existing, third-party (like Adam Shaw's calendar- case-in-point).
I've had pretty good luck overall. So I would definitely be willing to use a good site. Hell it might be fun to pick up a couple of gigs there.