A couple of weeks ago I posted to jobs.perl.org again. A few things I quickly remembered.
My posting says "PDF or Text formats only!", but yet I get Word documents. I know it's been getting easier and easier again to find interesting work over the last year or two, but come on. If you don't care to read what I wrote, I am not going to care what you wrote either.
I ask for code samples and anyone reasonably interested sends them. But it's incredibly hard to get something useful out of. I am not really sure what to do about it, because it's by far the best way to evaluate someone without an actual interview. For relatively short-term telecommuting it's often the only practical way.
The code samples are rarely interesting. Either they are too brain-dead simple or they are too complex to scan in a couple of minutes. Either way, it takes a relatively large amount of effort to review.
I have a hard time discarding the candidates who sent bad code. "But their resume looked interesting".
And I keep thinking what would I send if I had to send a code sample? It's hard1.
So again and again I find myself looking for tests included in the code sample. I start looking because it'd be a sign of good coding practices, but what it really gives me is a much faster way to evaluate the code.
I love tests in the code samples. They give all sorts of benefits to the resume/candidate reviewer. For instance
- Tests lets me figure out quickly what the rest of the code is supposed to do.
- Tests demonstrate the APIs. perltidy can fix your messy indentation, but you have to know what you are doing to make the interfaces to your code decent.
- Tests are short and to the point. Even in Perl code there's always a fair amount of setup and teardown noise. In tests all that is pared down to the essentials.
- Code = Not particularly useful. Code + Tests = Useful.
How do you like to get code samples? How do you evaluate them?
1 The 20 line Geo::Coder::Yahoo? An early version of qpsmtpd? (The versions from the last few years wouldn't really work as a code sample unless you wanted to hire a particular dozen of people to write a mail server in Perl :-) ) Maybe I'd send the code for some of the perl.org things I've made, but would I want to be judged on that? Those things are surely not my finest work. The more interesting work is often encumbered by being owned by $client or $employer and by having lots of "yes, they really wanted it do that" things.