10

My organization has been looking for software developers and developer/managers for quite a while now. We have outsourced HR searching and screening for us and we've posted on craigslist in the area we are searching.

I do the technical interview. The technical requirements are ASP.NET/C#/SQL and the interviewees that make it through the initial filter look very promising on paper, but over 90% of them do not get it... There are people with 10+ years of experience and masters degrees in comp sci that cannot answer simple questions...

  • describe the collections primitives/classes in your language (of choice when they don't know c#) and when each might be appropriately used
  • what's an interface and why are they important?
  • what's normalization and why would you normalize (and why would you denormalize)?

So, to those who can answer these questions without looking anything up or even giving a second thought - where do you post your resume?

Please don't actually answer the questions or ask for clarifications. We've got a small shop and I want to create a strong team with no dead weight. The funny thing is that one of the hires we've made was an auto mechanic with no college degree and less than 4 years of development experience. He got all the questions right, had a great attitude. I had to reach pretty deep to find the question that made him say - I don't know. BTW - this is a trick some of us interviewers use to make sure we don't have a BSer. There is so much to know in our field, even if we are highly specialized, that there will always be things we don't know. Over 80% of people try to BS when they don't know, versus admitting that they don't know...

Resolved:

It doesn't look like there is an answer to this question. It's somewhat comforting to know that we are not alone, it's a bit disheartening that the pool of talent available is not what one would expect... I wonder if MSFT/GOOG/AMZN snap up all the good young ones.

As a sidenote - we found the talent from outsourcing to other countries (India/Ukraine) is comparable with the U.S. in that you get what you pay for... I've rewritten 2 applications that have been outsourced to India. The programming was cheap, but the work that we paid for was comparable to what I imagine an evil genie would give you. They never questioned specs or asked for clarification and gave you exactly what was specified - especially when it was wrong. The strong developers from overseas were more expensive than local developers when you factor in the fact that you need a fulltime P.M. to manage the time/language/culture differentials.

I'd like to thank everyone for sharing their experiences.

5 accepted

We get a bunch of people who can't answer simple questions where I am as well. E.g. "What is the asp.net page lifecycle?"

It's almost depressing.

If you're not doing so already, I'd add a simple question that required them to think up an algorithmic solution on the spot, kind of like the one in this question:

http://stackoverflow.com/questions/344901/

As for my resume... Well, I'm trying to make sure that I don't need to have it out there right now... I don't want to be looking for new contracts in a recession!

EDIT: To clarify, because I don't want to sound elitist... The people coming in and failing to answer these questions are applying for mid-level to senior positions and claiming anything from 3-7 years of relevant experience. To see them struggle to answer simple foundation level questions about their supposed area of expertise is an almost embarrassing experience.

5

Don't filter your applicants through HR or Recruiters. They don't know crap about what makes a good developer and will actually end up filtering out the good ones. All they do is look for a set of keywords to match, and they even fail at that task -- I can't count the number of times I've had to explain that MySQL is NOT Microsoft SQL experience...

So my advice, as a developer who was recently looking for work, is to post ads and do screening yourself. You can find out alot from a phone interview before you have to spend the time to bring them in for an in-person talk. I used Craigslist, Dice, Monster, HotJobs, python.org and Joel's software jobs page to look.

3

The great, and often good developers do not have their resumes posted ... most are happily employed. That is what makes this process most difficult.

You have to find these developers ... they hang out at the universities, local user groups, and online communities.

My experience has been that most job boards will get you mediocre developers, the ones that can't even answer the simplest question.

3

I was just in this position -- we were looking for a Perl coder, and I was getting people with 5+ years of Perl experience on their resume that were flustered by the "name the three basic types of Perl variables" question. (Literally, one guy said "uhhhh... static, dynamic, and the other one". FAIL! kthxbye...)

I really don't think there's anything special to be done, other than:

  • Phone screen ruthlessly. You almost have to go into every one looking to eliminate people as quickly as possible (and really, it's not in anybody's interest to drag it out once it's clear what the outcome is).
  • Network network network -- because as Joel's piece said, the good ones are rarely looking for jobs and when they are, it's by talking to their friends and contacts, not by posting resumes online.
  • Screen and hire talent in excess of your immediate need. Given how much of a PITA it is to find and hire good people, the best bet is to just keep up a constant low level of searching all the time.

    Not much help with your immediate problem, I know.

  • 2

    I couldn't answer all the questions without looking a bit... but

    • computerjobs.com
    • dice.com
    • monster.com
    2

    It is surprisingly difficult to fill positions in our market right now. It has not been for lack of applicants, but what you are seeing in a lack of quality applicants. After almost ten months, we filled the open position that we had. Here are some "lessons learned":

    • Stay Involved - Do not assume that Human Resources is doing their job in screening resumes. You should take a first look at all resumes for the position to determine if they are worth screening.
    • Perform a Legitimate Screening - While questions about page lifecycle are staple questions, make sure to create screening questions built around your application architecture and the daily problems you encounter.
    • Do Not Hesitate - This was the number one problem I had. By the time the resumes "trickled down" to me for review, the most qualified candidates had already found positions. Be involved early and often.
    • Be Your Own Recruiter - If you actively participate in a community - a SIG, for example, find out if it is okay to network within that group. If you are looking to fill a position on your own behalf, chances are that you can make good progress. Still, don't join a SIG with the intent of recruiting - bad etiquette.
    • Network. LinkedIn is a great site. The larger your network, the more chances are that you might have a 2nd or 3rd level contact that is looking for a career change.

    My resume is not currently active, but when it is, I put it on my own site, and reference that wherever I post my resume to, as well. Craigslist has actually gotten me the most recognition for my resume when I was looking for work.

    1

    Sir, You're hitting the nail on the head regarding the entire tech community. Microsoft has done a lot of work to help businesses recognize able-bodied developers through testing and certification. The problem with that, as you've seen with your mechanic-developer, is that good developers usually don't fit the test/cert model. Businesses want clear metrics for cost/benefit of people on paper, but developers largely can't be quantified on paper.

    The short answer is that development is still more of an art, than a science. No amount of schooling can create a painter. Likewise, no amount of schooling can make a developer.

    Look to previous work the developer has done in the community. People who are out there, doing stuff in local circles, are usually the folks who can back it up. Those are the people that care, and because they care, they're most likely better.

    1

    My resume was never posted anywhere other than my personal site and I just took the link to it down a couple months ago because all it was getting was mail from recruiters looking to fill full-time positions, most of which were, at best, only tangentially related to my skills or interests.

    I'm quite happily self-employed as a freelancer, thankyouverymuch, so I now tend to operate based on a portfolio of completed projects and client testimonials while my resume largely just gathers (virtual) dust.

    1

    Short answer: I don't - I like my job and am not looking to move.

    Long answer: I have an account on notchup.com that is reasonably up to date. You can pay me to come interview with you if you want, though, like I said, I like my job, and am not looking to move. I also have posted my resume on my website at various points, though I'm not sure it's actually linked from the homepage (or anywhere else) right now.

    It's really, really hard to find good people. At Ooyala, we've relied mainly on insanely good recruiters and personal networking to get most of the people we've ended up hiring.

    1

    For what it's worth, I think this was a good question, at least in the "feedback repository" sense, if not in the classic SO "specific programming question" sense. My company is in the same position, going through the same process, and having roughly the same experience. I'm considering applying some of the techniques discussed in our company (such as getting the "raw" resume feed and doing ruthless phone screening), so this question was helpful for me.

    1

    (UK centric)

    I'm actually going through the mill of being a jobseeker right now, and it's just awful. I had forgotten how much so.

    Being in full-time employment with a bitch of a commute as it is I have precious little time to do my own research and jobhunting really. I try, but sometimes I just have to not be staring depressed in front of the laptop.

    The one place not inundated with agency postings is the newspapers but I'm at a point in my career where I'm not yet hitting the senior architect, CTO kind of postings nor the graduate/trainee ones typical of the broadsheets.

    So I'm reduced to monster (which is spam heavy) and jobsearch (less so, but...) where you suffer the pros and cons of the agent horde - they can be very proactive, but of course they can be misleading lying fools and they'll drop you as soon as you miss a phone call. And they will insist on phoning at all hours of your work day.

    I've had to let a number of great contracting opportunities because of my notice period, and in a normal time I'd have quit ages ago and been able to jump on them. Bloody credit crunch.

    0

    This probably isn't your issue, but maybe you should be careful with your wording.

    I know nothing about databases, but I've heard the term, "database normalization" thrown around, so I'm assuming that's what you're talking about. However, I just finished reading up on IEEE floating point number normalization (exam on Monday!), and could have easily answered your question with regard to that. Or I could have just assumed you meant dividing a set of numbers by the largest number in the set.

    As for the classes question, I don't think it makes sense to test someone on something they could easily look up if they needed to know about it. Though, I suppose it's better than asking questions about crossing bridges in the dark with only one flashlight...

    0

    I think you really need to read Spolsky's posts on finding good/great programmers. The gist of it is that the best really never need to find a job. There is no magic place where all the best and the brightest post their resume. Why, because they don't need to. Generally, the best are in a place where they don't want to leave. They get to pick any job they want. That's the perk of being the best. The question you have to ask yourself is, why haven't you found any? What do you offer that is attractive?

    As far as people who you've met with 10+ years experience, that don't get it, you have to ask yourself, "What do they know that I don't?" (I will admit, some people just don't get it you're right and you'll run into them). I can think of people who probably wouldn't be able to answer all of those questions, but I would still hire them in a heart beat. Why, because they can think circles around everyone else. It goes back to what tech companies did in the 90's. They hired programmers with masters degrees in Philosophy or some other non-cs related discipline. You can teach a smart person what normalization is. You can't teach someone to be smart.

    0

    go to selectcandidates.com and send your resume

    0

    Have you tried StackOverflow itself?

    careers.stackoverflow.com?

    Or finding relevant tags, clicking "stats" and browsing profiles of the top answerers? Those guys are smart and probably available (not too busy to answer questions on SO anyway).

    -6

    Here's mine, though we'd have to do "off site" and we're not really interested in "jobs"...