Here at YJ HQ we use a lot of freelancers - obvious when you think about it,but it does pose certain challenges. The main issue is that the team is fluid, and that puts a greater emphasis on the team fit than normal - we simply can't afford for someone to spend three months getting used to the way we work.
To that end, the most important aspect when running a technical interview is not "can they code a bubble sorting algorithm in ten lines of Erlang", but "do they write code the same way we do, and if not, could they?"It's our workflow that keeps things running smoothly, and even if someone has a better idea, they need to bring the rest of the team along with them (inc. me) - we have no room for 'outsiders'.
We use git, and git-flow (albeit loosely); we review each others code using pull requests (albeit through BitBucket, not Github); we (by which I mean I) like verbose comments in code; we lint occasionally, but still argue about hanging parentheses. And so on.
When someone joins the team, the first thing they will need to do is clone the main source repo, get it running, get the tests running, and then get stuck in.
And so we've decided to run our technical tests through our public repos on Github. We're going to post various issues that need fixing / amending, and people can apply by submitting a patch, via pull request. These are all projects that we've open sourced as we think people will benefit from - and none of the issues are fixing our (YJ) live issues - they're "just a bit of fun" as Rob Brydon might say - but they do give us a good idea of whether someone would fit within our workflow. They need to write code, comments and tests, get a Django app running locally, and understand git-flow.
The first one is here - https://github.com/yunojuno/django-trello-webhooks/issues/2
Let us know what you think.