On Hiring for Technology Positions

Having recently been involved in hiring processes from creating professional job description documents to interviewing lot of candidates of various experience levels, I have had a few learnings.

It can be hard to reason how it could workout in the marcro-economic sense, and yet everyone could be saying the truth. But Joel in typical eloquence, nails how!

Numerically, great people are pretty rare, and they’re never on the job market, while incompetent people, even though they are just as rare, apply to thousands of jobs throughout their career. So now, Sparky, back to that big pile of resumes you got off of Craigslist. Is it any surprise that most of them are people you don’t want to hire?

So, next time you see a company that claims to be superior because they hire only the top percentile of the applied candidates, know that they probably just aren’t doing a good job screening. In the Indian situation, with so much more people around, this problems becomes an order of magnitude harder.

That brings me to my next point.

Joel’s decade old solution of a FizzBuzz test to this problem still works. And works surprisingly well to filter out a significant portion of the applied candidates.

Remember this is only screening, you don’t want false negatives either. Infact you dont even need to change the problem statement. Just ask the same problem as it is. It is a very simple 5 minute 3 conditional program, and by now most of the programmers that read anything on the internet have come across. Yet it still works and Atwood reasons very well, why:

The whole point of the original article was to think about why we have to ask people to write FizzBuzz. The mechanical part of writing and solving FizzBuzz, however cleverly, is irrelevant. Any programmer who cares enough to read programming blogs is already far beyond such a simple problem. FizzBuzz isn’t meant for us. It’s the ones we can’t reach — the programmers who don’t read anything — that we’re forced to give the FizzBuzz test to.

That’s one reason, and in the Indian scenario, you also encounter senior folks that are some how so senior, who havent been developing for years and can’t get a 3 line conditional right.

HackerankX is excellent in such a screening mechanism and like they rightly claim, the platform saves tens of precious developer hours for every rejected candidate in this process. No wonder that Facebook, Amazon, Airbnb and a lot of companies are now using it.

One important side effect but a great benefit of this is that, you tend to set an impression that you are a software development position, even though it may be a senior one.

Where’s your Github, yo?

Brandon Weiss sparked a debate when he mentioned Github is your resume now

If you’re a programmer, the days of sending a CV when you apply for a job are quickly coming to an end, if they haven’t already. No one really wants to see your poorly formatted, badly designed Microsoft Word template filled with irrelevant information you’ve carefully curated to make you look like the best programmer ever, least of all me. I just want to see what you’ve built and how you built it, and the best way to see that is by looking at your GitHub account.

Yes, we want to see what you have created. He goes on to suggest one curate his Github to look nice. While that may be a stretch, at least in the Indian scenario, as long as you have an history of contribution to some projects, you are good.

Well if not Github, your questions and answers on Stackoverflow, blog posts, books, talks would do too.

Spare me the puzzles already:

Some interviewers it seems, use the opportunity of an interview, to show how smart they are, and ask puzzles as questions.

Google for a while was famously doing it. The jury is in. In a recent analysis, the VP of People operations, at Google found that there is absolutely no correlation between the performance in an interview with the performance in the job.

We looked at tens of thousands of interviews, and everyone who had done the interviews and what they scored the candidate, and how that person ultimately performed in their job. We found zero relationship.

says Laszlo Bock, SVP of People at Google.

The mindset for taking the Interviews:

Screen candidates all you want; but when you have someone in front of you, be friendly. Have a conversation.

If the interviewer’s attitude is to find shortcomings and creating a hostile environment; everyone has shortcomings and you are never going to hire someone.

Hire people based on their future potential, not only on their past work, as Jason Fried points out.

There are very few perfect people. Instead there’s a lot of future perfect people. People who have the potential to become the perfect person in the perfect role if just given the right opportunity.

The best mindset to have during the interview is to provide an opportunity be convinced that the candidate is indeed awesome (because he has made it this far). Eric Rose documents this very well:

My goal during an interview is be convinced that the candidate is awesome, and I act as a facilitator to help him or her convince me. The best sort of interview is the sort I had with you. I saw an interesting project on your resume (your web-based SNES emulator) and just let you expound on it for half an hour, asking probing questions here and there. In the course of that conversation, you made clear that you understood hash tables, client/server design, and even hardware architecture. That was really ideal.

Skills can be developed; behavior not so much.

Last but not the least, every interview at the end of the day is a subjective evalutation, however objective you might want it to be and try to make it. Evaluate for genuine people characteristics like Empathy, Friendliness, Willingness to work & learn, Levelheaded-ness and someone you’d want to work with. Specific skills like the programming language or the framework can be learnt rather easily compared to changing ones behavior and perspective.

You know what’s harder to teach than programming? Empathy. ~Ashedryden

There are really 2 important things one needs to know about a person during hiring.

  • Is the candidate capable enough.
  • Is the candidate motivated enough.

Since the point of Github came up with a rather long discussion over at proggit, it merits a clarification of my perspective: One’s Github, Stackoverflow etc. really prove both the points above easily and makes it that much more simpler and easier to evaluate.

Many of these are clearly prevelant wisdom to those of us in the tech and read a lot of posts in our own echo-chamber. For those, hopefully this post has been a good reminder of these things they already know and for other, this would help to have a right perspective.

Originally published at web.archive.org.

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.