I’ve been involved in a recruiting effort for the last 5-6 weeks and I have to admit that I’m starting to get discouraged.

I don’t want to rant about how many subpar developers exists out there because those blog posts always annoy me and strike me as pathetically egotistical.

Besides, debating whether the skills of the average developer are good or bad seems like a moot point to me. Even if I rate the overall average as positive I would still want to work with people from the right side of the bell curve (a la Joel’s Smart and Gets Things Done philosophy). Besides getting more work done, they represent the greatest learning opportunity for me personally (yes I’m a wee bit selfish in that regard).

However, that is not an easy thing to do as evidenced by my need to create the Rejectomizer 2000.

Thus we invested some time and effort into crafting a good job description that would speak directly to the type of people we’re looking for.

Here’s an excerpt.

Who you are

You are a combat-hardened, grizzled C# veteran with years of coding experience under your belt. You’ve been using the .NET framework since its inception and know the ins-and-outs of threading, reflection, generics, and lambdas. You’ve done a fair share of ASP.NET and know how to use AJAX and Javascript frameworks like JQuery to good advantage. You’re interested in the possibility of eliminating boiler-plate SQL code with a good Object Relational Mapper and open to improving the design and reliability of your code through Test-Driven Development.

You are NOT the type of developer to just get things working without knowing exactly how and why they work. And while you’ve put out some pretty advanced, complex code, you’ve come to the realization that good code is simple code. If the developer sitting next to you can’t open your code and pick up where you’ve left off, your code isn’t that great after all.

While your code might be solid and you know a ton of stuff, you are constantly learning. You read technical blogs and books and try to stay on top of relevant technologies and patterns.

Aside from your technical ability, you pride yourself on getting things done. You’ve used methodologies and standards with a group of developers and know that sticking to the process helps everyone crank out quality work and get it out the door on time. You have a super-strong attention to detail and you take pride in your work. You’ve mentored junior developers and know when to hold their hand and when to let them beat their head against the wall for a while.

Finally, you’re a natural leader. You lead by example and set a high standard. You know when to be firm and draw the line, and when to solicit contributions and feedback from the group. You give clear direction and assign accountability, and everyone on your team feels like they’re doing their part.

Are we missing anything?

Oh, and if you happen to live in the Kansas City area (not accepting telecommuters at the present time) and are looking for a job at a cool company, shoot me an email

Popularity: 9% [?]