Does Code Recruiting Work?
I was catching up on some of my blog reading this weekend and actually journeyed over to David Hayden's excellent blog (more on that later) in a browser window - as opposed to my normal reading in the excellent Windows Live Mail Beta. In any case, I noticed a menu item for Jobs.CodeBetter.com out of curiousity more than anything else. On that site a listing caught my eye for a Software Developer at a company called Lightedge. The posting completely blew me away - not because of the benefits that it may have mentioned or the pay or any details really about the company itself - but more because of the content of the job description:
using Microsoft.Tools;
using Fantastic.People;
namespace Lightedge
{
public class SoftwareTeam
{
public bool IsGrowing = true;
public bool IsDynamic = true;
public void AddDeveloper(Developer you)
{
if( ValidateSkills( you.Skillset) &&
( Attitude.Passionate == you.Attitude ) )
{
TeamContribution++;
you.Reward++;
}
}
private bool ValidateSkills(Skillset skillset)
{
int PrimarySkillScore, NiceToHaveSkillScore;
if ( 3 <= skillset.CSharpDevExperience)
PrimarySkillScore++;
if ( skillset.HasASPDevExperience )
PrimarySkillScore++;
if ( skillset.WritesUnitTests )
PrimarySkillScore++;
if ( skillset.Refactors )
PrimarySkillScore++;
if ( skillset.ContinuouslyIntegrates )
PrimarySkillScore++;
if ( skillset.HasSQLDevExperience )
NiceToHaveSkillScore++;
if ( skillset.KnowsAboutXaml )
NiceToHaveSkillScore++;
if ( skillset.HasOpenGLExperience )
NiceToHaveSkillScore++;
if ( skillset.HasDesignedWebservices )
NiceToHaveSkillScore++;
return ( ( 4 < PrimarySkillScore ) &&
( 2 <= NiceToHaveSkillScore ) );
}
public void WantToJoin()
{
string yourCode = PickACodingChallenge();
SendCV(yourCode, "hr@lightedge.co.za");
}
private string PickACodingChallenge()
{
return DateTimeChallenge() || ChequeChallenge();
}
private string DateTimeChallenge()
{
string givenDateTime = "01-04-2006 13:45:22";
string givenDateFormat = "dd-mm-yyyy hh:mm:ss";
return "1st April 2007, Quarter-To-Two";
}
private string ChequeChallenge()
{
string givenNumber = "1234.45";
return "One Thousand Two Hundred and Thirty Four Rands and
Fourty-Five Cents only";
}
}
}
This is the first time that I had ever seen something like this in a Job Description and I think it's revolutionary! What you see here is a C# class that tells you everything you want to know about the job - but makes you work a little bit for it. It lists what required skills they want potential employees to have, information about the company, the compensation and even tells you how to apply. I applaud their efforts.
Most of all, though, it made me think - which is something that no company's job description has really made me do before. Particularly, the last three methods - PickACodingChallenge, DateTimeChallenge and ChequeChallenge. As soon as I saw those items, I couldn't help but think about the potential coding solutions to the challenges they mentioned.
In-fact, I thought about them so much that I simply couldn't rest until I had coded the solutions for both of them (yes, in C#). I think that was the intention, though. I think that the people they want to work for them will have that type of mindset. And no, I didn't actually send them an e-mail with my solutions (not interested in moving to South Africa) - but I still applaud their efforts. Their grasp of what will inspire developers to apply to their company based upon the merit of the Job Description alone is right on the money. I can only hope that other companies follow suit.
By the way, after coding both solutions, I ran a quick google search and found a great solution to the ChequeChallenge posted at Code Project. It was interesting to company my solution (which implemented the ICustomFormatter interface and String.Format) versus other solutions. From a performance perspective, the home-grown solution that I whipped up in a few minutes was a teeny bit slower (<100 ticks) than the solution on Code Project. It's also interesting to note that the solution on Code Project actually came from this solution on the Microsoft Support Site and initially applied to Microsoft Access and VBA.
In any case, it was a stimulating little exercise. I hesitate to post the actual solutions that I coded because of those folks that would do the Google search prior to actually attempting the solutions themselves. If you'd like to see them, feel free to send me an e-mail at greg at samurai programmer dot com and I'll send them over.
Technorati Tags:
Recruiting,
.NET,
C#