How Do You Attract Great Developers through a Job Ad?

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% [?]

16 Comments so far

  1. bahbar on July 29th, 2009

    It might be just me, but with that kind of description, you’ll only get applications from people who don’t think that they need to match the description.
    How many people do you think started to code on .Net from its inception (hum… 7 years ago) ? How does that make them a better fit ?
    Add to that that many who started coding to it would want to progress in their career. Even more if they’re natural leaders.

    I’m sure there are some of those magic guys… I don’t think I ever met one.

  2. Joseph Gutierrez on July 29th, 2009

    I second bahbar.

    Try this:

    If you answer yes to the following, you and I need to talk.

    Are you a combat hardened TDD coder?

    Do you know the ins-and-outs of concurrency, reflection, generics, and closures?

    Do you have thorough understanding of web frameworks; ASP.NET, AJAX, and JQuery a plus?

    Have you used a Continuous Integration process to develop software?

    As I said, if yes to the above let’s talk.

  3. Dewayne Christensen on July 29th, 2009

    >Are we missing anything?

    Yep. The same thing every headhunter ad I’ve read for the past 6 months is missing.

    “Why should I want to work for you?”

  4. J.D. Mullin on July 29th, 2009

    I agree with bahbar as well. Lots of good developers are modest and don’t think they are that great (or at least not as great as you are asking them to be). You are inviting an egotistical know it all to interview, who likely thinks he knows everything. While it is hard as an engineer to pull away from the details, it might be best to just list you would like X years of C# and .NET experience. Once you’ve whittled down your applicants and phone screened, then you can determine which one is the C# wiz.

  5. Russell Ball on July 29th, 2009

    @bahbar – That’s a good point and a potential flaw in the ad that we should probably address.

    We actually have made an offer to someone with no .NET experience for a jr level position because he was smart and passionate enough that we knew he would be able to pick up C# in a short period of time.

    I would definitely seriously consider someone with minimal C# experience for a senior level developer position, but I think it would be a harder sell for this lead position because our processes involve extensive review and mentoring for this job and we want someone who was comfortable in the idioms of the language.

    However, if we found someone good enough then I agree that language shouldn’t be a real show stopper and we probably need to indicate that in the job description.

  6. Russell Ball on July 29th, 2009

    @Dewayne

    We actually do have “What you’ll get from us” section in the job add that addresses that. I just didn’t include it because I wanted to focus on the traits of the developer.

    It says the following:

    Here are the perks you’ll get for working for us:

    • We’ll pay you (and you’ll get insurance and employer-matched 401k and stuff).
    • You’ll be able to wear pretty much anything you want, but definitely no halter-tops, muscle shirts or short-shorts.
    • We’ll give you free drinks, free snacks, free parking, and even free advice from time to time.
    • One of the dudes here does a daily Starbucks run, so you can get on that if you’re into it.
    • If you get hired in time, you can come to our summer BBQ blow-out, and eat some of the best smoked ribs and pulled pork in town.

    There’s also a “Who We Are” section with the following:

    StoreFinancial is a young, fast-paced company that’s got a startup feel without the startup risk. We write software that you or someone you know has probably used on more than one occasion without even knowing it. Ever bought or used a gift card at a mall or shopping center? If your experience was fast, and “just worked”, that was probably our stuff.

    Our software is mostly server-based code – websites, web services and Windows services; but we also have a couple of desktop apps that connect remotely via SOAP. The core codebase is .NET 1.1 but we’re beginning to migrate the applications to 3.5 and we’re consolidating as much as possible on the web. All of the code is C# – no VB here – and all the data is stored in SQL 2005.

  7. Russell Ball on July 29th, 2009

    @J.D. Mullin – That is definitely a worry of mine. Interviews are intrinsically flawed to begin with and the fact that most talented developers suck at interviewing makes it near impossible. The only luck we’ve had in rescuing a good candidate from a horrible interview is to find some technical issue they are passionate about and then it is suddenly as though a flip has switched and they become animated and articulate.

    What I’d really like to do though is to figure out a better way to get them to interview with us in the first place. Surely there is some language that would catch the eye of even the most shy and humble developer over the usual job ad. I’m just not sure what that is…

  8. J.D. Mullin on July 29th, 2009

    Unfortunately, unless they are moving to a new town or their company is going under or really upsetting them, the really good guys are paid well and aren’t browsing job ads.

    Promoting how cool your company is to work for and how cool your products are in the local press and via social media is probably going to be more productive than a catchy job posting. If you find a catchy job posting that draws in the best talent, even if they are marginally happy where they are now, don’t tell anyone your secret! ;)

  9. Dewayne Christensen on July 29th, 2009

    You can’t really eliminate the chaff from trying to get in the door, even though that’s what the Who You Are is trying to do. Everyone overvalues themselves, otherwise we’d all be on Prozac. (To put it bluntly, stupid people don’t know they’re stupid.)

    You need to focus on adding more wheat to the mix, and wheat is harder to separate from its loaf. It doesn’t NEED to look around, so you have to make it WANT to look around. How can one find out more about life there? Do the employees blog? Where? You also need to work on the “Come Play With Us” (aka Careers) section of your web site. Take a look at Perceptive’s and Garmin’s.

    -

    Oh, and you want bleeding edge talent, but you’re still on 1.1? You might want to just rephrase that little bit along the lines of “we’re currently migrating to 3.5.”

  10. Dewayne Christensen on July 29th, 2009

    Here’s another thought: One of your ads once said something along the lines of “tell us about your best hack.” Have your own guys answer that, and post their answers somewhere.

  11. Russell Ball on July 29th, 2009

    @Dewayne
    Great suggestions. Thanks!

    Particularly good point about the 1.1 stuff. We’ve actually made enough progress since we originally wrote this ad that I definitely feel comfortable rewording that part or even changing it all together. Although to be fair, I can deal with someone not being bleeding edge as they are passionate about learning and thus have a really solid foundation (i.e. they read books about design or do deep dives into particular technologies rather than just being vaguely familiar with a broad range of newer technologies).

  12. Russell Ball on July 29th, 2009

    Not a bad idea.

    I am curious about whether or not you see the ‘tell me your best hack’ question as valuable or not (I was going to write another post on this topic). We actually just dropped that part recently because the flow of candidates dwindled quite a bit and we were nervous that the essay question possibly prevented some people from applying. I’m not entirely sure that we made the right decision, but we were nervous that someone who is only passively looking may not be willing to jump through any hoops until they’ve at least had a phone interview with us and learned more about us. Do you think that was a good call or bad call on our part?

  13. Lee Brandt on July 29th, 2009

    Might be worth mentioning:

    Do you like working with really talented developers?

    You want to learn from them, they want to get the same from you. Great developers always want to work with other great developers.

    Hope that helps some. I feel your pain, findin great Sr. level devs can be tiresome.

    ~Lee

  14. Dewayne Christensen on July 29th, 2009

    I see it as a filtering function, rather than an attractant. I would think it would play well during a phone screen, where it’s oral, so no effort involved.

    Ideally, you want to already be both known and attractive before you even post the opening. Case in point, Fog Creek. I don’t know if Joel bothers posting for his own openings, ‘cuz the people he wants probably aren’t reading job ads, but they read his blog. They know who Fog Creek is. They watched shanselman’s video tour of the office a couple of weeks ago and know what the place looks like.

    You need to promote yourself even when you aren’t hiring, so that people will notice when you are. And if you’re in a position of obscurity, you need to make it easy for people to overcome that. Your web site’s not helping you out there. It’s totally customer focused.

  15. Russell Ball on July 30th, 2009

    @Dewayne – Good points. The Fog Creek approach seems like it is definitely the ideal model when it comes to recruiting. Perhaps we could start by posting the trademark Rick Astley youtube video that’s part of your signature on our site. There’s no way that’s not going to get people’s attention…:-)

  16. Wilton on August 7th, 2009

    You know honestly, this job ad really speaks to me. It even wants to make me move. I know exactly what you are talking about and I even “feel” what you are trying to get out of it. I am everything this job ad speaks about myself, except I don’t know a ton about threading or lambda’s because I haven’t had enough time with them. I especially love the “And while you’ve put out some pretty advanced, complex code, you’ve come to the realization that good code is simple code” as I can tell that someone has thought of the whole “code is art” thing, because even though it is complex it’s broken down in such a way that it’s simple, and just pretty.

    Weirdly, however, I don’t feel like I’m being arrogant because a lot of these traits that you speak about, no one else seems to agree with it. I can’t understand why, but I eventually over a long period of time get buy in from others, it just takes them 6 months to a year before they get it. I don’t push too hard and I know I’m not always right, but I never see the same burning desire to find what is the “best way” (which seems to always be constantly changing) to do something in a lot of other people.

    The other thing I have really had to turn down the volume on is the enthusiasm. See, I love coding, and making things people love to use, and when I see light bulbs go off over people’s heads it just gets me jazzed. Show me a sick UI that people “just make sense” and I’m excited. Show me a new way to refactor something to make it easier to change or test and I’m a happy guy. Other people just seem to be doing their day to day tasks, and I’m again not faulting them, but there are sometimes when a healthy argument on why we should have unit tests for at least some functionality on a legacy application would be a good thing. Other times it’s press time and I get that, and we clear out of the way to get things done but mostly that seems to be the way things done. But give me a reason like “it worked before, just do it the same way” when it would take an extra 1 minute (not kidding) to do it the right way, and I’m left scratching my head. I’d rather stay the extra 5 minutes per day to do it right…

    I suppose I don’t want to ramble so I’ll leave it at that. I think if anything if someone see’s what you’re getting at with this ad you’re going to get what heck of a developer, so I really like it. For me it really sticks out way above the other “Must have 5 years experience with C#” bull crap you get everywhere else.

Leave a reply