Live data from Hacker News

Ask HN: Should we change the way we do software interviews? What's stopping us?

hxngsun.wordpress.com

91–96 of 96 posts

Re: Ask HN: Should we change the way we do software interviews? What's stopping us?

#91
post #58

I'm getting a bit frustrated with the talk about interviews, as we repeat the basic message every now and then, but nothing changes. I feel we all agree that the current status quo is not good, but so far there has not been any good alternative: - Whiteboards are unnatural. Besides, you don't want to check their knowledge of university-grade algorithms or data structures. - Problems to take home are an artificial set…

> - Not doing any coding opens you up for people who can talk, but not code. I think candidates should definitely code at least fizz buzz or something as a sanity check. It probably shouldn't take more than 10 minutes. > - Problems to take home are an artificial setting How do you feel about potential solutions I have mentioned in the post, e.g. exposing the candidate to a project during the on-site for 3 or 4 hours?…

> How do you feel about potential solutions I have mentioned in the post, e.g. exposing the candidate to a project during the on-site for 3 or 4 hours?

It's certainly another interesting idea, but from the top of my head, I find several drawbacks: The first is NDAs, as not all code may be exposed to non-employees. Secondly, it will disrupt your team for a bit, because at least one developer should be available at all times and can't really join discussions or go into deep focus time. Finally, and most importantly, I think it's impossible for such an interview to have internal consistency: Every candidate will probably solve a different problem (or do you keep a bug open just for interviews?) in a very different social situation. If you're more the nervous type, you suddenly have a whole room full of full-blown developers see you sweat. Internal consistency, however, is one of the most important themes in interviews for me. Everyone deservers teh same chance.

> Paying every candidate is an expense, but is it less expensive than hiring the wrong candidate and then needing to fire them? It seems like other comments here have already pointed out that they pay something like 160k annualized salary hourly rate, which seems pretty reasonable.

But is it less expensive than other methods of interviewing? If a classic whiteboard has a slightly worse chance of hiring the wrong person, but has no additional cost, it might still be better, all in all. Additionally, the expense depends on how many you interview for a given position (is there a filter interview beforehand or do you invite every reasonable resume?). A better idea that we sometimes use it to hire uncertain, but hopeful candidates for a paid internship. If they're good, the get a full contract; if not, we haven't lost much. Also, it's an easier decision after several weeks than after four hours. However, we can't do this for everyone.

Re: Ask HN: Should we change the way we do software interviews? What's stopping us?

#92
I've thought a lot about this (and I'm sure others have to); I think candidates generally fall in two buckets:

1. Can code:

    a. Gifted: 
These have a natural talent for coding and can crank out code at the drop of a hat

    b. Persistent: 
Have moderate-good talent for coding, they make up the gap with gifted coders with sheer persistence and relentless pursuit for making themselves better

2. Cannot code/haven't coded in a long time

How can you test for coding? In my view it's certainly not some academic question or the in-vogue programming interviews book. This is clearly proven to be red herring. Also at least in the bay area, there are set questions that FANG and other companies have which are shared all over the internet and amongst friends who work there. So an interview becomes a casting process for a role, where the script is the questions you have "rehearsed". This is an absolute facade and needs to stop!

I ask simple programming questions and look for "naturalness" in the way they answer and talk through the solutions. No complicated brain teasers or the smug "look at me, I know this obscure/complicated algorithm invented before I was born" questions.

Coding is one facet, the other one is design. No matter how good a coder you are if you have bad design skills it doesn't matter. How do you test for design?

1. Resume experience: Talk through technical issues/challenges, pros/cons etc. of projects they've done before

2. A simple-moderate design question: If someone lists distributed systems as one of their skills, ask them a question on it. A decent amount of determination can be made about a candidate they way he/she answers.

I'm refining my process after each interview I take and would love feedback.

Re: Ask HN: Should we change the way we do software interviews? What's stopping us?

#93

I've thought a lot about this (and I'm sure others have to); I think candidates generally fall in two buckets: 1. Can code: a. Gifted: These have a natural talent for coding and can crank out code at the drop of a hat b. Persistent: Have moderate-good talent for coding, they make up the gap with gifted coders with sheer persistence and relentless pursuit for making themselves better 2. Cannot code/haven't coded in a…

I create a sample project based on real world coding problems we face everyday. The actual class is a skeleton with non working methods and comments describing what the methods should do.

I then have another test class with simple failing unit tests. They have to write the code to make the tests pass.

Then I give them more complicated failing unit tests that they also have to make pass without causing the first set of test fail.

We do pair coding and they can ask me any business question they have if they don't understand a requirement.

They can use Google if they need to during coding.

Re: Ask HN: Should we change the way we do software interviews? What's stopping us?

#94

I've thought a lot about this (and I'm sure others have to); I think candidates generally fall in two buckets: 1. Can code: a. Gifted: These have a natural talent for coding and can crank out code at the drop of a hat b. Persistent: Have moderate-good talent for coding, they make up the gap with gifted coders with sheer persistence and relentless pursuit for making themselves better 2. Cannot code/haven't coded in a…

I create a sample project based on real world coding problems we face everyday. The actual class is a skeleton with non working methods and comments describing what the methods should do. I then have another test class with simple failing unit tests. They have to write the code to make the tests pass. Then I give them more complicated failing unit tests that they also have to make pass without causing the first set o…

Thanks, that sounds like a good way to screen someone.

Re: Ask HN: Should we change the way we do software interviews? What's stopping us?

#95
post #91

Earlier quoted context omitted.

> - Not doing any coding opens you up for people who can talk, but not code. I think candidates should definitely code at least fizz buzz or something as a sanity check. It probably shouldn't take more than 10 minutes. > - Problems to take home are an artificial setting How do you feel about potential solutions I have mentioned in the post, e.g. exposing the candidate to a project during the on-site for 3 or 4 hours?…

> How do you feel about potential solutions I have mentioned in the post, e.g. exposing the candidate to a project during the on-site for 3 or 4 hours? It's certainly another interesting idea, but from the top of my head, I find several drawbacks: The first is NDAs, as not all code may be exposed to non-employees. Secondly, it will disrupt your team for a bit, because at least one developer should be available at all…

[deleted]

Re: Ask HN: Should we change the way we do software interviews? What's stopping us?

#96
post #91

Earlier quoted context omitted.

> - Not doing any coding opens you up for people who can talk, but not code. I think candidates should definitely code at least fizz buzz or something as a sanity check. It probably shouldn't take more than 10 minutes. > - Problems to take home are an artificial setting How do you feel about potential solutions I have mentioned in the post, e.g. exposing the candidate to a project during the on-site for 3 or 4 hours?…

> How do you feel about potential solutions I have mentioned in the post, e.g. exposing the candidate to a project during the on-site for 3 or 4 hours? It's certainly another interesting idea, but from the top of my head, I find several drawbacks: The first is NDAs, as not all code may be exposed to non-employees. Secondly, it will disrupt your team for a bit, because at least one developer should be available at all…

> But is it less expensive than other methods of interviewing?

I'm going to assume you are including the costs of firing people as part of "interviewing" after they have been hired and found to be a bad fit.

I'll take a stab at this. 160k annualized per hour is about 77 dollars an hour, if we're assuming 260 work days a year and 8 hours of work a day.

$77 * 4 hours of a day = $308 additional cost per interview. I'm going to assume you're already doing some panel interviews with at least 2 people, so I won't include their cost in there. And there's potential savings if we only have 3 people interviewing for the 4 hours instead of 4 or more.

Let's say I am trying to hire for 20 positions, and I am willing to interview n=15 times per position.

20 hires * (15 interviews * $308 per interview) = $92400 additional cost, whether I get 0 or 16 successful hires out of this process.

If we think about the cost of onboarding someone with 3 other employees who are getting paid about the same over a period of 3 months:

308 * 3 employees helping with onboarding * 65 work days * 8 hours * 10% of time spent onboarding = $48048 cost of onboarding 1 employee

Let's define a bad hire as someone who contributed no value and we'll treat the salary we paid them up until the point we fired them as a sunk cost. It takes maybe 4 months (260 * 4/12 = ~87 work days) to figure out that someone should be fired if it's not super obvious?

Let's say we would have normally only hired half of our target candidates (10 out 20). I'll also be conservative and say the new process reduces the number of bad hires by 10%. So assuming 1/10 of our actual hires was bad:

~87 work days * $308 per day + $48048 cost of onboarding 1 employee + ~$5000 for health benefits = $79844 cost of firing 1 person, not including the cost of other employee benefits, the effect on morale, etc.

So here you're adding a cost of about $12556 dollars. I think the cost of firing someone is actually a lot higher than what I have calculated here, though I don't know what the actual figures are for that.

But I feel that if candidates at least enjoy the process more (which based on this thread, it seems like a lot of people here would), then isn't that a drop in the bucket in the company's bottom line for something pretty valuable?

There's obviously a lot of other intangibles at play here and we can model this all sorts of ways. Let me know if I've made some egregious error.

Post reply on HN