General process of getting hired includes interview with, probably, some time dedicated to assessing technical skills of pretender. It usually starts with talks about past projects (if any) and / or bulk of technical questions.
Sometimes (rarely enough) I'm proposed to try do some "offline test project" - like write such and such server, collecting such and such incoming data, displaying them so and so etc.
What is your experience and your opinion? How much time have you happened to spend on test projects? Were any projects really interesting for you?
For me usually such project may take from 4 to 20 hours and could be done in a few days or couple of weeks. One of the toughest was in Haskell (just because of the language) and perhaps another very long ago, when I first tried to apply for Java developer job.
I know some people frown upon this approach, regarding this as "unpaid job" which no one should be willing to do.
On contrary, I myself am usually eager to get such project. So I often ask for it (though they are still rare). Surely it will take some time - but there are advantages (in my opinion):
- it usually gives better understanding about what technologies people use on their project and what task they solve
- for me "success rate" after submitting such projects is very high, about 80% (compared to about 25% after normal interviews).
As for "unpaid job", being experienced myself, I know that for interviewer usually it is easier to do stuff him(her)self rather than explain to other and then fix other's clumsy errors etc. So it is rather "free exercise", never "free job". Just an opportunity to learn.