What do you think about giving engineers a small software assignment that they complete at home and send over before scheduling an interview. This would really help an employer save both their and the candidates time by ruling them out if their coding skills aren't good.
Would software engineers be willing to do this? Or would it turn away most candidates?
I've used this practice with success. It's not that uncommon and most software engineers are willing to do it. To get the most out of a take-some software assignment, consider making it:
The goal of this software assignment is:
Short tests (1-2 hours) are a nice way to test junior positions not senior levels. They usually tend to be unrealistic to the true potential of someone for more advanced roles and it is hard to get an idea on how someone performs in the long-term.
Short tests will not tell you how developers abstract, how they build with scalability and modularity in mind, how they organize and distribute 10 thousand lines of code... Basically, how your software is going to look in 6 months, which is what you should be concerned about.
On the other hand you don't want to give jobseekers a very long test because they will run away, so how do you test their long-term performance?
If you can't get enough information from those places then focus the test not on coding but on advanced questions. Examples: software design patterns, advanced gotchas of a programming language (closures, inheritance, specificity, scope, casting...), how would they scale X, how would they organize their folders and files for that project, etc.
Excerpts taken from the full article which you might find helpful: How to Hire a Web Developer