Ask HN: Do interviews give higher signal than an online tests like HackerRank's?
It seems like most technical interviews involves asking an algorithms/data structures/programming question and watch the candidate solve the problem. If this is the case, why can't we do the same thing via hackerrank or an automated online assessment test?
I can see a few potential reasons
a) A good interviewer can gauge a lot more in an interview and hence that gives more signal. b) Good interviewers can help candidates who are stuck with small hints and that again helps give more signal than someone stuck on an online assessment test
If there is some signal, how much signal is there in an actual interview?
28 comments
[ 3.1 ms ] story [ 40.9 ms ] threadAlso, to your second point, I can tailor to candidate - i.e., hints for someone struggling or adding layers of complexity.
I'll give you an example:
1) Several weeks ago, an HN user referred me to a defense contractor position.
2) They asked me about three questions:
2a) "Are you more interested in back, front, or full stack?" (I don't care, but I lean toward full stack)
2b) "Do you think you could pass the background check?" (absolutely)
2c) "Why did you leave your last position?" (it was a contract)
I haven't received a reply since then. There was a similar incident with another referral, where the recruiter deemed me unworthy due to a "lack of Java keywords" on my resume.
The interviewing process is messed up at most companies. I did luck out with a contract (not the defense one mentioned above) position, I did pass their behavioral phone screen, behavioral on-site, and technical on-site. I only did well with them, because there were no recruiters nor HR involved in the process.
If you're wondering about my current situation, I am unemployed.
Humans are bad at evaluating candidates and generally we do a bad job of creating criteria to assess people because what we are doing is attempting to assess risk and humans are notoriously bad at assessing risk. Here is one example of how poorly investors assess risk because of our inherent biases and bad information http://www.nber.org/papers/w22143. The same concept applies in interviewing. With all due respect, the software community has no established criteria for what makes a good software developer or engineer bases on hard evidence. It's all anecdotal and every hiring manager leans on their own flawed biases based on their experiences.
Do you know what interviewing in non-tech fields is like? Complete bullshit. It's more about making your resume sound impressive and being buddy-buddy with the interviewer. At least we have meritocratic ideals, even if some companies implement them poorly.
What does it even mean? When are we gonna stop lying to ourselves?
The only way to evaluate someone for a software engineer position is to assign a mini coding project. The result should be a working product, packaged and ready to be shipped. It will tell you how fast someone can deliver a solution, how someone would design a solution, code quality, performance, etc. It doesn't have to be a gigantic app or website, just a basic working product and not a basic CS coding question that no one cares about. If you're applying for a backend position then it should be about building a backend. If you're applying for a mobile dev then it should be about building a mobile app, etc.
The whole hiring process is a joke, companies like google are focusing too much on college stuff and not enough on reality. Plus look, It's clearly written "Masters Degree in CS" on my Resume, that alone should tell you I already got evaluated on basic CS crap. So, let's talk about what I can really do to help your team and the company. What can I bring on the table besides a Masters Degree?
1. First CS exercise - phone screen (1h)
2. Second CS exercise - phone screen (1h, optional)
3. Onsite (full day of CS exercises on a white board or on a computer)
4. Sometimes you get an extra coding assignment when they still can't make up their mind
What I'm saying is that all we need is step 4 + culture fit, which could be done in one single day. So we could get rid of all the other useless steps.
This works if your goal is to hire only the currently-unemployed. You will never hire anyone who is currently employed like this. You will probably not even get students who have other options jumping through your hoops.
And think about it, no other industry works like this. You don't give a lawyer a case to win or a doctor a patient to cure to assess hiring them...
Personally I'd much rather work on a 4~5 hours long assignment in my own time. Sadly in my experience, companies that use this approach use it as a way to eliminate phone screenings rather than to make the in person interviews more relevant.
Oh. I thought I was an employed candidate who had a problem taking a day or two off for an interview. I must have imagined it.
Programming assignments are usually more flexible for employed people than interview days.
But they aren't a panacea. They are hard to design and if you haven't switched to an objective rubric for measuring them, they can be just as subjective as interviews.
That said, I whole heartily agree with using programing projects instead of interviews.
Both of those industries have accreditation standards and post graduate education requirements. Doctors have on the job requirements. Comparing software development, which is miles less sophisticated in its approach to those doesn't seem like a way to argue for any type of developer interview process.
In fact, all your argument points to, logically, is that there is a far stronger case for "more sophisticated professions" to have more gruelling interviewing standards than software developers.
It would take an experienced Software Engineer a while to get up and running on CS exercises before applying for a new job. If I were to apply for a job tomorrow, I'd have to re-learn all the CS crap I did in college 10 years ago. Why? Because for the last 10 years I built products.
They recommend (companies, blogs, etc.) to study CS and practice for at least one month, 3 hours a day, before applying to jobs. This is designed for someone who doesn't have a job or someone fresh out of college.
If you're a Web engineer and if I ask you to write a little app that would pull out data from our test API (in a few hours), it would utilize your current skills. Meaning, you wouldn't have to put extra time in studying CS. Again, if you went to college and ended up with a degree in CS, there is no reason why I'd want to test you on this stuff. What I'd love to know is if you've learned something since college!
Does it make sense?
If you need to come up with optimize algorithm as part of your job, hackerrank signals are good.
If you need to do simple code change or fix some bug for which it need to communicate with many people, then in person interview give good signal.
I think there must be other websites, testrank, bugfixrank, assemblyrank, devopsrank temaleadrank, managerrank etc, then it would be easier.
Software interview is broken because big companies hire in herd and small company follow the same generic interview practice.