Hacker News new | past | comments | ask | show | jobs | submit login

Programmer and owner of a technical recruitment agency here. I forked and rewrote the thing to make it more appealing to recruiters: https://gist.github.com/iwangu/b0d8b8e140afdd4e30bb7e401babc... I mainly removed things that sound patronising to me.

I think many HR people will just ignore you if you e-mail what OP posted. Once, I wrote a blogpost why programmers don't get jobs due to random factors ("Why software engineers don’t get jobs: Four horror stories" https://goo.gl/v4PUWV), but being patronising and "explaining programming to HR" is one of the things where you just shoot yourself in the foot by being too demanding too early in the process. You can be demanding ONLY AFTER they told you that they want to hire you, but not before.

A tip for e-mailing HR and business e-mails in general: Try to never signal that you will be hard to work with. Always be kind and even a little bit submissive. Don't try to teach people something, don't quote authors and don't do footnotes. Imagine the person will take a maximum of 3 seconds per paragraph and 10 seconds in total to read your e-mail. There is a chance the reader is listening to an audiobook or is watching Youtube while answering e-mails in a cubicle. If you need to discuss something critical, invite the person for a phone call. Salary, negotiating or deviating from a standard process (like here) should be discussed in person/in a call.

Hope that helps to get some insight from "the other side".




I think your approach would work if there was a shortage of jobs; there is exactly opposite situation right now and HR should adapt or they would end up with a very narrow dissection of what is available. You are often asking accomplished individuals to waste their time on badly compensated job proposals, just because it makes your life easier. No wonder so many programmers think recruiters in this industry are a joke and try to actively avoid them.


I agree totally with what you said, but you're confusing macro- and micro-economics here. On a macro-level it is true, HR people should be treating programmers like gods at all times, but on a micro-level, the HR person sitting in the cubicle doesn't care about one programmer more or less.

There might be ten other CVs of "okay'ish" engineers in HR's inbox and your interview will end by never hearing back the firm. Or if, despite being cocky, you get an offer there might be a note somewhere next to your CV on the CEO's desk saying "easy-to-work-with level: Only 50% score" which leads to 10k less for you in salary. As an applicant, you want to "manipulate" the employer to give you the best possible offer and why shouldn't you be friendly and a bit submissive to achieve your goal?


There's a distinction to be made here about the level of the position being discussed and the particular skillset. What you're saying makes more sense on the junior to mid-level dev positions or for more common skillsets. However, this is the Hacker News audience and you're clearly replying to someone who has already narrowed it down to senior dev positions. Given that context, I'm going to have to disagree with your assessment. If you're hiring for the best, then it's up to HR to respect their time. Otherwise you are just perpetuating the belief that recruiters add no value to either side of the equation.


You're right. The more senior the role, the more leeway there is for the candidate to tailor the process, but signaling arrogance is just bad.


I see that you're receiving a bit of flak (which, given the audience, isn't unsurprising). But I wanted to let you know that I found this comment pretty insightful.


Happy to help. When I was a full-time programmer I also thought writing ten paragraph e-mails with footnotes is smart but turns out it isn't (I learned this the hard way).


> I think your approach would work if there was a shortage of jobs

There is always a shortage of good jobs. You can fight the process all you want, if any job at all will do, and you don't care how long it takes to get it.

> You are often asking accomplished individuals to waste their time on badly compensated job proposals

What do you mean by badly compensated?

Why would you assume someone else knows anything about your accomplishment and credentials and trusts the skills you list on your resume before you've demonstrated anything?

Also, if you're good, then why does a low bar for entry scare or offend you? A screen for basic aptitude is narrowing the field and removing people from competition who can talk well but don't have programming experience. That seems like an advantage for anyone who can pass the easy tests.


>There is always a shortage of good jobs.

If their hiring process involves jumping through hoops before being granted permission to interview and if the tasks assigned to you bear almost no relationship to the job at hand, the chances of the job actually being good are low.

Employers that do this kind of thing typically have an entitlement complex and not the smartest. People with an entitlement complex who are not very clever are bad to work for.

>Why would you assume someone else knows anything about your accomplishment and credentials and trusts the skills you list on your resume before you've demonstrated anything?

In my case because I have a bunch of open source available that they can just read.

If a company expects me to complete a 1 hour badly thought through exercise that is at best barely related to the job before they grant me permission to talk to them, just exactly how well do you think they'll treat me once I'm actually hired?


I'd love to hear examples of how to do it right, without taking all my time. I'm genuinely interested in how to hire people without wasting their time or mine. I'd love to screen people with a day of pair programming or a 2 week paid internship, or whatever other good ideas are floating around. I can't.

You have just dismissed most tech companies. All the large ones (Google, Apple, Amazon, Microsoft, etc.) give coding puzzles as part of their interview process.

If you don't want to work for one of those companies, that's absolutely your choice, but you'd be wrong to say they have an entitlement complex or aren't the smartest.

> In my case because I have a bunch of open source available that they can just read.

I do read people's OS projects, but I simply can't do that for every candidate before I screen them, I don't have enough time. If the coding tests are easy, and you want me to see your open source project, then just ace the coding test and move on.

If you don't want the job, then don't do the coding test. It is your choice.


In the past I've given programming tasks that mimic real life work as closely as possible and fit them into a reasonable time frame - for example, 1 hour of pairing/programming during an arranged face to face interview. If the test is well designed, touches on a number of areas and self contained, I think this was sufficient for me to assess their skills.

"Mimic real life" means no puzzles (unless I've literally experienced them in real life), no binary tree reversals and no big O notation questions.

>You have just dismissed most tech companies. All the large ones (Google, Apple, Amazon, Microsoft, etc.) give coding puzzles as part of their interview process.

I think that type of thinking leads to embarrassments like this:

https://twitter.com/mxcl/status/608682016205344768

I think he experienced exactly the same problem the OP is talking about and in this case it's not him who was dumb, it was Google.

I wouldn't rule out any of those companies but I think I'd rule out joining through the standard interview process - I'd look for specific people who looked to be doing exciting work on specific teams and try to befriend them.

>you'd be wrong to say they have an entitlement complex or aren't the smartest.

I think it would depend upon the team. I think they're not all geniuses, and they do have a tendency to drink their own kool aid. For sure some teams are great though.


> 1 hour of pairing/programming during an arranged face to face interview. If the test is well designed, touches on a number of areas and self contained, I think this was sufficient for me to assess their skills.

Sounds great. I've done this too, but I've never done it before screening candidates. I don't have enough time to screen candidates by programming with them.

> "Mimic real life" means no puzzles (unless I've literally experienced them in real life), no binary tree reversals and no big O notation questions.

Understood. My goal with my coding quizzes and knowledge questions is not to mimic real life. It's to asses the boundaries of the candidate's education and experience, without regard to skill.

> I think that type of thinking leads to embarrassments like this

There always have been and always will be false negatives, even with lengthy face-to-face interviews, even with pair programming, and even with paid internships.

One high profile false negative anecdote, while unfortunate, doesn't imply there's a widespread or unexpected problem. Applying for jobs always comes with a risk of not getting the job for a wide variety of factors that are outside the candidate's control. If it's a job you really want, all you can do is try hard.

I love homebrew, and I'm sure @mxcl is a fabulous coder, but the tweet you shared does make it sound like he expected to get the job without an interview, and might have come across that way, or might have not prepared at all.


>I've never done it before screening candidates

No me neither. I screened with a 5 minute fizz buzz like task and CV fits. Bad programmers slipped through the net (and were caught by the test) but I never got anybody who literally couldnt code. I was happy with that balance.

I was afraid if I made it longer than 5 mins we'd filter out good candidates who couldn't be bothered with our bullshit.

>One high profile false negative anecdote, while unfortunate, doesn't imply there's a widespread or unexpected problem.

It does imply that it just doesn't prove it.

A wanton disregard for realism in interviewing is, in my experience, very clearly systemic and industry-wide.

>tweet you shared does make it sound like he expected to get the job without an interview

Seriously wtf? I think you're starstruck by Google and that is affecting your judgement.

Asking him about binary trees was dumb. Unless Google place him somewhere patently unsuitable for his skill set (kernel hacking/low level database code), he won't be using binary trees.


> It does imply that it just doesn't prove it.

@mxcl's experience doesn't imply it either. The only evidence for a widespread problem is the number of people who have that problem. I have never had an interview where I felt rejected for what I thought was a single dumb question, ever. And I've never seen it happen to someone I know personally, or at a company I've worked for.

> A wanton disregard for realism in interviewing is, in my experience, very clearly systemic and industry-wide.

I don't necessarily disagree with this, but could you elaborate more on what bad things are actually happening that affect people? Are good coders, by and large, not able to get jobs? Are good coders having statistically significant problems getting paid or finding enjoyable work? I don't think so. Please elaborate on what actual damage is being done, I'm not seeing any.

> Seriously wtf?

Seriously. I don't know what happened, but I'm not automatically on the side of @mxcl because he was turned down or because I'm a fan of Homebrew. He might be exaggerating what happened. Do you know for a fact that it was specifically the binary tree question and nothing else in his interview that lost his chances there?

For all I know, the binary tree question was put there just to see if he would scoff at actual programming questions given his high profile status, and he failed because he scoffed and not because he got it wrong.

> I think you're starstruck by Google and that is affecting your judgement.

Why? What have I said that suggests I'm a fan of Google at all? It seems to me like you're making wild assumptions here.

> Asking him about binary trees was dumb.

That's an opinion. One that is based on not knowing why the question was there, or what the other questions were. I do ask questions on topics that I don't expect the candidate to use in their job. I'm interested in whether they paid attention in school. I'm interested in what they know, regardless of their skill. I'm interested in what they don't know, and where their limits are. I'm interested to know if people are curious about software. I'm interested to know how people react to questions they don't know the answer to. And I have a rule to specifically reject candidates that get upset about being asked technical questions. Those are people I don't want to work with.

None of that precludes asking some realistic questions about things people will use on the job, in addition to any unrealistic ones.


>I have never had an interview where I felt rejected for what I thought was a single dumb question, ever.

This is moving the goalposts. That is not the same thing as a wanton disregard for realism.

Have you been asked interview questions and set tasks which were not related to what you actually do day in day out? I have. LOTS.

>I don't necessarily disagree with this, but could you elaborate more on what bad things are actually happening that affect people? Are good coders, by and large, not able to get jobs? Are good coders having statistically significant problems getting paid or finding enjoyable work? I don't think so. Please elaborate on what actual damage is being done, I'm not seeing any.

Um, more false positives and more false negatives. It honestly feels weird having to justify why realism in testing is important. It feels so damned obvious to me. Would you design a purposefully unrealistic scientific experiment? Create a deliberately unrealistic automated test? What's special about interviewing that realism is of secondary or tertiary concern? What is more important than realism?

>I'm not automatically on the side of @mxcl because he was turned down

It feels kind of like you're automatically on Google's side.

The part that made me go what the fuck was when you said "he makes it sound like he expected to get the job without an interview" when he neither said nor implied anything of the sort.

And, earlier you took it as a kind of article of faith that everybody at google was obviously super smart, because Google.

There's definitely some bias there.

>I'm interested in whether they paid attention in school.

That's cool. I'm interested in whether they can do their job and I think it's kind of weird how people are seemingly so keen on setting tasks that test anything but that.

>None of that precludes asking some realistic questions

Strictly speaking asking what their favorite kind of chocolate is doesn't preclude that either, but there's a limited time available to interview and a limited amount that can be learned from asking them that - or indeed - anything else of tangential relevance.


> This is moving the goalposts.

What goalposts? You said it was an embarrassment that @mxcl didn't get hired by Google because of the "dumb" question. I've responded directly to your claims.

> What is more important than realism?

For me, questions that assess honesty, optimism, curiosity, potential, and communication skills all rank higher than technical questions that are "realistic". I care more about attitude and potential than I do about whether they can perform specific job duties already.

> There's definitely some bias there.

If there is, I wouldn't know it, but I think you're wrong. Do you know more than @mxcl tweeted? Do you know for a fact what happened? Have you heard Google's side of that story? Are you biased against Google? Do you believe one tweet is true and tells the whole story?

The fact that @mxcl tweeted with indignance about his interview experience is what implied he expected to get the job without an interview. That's a fact, not an interpretation. He didn't so much imply it as say it directly, that he shouldn't have to invert a binary tree because 90% of Google uses his software.

> I'm interested in whether they can do their job and I think it's kind of weird how people are seemingly so keen on setting tasks that test anything but that.

I don't really understand why you just got so snarky, it's probably my fault for arguing, but it was calm a couple of messages back. I'm honestly sorry if something I said ticked you off.

You're taking my comment out of context and trying to make it sound like something it's not. I can be interested in whether someone learned in school and still be interested in whether they'll do a good job, right? In fact, I'd go way out on a limb to suggest that doing well in school is a reasonable (but not perfect) proxy for how well someone might do in a job. Especially, but not limited, to new college grads.


>You said it was an embarrassment that @mxcl didn't get hired by Google because of the "dumb" question.

I only said it was an embarrassment that he said that and that they asked such a patently irrelevant question and then rejected him. I think you read a lot more in to that tweet (and possibly the situation) than was actually there.

It's entirely possible that they rejected him for a perfectly reasonable reason, though there's nothing to really imply that that is so.

>For me, questions that assess honesty, optimism, curiosity, potential, and communication skills all rank higher than technical questions that are "realistic".

Ok, so if that's what you're really looking for, do your job adverts actually state at the top "we seek honest, optimistic, curious candidates with potential and communication skills?"

I've got to be honest I don't see many job adverts that state that and I think "able to do the job" ranks higher up the list of concerns for most employers than "has a sunny outlook on life". Still, if that's what you want...

Realistic tests will, if realistic, implicitly test honesty to a degree (the candidate will at some point have to admit that they don't know) and communication skills and many other important traits you might not even realize that you needed to select for - in proportion to their relevance to the role at hand.

>If there is, I wouldn't know it, but I think you're wrong. Do you know more than @mxcl tweeted? Do you know for a fact what happened?

A little, yes, but that's not the point. You don't know more than what he tweeted and yet you inferred something quite insulting that he did not say or mean.

>The fact that @mxcl tweeted with indignance about his interview experience is what implied he expected to get the job without an interview.

That's 100% your spin. To me, it implied that he was pissed at being asked irrelevant questions. A quick google can actually confirm that (there's a quora thread about him).

That's pretty much what this whole thread is about. The OP's rant was basically "recruiter, your test is bad, here's a more realistic one you should try". My rant was about irrelevant questions and unrealistic questions.

>he shouldn't have to invert a binary tree because 90% of Google uses his software.

...and neither should most people who interview at Google because asking that question is irrelevant for ~90% at software engineers even at google (never mind elsewhere).

Frankly, even if you are an engineer that does use binary trees it's a bad question to ask.

>I don't really understand why you just got so snarky

Honestly? Because, in a situation where you didn't really have enough information to form a judgment you instinctively sided with the large, powerful, faceless corporation and showed distrust of the little guy who made a great piece of software for free that people love.

I think that's a pretty unhealthy kind of bias to exhibit.

>I'm honestly sorry if something I said ticked you off.

Yeah, sorry I probably shouldn't have snarked.


> do your job adverts actually state at the top "we seek honest, optimistic, curious candidates with potential and communication skills?"

Why is stating what meta-characteristics you're looking for some sort of requirement for you? My job ad does say "passionate and talented", and I (always) reserve the right to interpret that any way I choose.

> It's entirely possible that they rejected him for a perfectly reasonable reason, though there's nothing to really imply that that is so.

Yes, exactly. There's also nothing I know of to imply it's not so either. I can't pass any judgement, I can't call it embarrassing, and I don't know if the question was irrelevant or dumb or fair & smart. If you do know it for a fact, then spill the beans. So far, nothing you've chosen to share addresses this factually.

> You don't know more than what he tweeted

That's what I've said from the beginning, and is precisely why I can't side with him.

Your argument is a false dilemma, you've made assumptions and jumped to the (incorrect) conclusion that because I don't side with @mxcl, then I side with Google. You've assumed that if I'm not with @mxcl, then I'm against him. Your incorrect assumptions only reflect on you, not me.

https://en.wikipedia.org/wiki/You%27re_either_with_us,_or_ag...

> To me, it implied that he was pissed at being asked irrelevant questions.

In my mind, that's not meaningfully different from what I said, other that you're claiming that "irrelevant" is absolute and objective. To make that claim, you need to know Google's side of the story. Since you know more than the tweet, tell me... what's the whole story?

> in a situation where you didn't really have enough information to form a judgment you instinctively sided with the large, powerful, faceless corporation and showed distrust of the little guy who made a great piece of software for free that people love.

You just admitted and rationalized your own bias. What justification do you have for continuing to talk about mine, which may or may not exist, given yours?


Getting to Google is more difficult than getting to Harvard. They built their process that way risking rejecting great candidates in order to minimize false positives, bad hires, according to their definition of bad hire. So the Homebrew author could have expected it, it happens all the time. I object to using the same criteria throughout the industry on most jobs these days though, instead of only on top-end ones. I have nothing against top companies having top interviews, they are usually fun if you are good.


Explain to me the justification behind using an interview process that deliberately placed no emphasis on realism.

This guy wouldn't be using binary trees at Google. He hasn't used them before. They are of minimal relevance in his area of expertise.


I guess you need to talk to Norvig or whoever designed their data-driven process and the definition of good hire they wanted to achieve. It used to be that when you joined Google you had no clue what your project will be before your first day, so I guess they wanted to maximize success rate on blind assignments to teams/ideas. For that certain abstract skills are more important than your past accomplishments you might not be able to reproduce in different environment with different rules. It's their money after all, they are desirable, they can select for whatever they wish.


So, to be clear, you thought good reasons for an unrealistic testing process were:

* Argument from authority (because Norvig)

* "We might want to put a front ender in a back end job and vice versa so we need an interview process that accounts for that"

* Tests of "abstract skills" - as in, skills you won't actually use - are more important than tests of non-abstract skills which you will.

* "It's their money"


Nope.

> * Argument from authority (because Norvig)

No. I suggested you might want to ask Norvig why did they decide so

> front ender in a back end job

I think it's a bit different. It's like you are creating completely new stuff like Big Data 15 years ago where frontend/backend separation didn't exist yet. Likely the same holds for various machine learning roles right now. So those categories we will be using in the future have to be invented first, and for that you need slightly different approach


> All the large ones (Google, Apple, Amazon, Microsoft, etc.) give coding puzzles as part of their interview process.

They are considered the best and give above average compensation. Is your company considered the best, properly paying top talent, to employ the same schema? Those tests were done to distill the top end performers with the accepted risk of huge number of false negatives. Now every mom-and-dad shop is trying to use it. That's why I call it insanity, getting extreme practices into mainstream in our industry.


> Is your company considered the best, properly paying top talent, to employ the same schema?

Yes, this was true of every job I've ever had. Maybe I've been lucky.

I don't really understand why asking someone to do a small amount of programming for a programming job interview, when they claim to be an experienced programmer, is any sort of "extreme" practice.

You've expressed a lot of complaints about coding quizzes, some that many people here share, and some that I agree with.

I would urge you to spend your energy making a specific alternative proposal that companies can actually use. The OP's proposal isn't something companies can actually use for all candidates, even if they could use it for him.

I'm very interested in how to better screen and interview devs. I want to improve my process. But no process I've ever been exposed to is even close to perfect.

Make sure your proposal considers the company's perspective. The ideal process will benefit both the candidate and the company, but something that's pleasant for the candidate and unpleasant for the company will never get adopted no matter how good it sounds.


Because if you have in your CV verifiable statements that you worked on some super tough engineering challenges, including advanced snippets of code/projects on GitHub demonstrating your dominance in that area, doing silly low-end coding quizzes seems like a total waste of time. Can't you really see that? It's literally like if I asked you if you ever ran a company and if you could handle preparing a budget, despite knowing you are a serial entrepreneur that sold multiple companies already. It's just super arrogant.


> Because if you have in your CV verifiable statements that you worked on some super tough engineering challenges

If it takes longer to verify than it does to test your coding ability directly, why shouldn't I just ask you to do some coding? The challenges you took might be less impressive or well known than you think. The challenges you took might not say much about you if they were team challenges.

> including advanced snippets of code/projects on GitHub demonstrating your dominance in that area

That doesn't help me compare one candidate to another at all. Nor does your github demonstrate dominance in anything, unless your project is React or something like that. Github is a vast wasteland of barely used code.

> doing silly low-end coding quizzes seems like a total waste of time

It's going to take about as long to get through job interviews no matter how the interview is conducted. You can spend it programming, or you can spend it talking. The time spent is an investment in getting the job. If you don't actually want the job, then you're right, it's a waste of your time.

What's not going to happen, ever, is someone will take the initiative to read through all your work, verify the things on your CV, and offer you a great high paying job without going through the interview process.

> Can't you really see that?

To be very frank and honest, given all the reasoning and experience I've shared with you, this question gives me the impression that you might be very inexperienced.

> It's just super arrogant.

What, precisely, is arrogant? What are you talking about specifically? Using Hackerrank in an interview? Having an interview at all? Not noticing that you're a rockstar before talking to you?

Please take some time to articulate what the right interview process is, rather than spend any more time passing blanket judgements.


I think you are completely missing the point I am trying to make.

Imagine you have strong interest from Google, FB, Uber, Amazon etc. Google wants to waive their interview process as you are an open source contributor (they actually read your CV and clicked on the links). FB wants you to lead some ML team they have doing cool things etc. Other companies beg you to work for them even if you don't consider them interesting, willing to overpay you and pamper you.

Now comes your unknown company/startup. In order to even talk, you require passing some HackerRank coding test. I look at your Glassdoor reviews, you either have none, or few, or your compensation seems to be low etc. You might be working in interesting area, maybe I should give you a shot? Or I just want to see what current crop of interviews in your industry looks like, maybe I agree on going through the process? Maybe I even visit some interesting city you are located in and scratch it off my bucket list?

In the end I won't work for you. I won't consider anything you offer. I've gotten from you what I wanted - glimpse of the area you are working on for more ideas, keeping my brain up to date to interview requirements, visiting city I've never been before. You wasted time and money on me. You didn't get anything. I puzzled your head because you thought you'd have a shot at getting me. And that is the best outcome you'd get from this; most likely I wouldn't even talk to you after your initial requirements and go with other choices available to me.


Please propose a better process!

> Google wants to waive their interview process as you are an open source contributor. Other companies beg you to work for them even if you don't consider them interesting, willing to overpay you and pamper you.

That's not a realistic scenario, your point seems contrived. Google doesn't waive their interview process, as the @mxcl example demonstrates. Companies only beg to throw money at you and overpay you if you're famous or have a niche skill. If that's true for you, this conversation is irrelevant to you.

> Now comes your unknown company/startup. In order to even talk, you require passing some HackerRank coding test.

As I said above, I'm assuming this process only starts when you express interest in the company. If you're complaining about having to respond to recruiter spam, I can't help you. Nobody is forcing you to take any tests. You should only do it when it's for a job you want.

> In the end I won't work for you. I won't consider anything you offer.

What you're doing is avoiding false positives by screening for something you care about. The same thing Google does. Except Google has statistics on how well their screens work.

> You wasted time and money on me.

Or, more accurately, they saved time and money by not doing lengthy and involved interviews or researching you heavily before discovering it's not a good fit.


> Google doesn't waive their interview process

They actually do. What they told me is that if you are an open source contributor for important open source, or you have 3 people within company that want you, you can skip the whole process. There are surely more ways to skip it. Not sure why they didn't do it for that Homebrew guy.

> when you express interest in the company.

I was mentioning that these days often HackerRank is step 0 of interviewing process, like what used to be technical phone screen. And that holds even for recruiting agencies if you want to have your CV featured there, even for underwhelming jobs. TopTal IIRC also does that.

> they saved time and money by not doing lengthy and involved interviews

I wouldn't be so sure here. You can be easily played, i.e. you are in Seattle, somebody wants to visit friends there, schedules an interview with you, you pay flights + hotels because you are happy to talk to them, they use you and extract whatever information they wanted to acquire from you and then tell you they decided for another alternative, but went there mostly to visit friends/relatives/handle some administrative business. It happens.

> Please propose a better process!

It's tricky. The deficiency in your approach I see is that you expect candidate to spend time in convincing you without you spending time on researching them, pushing all externalities to the candidate. With this you IMO cut the people you want/need the most as they usually value their time. Maybe if you offered compensated initial interviews to people you spent some time researching, that could help? That would be a signal you did your research already as you wouldn't want to waste money on random people, and that you appreciate them dedicating time talking to you?


> The deficiency in your approach I see is that you expect candidate to spend time in convincing you without you spending time on researching them, pushing all externalities to the candidate.

You expect people to do research, but you clearly haven't listened to anything I've said about my process, which I've commented on multiple times in this thread. Your summary is a straw man unrelated to anything I do when I hire people.

And you still haven't yet proposed anything better!


I think what you are looking for is confirmation bias. Can't help you and have to eject myself from this thread.


I'll bite on your suggestion of a different process.

Bring the candidate on site for a 4 hour coding session. Provide a standard list of questions the scale in difficulty. Think:

1) Fizzbuzz

2) Reverse a string

3) Write a calculator class/script

...

100) Write an algorithm that can search compressed text without decompressing it

So you see how far and correct they can get with an IDE ... and maybe no internet connection.

Noon - Hiring Manager lunch Afternoon - 1 or 2 design interviews on the white board.

So you have done a few things here that I want to outline.

A) You got rid of the stupid whiteboard

B) You have one process that scales for experience levels!

C) You can tailor the problem set at a certain of difficulty to specific languages

This interview style ensures the developer/engineer knows how to code, and can be weighted appropriately to certain skill levels.


>>and maybe no internet connection.

Even the top notch devs I know can't do anything meaningful without an internet connection. Unless of course you know how to invent several layers of libraries, instantly in hours without bugs. Know the documentation of the libraries memorized to the last full stop.

In my exposure at least I know 0 devs who can do this. And I'd bet even the interviewer wouldn't be able to write any meaningful without a network connection. This isn't 1960s. By very definition almost anything today requires an internet connection.


I love this suggestion, and thank you for elaborating! FWIW, the interviews that I've talked about taking as a candidate actually used this approach. And, when I give interviews, I use this approach too.

The only thing I'm really defending here is using a 2nd stage screening process that only takes 30 minutes, before I go to the 3rd stage that takes a half day or full day. @BitL seems to be fighting the screening process, which is a necessary practicality and isn't going away.

The first stage is reading resume and glancing briefly at any side projects, which is ~5 minutes. The first stage is invisible, and filters out more people than any other stage. If anything unfair is happening, it's happening here, and there's little a candidate can do about it.

My thoughts on your outline:

A - getting rid of the whiteboard is of course optional. In my case, having graded exercises doesn't mean I stop using the whiteboard. I only provide a whiteboard for people who want one, and I don't ask people to whiteboard things better done in an IDE.

B - Yes! I do like having exercises that range from super easy to not solvable. It helps to know where people get stuck.

C - Yes! That's very helpful for language specific jobs. Personally, I also like exercises that are language agnostic, to let the candidate pick the language they're most comfortable with. I've loved doing coding quizzes in Python during interviews, and would prefer that over, say, C++.


You do not know how many good candidates are filtered out because you have bad hiring practices.

I was tricked into a code golf challenge which was a hiring test. The result was good I was surprised that slacking off could get me a nice discussion, and the company got to pitch their positions. I've never done a hacker rank thingy for hiring and probably never will, I loathed them in school. They do not tickle my mind nor can I scratch my itches with them.

I know this sentiment is shared by many high value employers I've had the pleasure to work with.


> @BitL seems to be fighting the screening process, which is a necessary practicality and isn't going away.

Dunno. Google sent me flight tickets to Mountain View on-site interview without doing any phone screen. YMMV

Maybe sometimes you would consider skipping it as well? Maybe clicking through someone's resume could prompt you to skip that process? Maybe even onsite interview or making it just a friendly chat?


What I liked was using shared Jupyter Notebook during a video call. You avoid whiteboard coding, you can see what the algorithm does immediately and fix any issues and both interviewer and candidate can have more interesting conversation, telling you if you are a good personality fit.


>I don't really understand why asking someone to do a small amount of programming for a programming job interview, when they claim to be an experienced programmer, is any sort of "extreme" practice.

It isn't and that's exactly what you should expect.

Nonetheless it shouldn't be too much to ask that the test and interview ask relevant questions and that the company puts skin in the game that is commensurate with the sacrifice being asked of the candidate.

In other words, 5 minute screener tests are cool but if you make me do a weekend project you put me up in a 5 star hotel.


Those "mom-and-dad shops" are the ones who have the most to lose by hiring the wrong person. A sufficiently poor performing person could cripple them.


They also have a lot to lose by leaving the position unfilled for months on end. If you aren't Googlefaceapplezon, then false negatives could be as costly as false positives given time is money.


Alright, imagine you worked for top engineering company, have github full of bleeding edge stuff anyone can observe, wrote books, have patents under your belt, do public speaking, teaching at universities etc. and some HR person comes in and wants you to do trivial HackerRank stuff. She basically interrupted you from working on something benefiting humanity just because she was lazy to check your CV and ignorant of the industry. Then you see the same company awarding their good jobs to friends of higher ups and all they have left are generic jobs they need to fill that would end up with all the work, complaining "where have all the good programmers gone?". And then you read on HN post like this and wonder why there is so much resistance to acknowledge one's qualification from what they provided in their CV. Imagine the same doing in other areas of industry - we don't care you won these multi-million law cases in the past, all we care is how the history of US North-East affected common law between years 1870-1893.


FWIW, I have a patent and do public speaking, recently sold a startup, and I gladly take the coding quizzes for all my interviews.

They are fun, and they give me a chance to shine. The coding quizzes actually saved me once when I did really badly in another part of the interview. That company hired me, and gave me what others there thought was the good job.

I also administer coding quizzes to people I hire, and I find them a small but useful part of the larger interview process. I'm giving an assembly language coding quiz to someone later today.

> She basically interrupted you from working on something benefiting humanity

That seems a little hyperbolic. Do you want the job? You have to spend time interviewing. Simple as that. Don't do the quizzes if you don't want the job.

> Then you see the same company awarding their good jobs to friends of higher ups

Most companies try to promote from within, and many people think that's a good thing. The alternative is you hire unknowns from outside the company over people who've been there putting in the time and know the system.

> just because she was lazy to check your CV and ignorant of the industry

It's both presumptuous and pessimistic, and also likely wrong, to assume that a coding quiz implies any laziness on anyone's part.

> Imagine the same doing in other areas of industry

Other jobs have it much worse, you have to get bureaucratic certifications for a lot of jobs that are a lot less fun than Hackerrank, and take months and months. Or you could be a lawyer or doctor, and you have to raise money and bring in clients in order to get the good jobs.

What jobs are you thinking of that have it so much better than programmers?


It was about accomplished people getting the same treatment as newbies or wannabes that have no clue what they are doing. You don't see it in other industries. E.g. I wrote this new language/library everybody uses, but I am forced to solve some crappy puzzles I probably was solving when I was 14 and match the current mood/skills/tunnel vision of the interviewer. As a consequence, I rather start my own company and charge you much more for the same service you'd get if you employed me with a bit of a good will on your part, or by simply reading my CV and clicking on the links there.


You do know there are a lot of "accomplished" people according to their own CV who can't actually code their way out of a paper bag, right?

The more senior someone gets, the more expensive. It's worth the company's time to screen for basic aptitude, especially when someone claims greater expertise.

> As a consequence, I rather start my own company

By all means, you should definitely do that and stop worrying about job interviews!

> if you employed me with a bit of a good will on your part

Good will is something you earn. And you earn it by doing things the company needs without complaining. For starters, they need to be able to compare candidates against each other when hiring. Fighting that, and asking the company to evaluate something you've done that doesn't allow comparing you against other people, isn't something that will benefit the company.

> or by simply reading my CV and clicking on the links there.

You're expecting people to spend time reading your projects before they screen you? If you got the call, it's probably because someone read your CV. That's all you can expect at this stage. If you want them to click the links and read the rest, then you take 30 minutes to do the phone screen, and another 30 to do the coding quiz. Then you get to have a conversation about your projects.

If they never ask you about your projects, then yeah, maybe you shouldn't work there. The coding quiz is only one small part of a many-part process.


> You do know there are a lot of "accomplished" people according to their own CV who can't actually code their way out of a paper bag, right?

Are you saying, the recruiters are just treating everyone (accomplished/non-accomplished who happened to have a great CV) the same? I think your point just supports the view instead of refuting it.


> "...working on something benefiting humanity..."

I think you forgot to add the "/s" to this statement.


Maybe you are idealistic and work for non-profit dealing with human trafficking in your spare time and have to cut it to take a silly HackerRank test?


Why are you interviewing if you're working your dream non-profit job?


You mean you do service to other people for no salary in your spare time and you are asking why do you need a job to pay bills? Seriously?


The phrase, "work for a non-profit" implies some level of compensation. Had you instead said, "volunteer for a non-profit," then I would have understood that you were working in your spare time and for no pay.


More likely it is watching Netflix and reading HN...let's not pretend we're all out there saving the world and volunteering our free time for selfless causes...


It's just an example of course. But even downtime from work is massively important for your mental health, why it should be interrupted by a constant treadmill on recruiter's rat race?


> "why it should be interrupted by a constant treadmill on recruiter's rat race?"

Isn't this self imposed if you are the one applying for the job??? I don't get it, if some rando recruiter emails me a Hacker Rank test, I delete the email if I'm not interested...pretty simple. If I am interested, then I apply and that is no longer an "interruption"...or at least it is self imposed so there is no real reason to complain.


> Also, if you're good, then why does a low bar for entry scare or offend you?

It's not a matter of fear or offense. It's a matter of judiciously investing my time on the right opportunities.

I get about 3 to 4 calls from recruiters everyday. If I agree to go through this kind of interviewing process every day (even if the bar is low), I would be spending more than 20 hours every week just doing HackerRank tests. This is not feasible for me. Therefore just like the recruiters need a way to filter candidates out, I need a way to filter recruiters out.

Requesting a HackerRank test is just one of the many filters I use.


> It's a matter of judiciously investing my time on the right opportunities. I get about 3 to 4 calls from recruiters everyday.

I agree completely, I was under the assumption that this entire conversation is about what happens after you (the candidate) submit an initial job application, or respond to a recruiter about a job you're actually interested in.

I'd never do Hackerrank tests in response to recruiter spam.


There seem to be an abundance of "openings" but a shortage of offers. At least that's if you believe the whining on boards like here, Reddit, etc.


That's been my observation. Tons of openings, but many companies lean toward denials, under the assumption that firing the wrong person is more costly than not hiring the right person. It also seems that many companies are looking for ready-to-go engineers, rather than being willing (or able) to build talent in-house. The only door open to many junior devs is the internship-to-hire funnel.

This reminds me of this recent HN post: https://news.ycombinator.com/item?id=16337434


>>Tons of openings, but many companies lean toward denials, under the assumption that firing the wrong person is more costly than not hiring the right person.

This might be their claim, but they almost always end up hiring wrong people and firing them.

Its really simple, making hiring decisions based on an interview is really like deciding to go into a long term relationship with a person based on the make up they put up during a date.

If you are choosing on these qualities alone, then the prettiest person would get selected. This says nothing about the person at all, or worse, bad people are likely to put up more make up to hide other obvious flaws.


> ...assumption that firing the wrong person is more costly than not hiring the right person.

I take it you've never had to hire or fire anyone. At mid-sized and large companies, it's a cumbersome process and, unless they're complete sociopaths, firing is also unpleasant for the firing manager and the team. It also means taking on the work and cost of doing a new candidate search and another new hire ramp-up.

If easy-hire/easy-fire worked, everybody would be doing it.


Oh, the assumption is definitely warranted in many/most situations. Though there are often alternatives (such as contract-to-hire) to mitigate the risks.


Regardless of how the job market is currently, I see it as having a set amount of 'difficulty capital' that can be spent. The fewer openings, the less of this resource you have, but otherwise everything works the same.

Given there is a limited supply, regardless of size, one should try to spend it optimally. That means being difficult when it comes to pay and benefits, and spending some of this capital when trying to determine the work/life balance. Using it to be insulting or patronizing is effectively wasting it with no return.




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: