Hacker News new | ask | show | jobs
by frcknfrckn 3738 days ago
Ugh.

Using a coding test shouldn't be a red flag. They are an incredibly useful tool for weeding out the applicants who, quite frankly, don't know their ass from their keyboard.

I've done hiring at several companies over the years, and I can honestly say that the signal-to-noise ratio for programmers tends to be very low. Even eliminating the obviously unqualified resumes leaves us with dozens of supposedly 'qualified' developers. Further followup however in most cases (probably 60 to 80% of the time, depending on the seniority of the position) reveals that the applicant is all talk, and can't solve even the simplest of problems.

Eliminating that 60-80% of applicants is an issue. We could have, say, a brief phone interview with each applicant, trying to figure out which ones are garbage and which are good. But that would tie up actual employees for hours and hours, doing something that most of them would much rather not be doing. Instead, using a coding test to weed out the morons can work wonders. We set them all up with a simple problem set, and a day later it becomes very obvious which of the applicants are worth bringing in for a real interview.

Now don't get me wrong - if an employer rejects you because of a spelling mistake or judges you because they say you solved a problem 'wrong', then yeah, that employer likely sucks and you should be happy to have been passed over. But rejecting an employer simply because they asked you to do a test? The only one you're hurting is yourself.

3 comments

The flip side of this is that most companies are "garbage" as you put it, and a lot of them simply do cargo cult imitations of the more popular companies. If a startup is saying they're going to disrupt the online vegan running shoes market and then tells me they have to weed out the "80% garbage applicants" with some parochial trivia about binary search trees that let's be honest none of us has given a shit about since we passed the exam on it in undergrad, then the code test absolutely is a big red flag to nope on out of there.

Since so many jobs are just shitty talent wasters, and you are just treated horribly, given poor equity terms, not paid what you're worth, etc., it unfortunately means that unless you have special knowledge that some particular job is non-shitty (like a trusted recommendation) then you're just better off erring on the side of nope.

If the company looks like garbage though, why are you applying?
If the candidates look like garbage, why are you screening them?

You can't always tell. You begin part of the process, then the company says how great their Agile teams are, or how "collaborative" their open-plan surveillance workspace is, or they invite you to do a HackerRank test, and only now do you know the company is shit and you pass.

It's the same problem you face with the 60-80% unqualified applicants. I get messages from head hunters, direct recruiter emails on Stack Overflow, traditional recruiting firm phone calls, as well as occasional job listings that I locate through a job search.

80% of these jobs are shitty and need to be weeded out, even when they have plausible-seeming job descriptions and acceptable GlassDoor reviews.

I'm screening them to eliminate the garbage? I'm not sure I understand your point here. We don't choose the applicants we want to apply, the applicants choose which companies to apply for.

The problems with companies that you mention above have nothing to do with the coding test, it's the company itself. Those are perfectly valid reasons not to continue the application process. But eliminating a company because they apply a coding test as a basic level of applicant screening still strikes me as an arbitrary move that does nothing but rule out perfectly valid job opportunities.

Most people don't get to choose who to interview. Your manager or your recruiter does not have enough data to eliminate the 60% unfit. But the first 40% are already eliminated because those candidates did not pass even the first phone interview with a recruiter (think Google hiring process).
My point is that candidates face that exact same problem when trying to weed out bad employers. That's why good developers reject the employers who try to use commodity tests like HackerRank. We do it for the same reason that the employer wants to use the commodity tests to weed out bad candidates. But somehow the employers don't understand they are just signalling how bad they are (apart from a very rare few companies).
Don't be so quick to speak for all developers. Most good developers I've encountered are willing to put some effort in to find the right job.
So, if someone fresh out of college who has time to spend lot of time on the sample interview questions he/she is better than someone with experience/expertise in a particular area?

Sure if the experienced person spends enough time practicing, can ace the interview as well. But he/she would rather spend time on interesting stuff than say, how to print a tree spirally and hundreds of other silly questions out there :)

Who said anything about grading results or comparing applicants? This should be a screening test, nothing more. Pass/fail. Any decent developer should be able to knock out decent responses to simple problems in very little time with no prep. The goal is simply to eliminate the ones who can't even do that.
Do you think printing a matrix in spiral order is a simple problem. If an experienced person who spent 10 yrs on file systems didn't get that in a 30mts period, would you eliminate him/her? And oh btw, you are supposed to talk through your thinking process as well in that 30 mts... while youre at it, don't forget that semicolons :)
Are you thinking of white board problems? Because that is not at all what I'm talking about here.
Yes.. white board problems and some go even a step wilder and share google docs (coding in google docs is really an art that needs separate mastery)
Using a coding test as the initial barrier to even a phone screen is what I have a severe problem with.

I think coding tests absolutely have their place - after a 30m high-level skillcheck over the phone, let's ask for a brief 30-45m timed code challenge to rule out the applicants who were effective enough bullshitters to clear the phone screen.

But I too have seen this trend that GP calls out re: "auditions" to even make it into the actual audition process, and FWIW it has not hurt me one whit to spend the last few years refusing to complete a code challenge as a prerequisite to anything but an in-person technical interview.

The only way it would hurt you is if the company in question is one you know you want to work for - and I'd consider an up-front code challenge for a few big names out there - but in most cases I simply write back and let the recruiter know my policy.

It's not like they're going to stop sending you leads, if you're a good candidate.

edit: grammar

But look at it from the company's point of view - why would they invest time in a 30-minute skill check interview for every applicant if they can just as easily run the code challenge up front and eliminate a large proportion of the unsuitable applicants?
The problem is that you can't "just as easily" run the code test. The code test is unreliable -- bad developers who overfit their knowledge to trivia make it through. The code test also causes the really good developers to simply reject you, so you don't even get a chance to hire them, or even find out who they are.

You're basically saying you want to lop off the bottom 60% of an imagined Normal distribution. Except you're really only lopping off some of the bottom 60%, and some fraction of that bottom 60% gets through, and you're paying the cost of also lopping off the top 5% who think you're a joke of an employer for being way too worried about the costs for you to more substantively evaluate those bottom 60% folks -- especially since you, as an employer, are probably in the bottom 60% of employers anyway, yet are cargo culting to try to act like you only hire the top 0.000001% or something.

You get what you pay for. If you go cheap on candidate evaluation (e.g. lazy commodity HackerRank), you get the McDonald's version of a developer, all while acting like you're being extremely selective.

Gonna have to disagree on that one. If some fraction of that bottom 60% gets through, that's perfectly fine - this is only the first step after all, and there are real interviews still to come.

And if this mystical top 5% can't spare the ten minutes to run through what is essentially an interviewing captcha - for a job they were obviously interested in enough to apply for in the first place - then how do I know they won't consider themselves too good to do their actual work if I do end up hiring then? I'm happy to hire the next 5% down the list of it means they have a good attitude and a willingness to do their job.

And what's the alternative? I waste my team's time setting up screening phone interviews for every halfway decent resume that comes down the pipe? With the number of applications that we get, we'd be losing days of time every time we look to hire, before we even got to the actual interviewing.

> And if this mystical top 5% can't spare the ten minutes to run through what is essentially an interviewing captcha

Every coding test I've been asked to take is a 2-5 hour job. I'll do it for a company I really want to work for... But not for a "maybe".

E.g. If I know you are paying 25% over market then 5 hours becomes worth it.

Now 10 minutes? I can spend 10 minutes on a maybe.

If I knew what your test was going in it wouldn't be an issue. Unfortunately, I don't know if I'm getting your 15-minute competency screen or, say, Virtu's 3-hour borderline impossible beating until I actually log in to take it. Since the latter seems to be more common than the former, it pushes me to reject you up-front unless I am desperate.
You said this so much better than I did. Thank you!
I understand the reasons why the company would choose to do it. My argument is that they are fixing the wrong problem - and to be honest, could likely be making it worse.

If so many unqualified candidates are making it to the phone screen (which should happen after they've been resume-sorted and google searched), it's an indicator that something at the leading edge of the candidate pipeline is broken.

Asking their potential candidates to make up for their failure is not only asinine but probably locks them into a cycle of mediocrity - highly-skilled engineers are getting more leads than they care to deal with already, they're not likely to take the time to do that upfront work unless there's a very compelling draw. You know who will? Untrained devs looking for a first job.

tl;dr - the candidates that would do unpaid work for the chance of an interview, and the highly-skilled, well-sought-after engineers I'd like to hire for my team, are likely two circles without any overlap unless I have some major draw working in my favor - like signing bonus, or being a Google.

edit: accidentally a word

Why would a company do anything that benefits its employees?