Hacker News new | comments | show | ask | jobs | submit login
An employer asked me to do a HackerRank test. Here's my alternative proposal. (gist.github.com)
130 points by fa 8 months ago | hide | past | web | favorite | 258 comments



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.


It's an interesting idea. Phrased politely I think it's fine to suggest. Still I can understand why people would refuse your approach. There's an obvious risk involved letting the applicant dictate the terms of the evaluation. The point of coding tests is that you can't prepare or easily Google an answer. The employer wants to gauge your unscripted in the moment programming knowledge. Also as someone else said, you need a way to compare apples to apples. Not everyone has an amazing Github to show off.

Still I wish employers would better understand the limitations of automated coding tests. Pair exercises where I can use my own environment and think out loud with an interviewer aren't so bad. Fully automated stuff like HackerRank often make simple things overly complicated because they expect answers to be written a certain way. I think those sorts of tests are only suitable for really low level screening - ensuring a sysadmin can use basic bash for example.


    Letting the applicant dictate the terms of the evaluation 
    
That sounds vaguely biased toward the employer. An interview is a a two way process. The candidate in this case will likely have no problem finding a job. In a way, it sounds like he's doing his own pre-screening and the hacker rank request is a non-positive signal for him.

Our profession is somewhat bifurcated. There are the developers who only ever do glue code between systems and never progress beyond java 1.4 and work places where that is a valued trait.

This candidate however is in the other camp. He's creative, and self driven in his learning. He's also driven to get better. He won't be satisfied at the kind of place that doesn't look at him as a unique and creative developer.

This was a negotiation not letting an applicant dictate the terms of the evaluation.


How can I, as an employer, provide a fair interview process if every interviewee gets to pick terms? A uniform process isn't because we think it is the optimal process, but because it is the best process that ensures fairness.


Picking the terms is a negotiation. I think sometimes we forget that the interviewee is also interviewing us as a prospective employer. This isn't a school exam. Hiring is a business negotiation. Pretending that it's not is counterproductive.


Here's the thing. Not every interviewee is going to care. You do it on a case-by-case basis where you weigh the importance of the position you're trying to fill with your time. Looking for a productive, average developer? Then say no to their terms. Looking for the best of the best? Then you may want to spend that extra 5 minutes looking over their CV and consider if they might be worth your time.


> The employer wants to gauge your unscripted in the moment programming knowledge.

I see the appeal of knowing this but I think I'd take a submission from the OP as-is in place of a "coding test."

My thinking here is that I can't recall an instance where I needed to write code at a job with a timer ticking down and someone reviewing my work as I went. I usually have the luxury of doing some research and taking a few attempts at a problem before I understand it and write a decent solution.

I'm not sure what we expect from candidates when we force them into these situations. Am I supposed to be impressed by their solution? I can't think of how I would be. The code I'm most proud of writing took me several attempts to write. Often over a long period of time. Am I supposed to gain some insight into the way they think about problems? I already know how most people tend to solve problems. It's a well understood area of research. What else is left?

All I expect candidates to prove is that they've practiced a problem set and can recall a large number of solutions to trivial problems. Useful but it doesn't give me an indication about how they'll perform. Three months into the job and they'll probably forget 60% of the problem sets they practiced anyway.

Do I want to hire programmers who have an intuition of complexity and know when to use a binary tree or a linked list? Definitely! But I'd rather talk to them about real experiences they've had when they had to make such choices and find out why they made the trade-offs they did. It's hard to do that with trivial problems.


I'm a little biased as a devops guy and former SRE. When you're on call dealing with strict SLA's, your ability to make intelligent technical decisions quickly is important. I expect the guy I hire to not have to Google how to check CPU load or how to pipe tail output from log files into a grep function. At the very least a timed coding exercise tests their nerve.

For other development jobs I generally agree with you. The coding screen will not tell you much. Particularly for a mid-level or senior role. In those cases I am way more interested in their portfolio and in having a long casual technical discussion.


The SRE team is infamous! I tried the interview for the SRE team to see what it was like. At the final interview I was asked to implement a K-NN algorithm, which I did, and then optimize it for k dimensions.

When it was over I asked the interviewer if there was ever a time when he had to implement such an algorithm on the job during a production outage event and his answer: No.

In my experience working within devops teams maintaining and developing public cloud infrastructure I don't think I've ever had the pleasure either.

In retrospect I don't think it was a bad experience. I think there are roles which exist in software that do require a higher level of rigor than others. I'm often amazed how easily many developers will dismiss performance concerns (premature optimization!) for example. I would expect a hiring process to be upfront and honest about such requirements and candidates should be aware of their own skills and background before applying.

But most software development jobs at ABC Corp are not the SRE Team at Google and they hire as if they were.

I think that's the risk we take with standardizing and automating hiring processes.

update: just markup.


> Also as someone else said, you need a way to compare apples to apples.

This is really important. For any company that does business with the federal government (even if it's only a small part of the company), they're required to keep records to prove that they don't discriminate in their hiring practices. The way almost every company does this is ensure that their practices are standardized and no candidate has any sort of different experience.

If they let this candidate have a non-standard interview, then hire them over someone who is in a protected class, they'd be opening up a TON of liability.


This is an important point that people defending the author need to consider. I agree that hiring is a two-way negotiation. Flexibility is great. But there is a significant moral (and legal!) hazard when you let some people skip the code test because they have an amazing Github and others get rejected for not passing the screen. You're filtering out everyone who isn't privileged with the free time to build up an amazing portfolio. People will argue that this disproportionately hurts minorities, women, and lower income people.


The recruitment process is not the place to address economic inequality.


>>The point of coding tests is that you can't prepare or easily Google an answer.

Several thousands of students solve these questions on online judges. These are some of the easiest questions to Google and get answers for.


You want a personalized interview, styled exactly for you ?

I would be a 'no' if i were interviewing me. You obviously can program but this makes you appear to be someone who would be difficult to work with.


...If "Tells me when I'm doing something in a way that could potentially be improved, in a polite, validated way" falls under your definition of "Difficult to work with", then perhaps he wouldn't want to work with you anyway.

However if you want to hire people to just complete tickets as fast as possible, maybe that's a valid reason to reject the candidate.


"Difficult to work with" is perhaps too harsh a statement. But the candidate is asking for a completely custom treatment at the earliest possible stage of the interview process. The candidate is also assuming that the interviewers aren't aware of the caveats mentioned about standard coding screens/HackerRank exercises. The candidate's proposal also doesn't mirror real-world conditions, because I doubt the job consists of adding features to their own codebases. The candidate also doesn't seem to acknowledge that this is not the entire interview but rather just a low-investment screen to decide whether to perform the full interview in the first place. The candidate also glosses over the value of the standard screen, which is that it's uniform across all candidates.

To be clear, I wouldn't rule out someone for this, but I can sympathize with where I believe the above poster is coming from.


I have a lot of problems with this paragraph, the same problems I see again and again on both sides of interviews.

> "Difficult to work with" is perhaps too harsh a statement

That's exactly what the OP meant to say, and verbatim what they would have said in an interview debrief. The interviewee wanted some amount of compromise, and all of a sudden they're "difficult to work with". Now everyone else in the room is framing this potential hire as an asshole. There's no coming back from that. I've seen this happen many times. One term of phrase like that and instantly a qualified candidate is out because someone latched onto a single fault and made wild extrapolations about it.

> just a low-investment screen

You have no idea how much of an investment it is. I've had hacker rank problems that I was expected to spend 3 hours on. That's a pretty big investment just to get my foot in the door. Sometimes (read: often) the juice just isn't worth the squeeze. The employer wants me to give it my best when they're not even willing to come up with their own questions.

> uniform across all candidates

I see this a lot as the panacea of interviewing. Sounds good to have everyone on a level playing field. But if you start out with a crappy process, applying it to everyone equally isn't going to get you good talent. As an interviewee, I'll still be bitter about the bullshit you put me through, even if everyone else had to do it.


> just a low-investment screen

Low-investment on the part of the employer. They still expect me to spend 90 minutes on proving I have seen a REPL before, which is time I, frankly, don't have. I'm happy to answer/talk about things that relate to my job, but working on puzzles that just happen to be solved more easily by programming has exactly nothing to do with it.

> the candidate is asking for a completely custom treatment

What's next? Having to actually look at someone's CV? That's insanity.


Why are you looking for jobs if you are too busy to spend 90 minutes of effort on applying for that job?

Maybe the whole point of the test is not how well you do, but how you react to being asked to do something you feel is beneath you...


> Why are you looking for jobs if you are too busy to spend 90 minutes of effort on applying for that job?

I didn't say I'm too busy to apply, I said I'm too busy to spend 90 minutes on useless tests.

> but how you react to being asked to do something you feel is beneath you...

You know what a great test for that would be? Ask the applicant to wash your car.


> useless tests

These tests aren't useless. Tons of candidates have never seen a REPL before and are totally unable to solve even a trivial coding assignment.

I suppose your company is too clever to waste their time on such useless tests? Who at your firm wastes hours interviewing candidates who have no ability to code?


If someone has never seen a REPL before, it'll take us less than 90 minutes to figure it out, so we don't tend to waste applicants' time with those.

Going through someone's Github (or any other project they feel is worthy of sharing) and asking them questions about why they made the decisions they made has been orders of magnitude more illuminating than asking them to come up with an algorithm for solving the subset sum problem without Googling.


But now your process is heavily biased against folks whose work has primarily been for their current employer, and they don't have any reasonable side projects to walk you through.


How so? It's not like I say "oh, that's too bad then, sorry". It just takes longer to interview those candidates because we don't have that shortcut.


My fear would be that you wouldn't have a rigorous, well-tuned process for those folks, so there could be a lot of noise or randomness in their evaluations. And it could be very hard for you to compare them with the folks with extensive GitHub portfolios and resumes.


Perhaps, but what's the alternative? Don't look at anyone's OSS projects (and lose a LOT of valuable information) because it would put the people who don't have any at a disadvantage?


I think the main thing would be consciously correcting for that: the real value is asking about design decisions — it's my favorite technique — and just making sure that it's fully normalized that not everyone has those out in the open.

It's still easy to spot the liars — e.g. I've interviewed people who worked at the NSA and even they could talk about the skills they used, just not which projects or data — and the process of deciding which things to talk about is a pretty good way to explore their communications style, too.


Yes, that's what I generally tend to do. I present them with a scenario or a problem and have them walk me through how they'd solve it and what their tradeoffs would be.


Well, washing cars turned out to be the point for The Karate Kid... and humility before technique. I agree that few employers will be like Mr.Miyagi though ;


Ah, but Daniel was training, not interviewing :P


It's a kids' movie. But the point was humility before the art. Always in training. Shoot, Mr. m practiced teaching better by tending tiny metaphorical bonsai trees and catching flies with chopsticks, so he was not above being a student in training himself. I'm not saying it is everyone's philosophy or should be- it just cracked me up- the car washing reference- not to say that I disagree that these tests are more a sign of an employer I would not work for. Hey- someone removed the car wash analogy I was responding to! I thought it was funny. I think swe should push back against this kind of treatment when it's worth it to them. It is insulting.


I can only speak for where I currently work. Our phone screens take 45 minutes on average rather than 90. If you don't have 45 minutes for a coding phone screen, then you also don't have 45 minutes for anything else you just mentioned, so I actually find your response fairly disingenuous. In fact, you don't have time to interview with any company in any capacity at all.

We actually take great care in examining resumes and CVs before proceeding with a coding screen. We've had plenty of senior developers fail the most basic questions (think FizzBuzz), which is why we conduct these screens.


> Our phone screens take 45 minutes on average rather than 90

Even phone screens are better than "Here's a HackerRank link because I don't want to spend time talking to you, enjoy the next hour-and-a-half solving riddles".


I don't think I fully appreciated that HackerRank does not involve the direct participation from anyone at the hiring company. I wouldn't be on board with that, and that certainly makes more more sympathetic to the OP.


Yeah, that's what galls me about it. They even give you (the proverbial you) tests so you literally have to spend zero effort, yet you tell the interviewee to spend 90 minutes on it because it costs you nothing. If you want me to spend time on your process, at least spend that time with me. I want to learn about you as much as you want to learn about me, but you don't see me sending you a Google form with 300 questions about your company to fill out.


Yup, this is basically what I meant - but much better articulated. Something I need to get better at

10/10 !


You're asking the same of the candidate, though. You want them to write a unique solution to your silly puzzle tailored to your company. It's a two-way street.


Going on and on about issues you already brought up in the past, while they may be sensible, but for which you don't have the time or resources to fix just yet doesn't do any good either. So a constant complainer would be someone difficult to work with.

In the same spirit you could definitely see it as unreasonable for a candidate to suggest you adapt your screening process because they know better (even if it's said in a polite, validated way).


To your first point, yes exactly. The interview is as much mine as it is the candidates.

Not necessarily hiring to complete tickets as fast as possible, but some who can take a task and complete with minimal issues. I don't want to be stuck in meetings or arguing in PRs etc.


Would you really want someone to take a task and complete with minimal issues if the task does not add value to the organization or is counterproductive?

I don't know about you, but I would not want to hire someone who can take any task and complete with minimal issues. Where I work, one is encouraged to argue about what is not right in the meetings and offer better solutions.

This candidate is doing exactly that: Argue why a certain hiring methodology is not effective and what a better alternative is. Considering that this candidate does not just follow orders but challenges the status quo and the fact that he has volunteering-based projects to show makes this author very likely a good fit for my organization.


Let me explain a little better, and again I am only basing this all off the small amount of data we have.

Let me give an example as I am not the best at articulating. hopefully this helps.

Lets say I hired this engineer as Senior or Team Lead. Now I want the base docker image we use for node bumped a major version. I checked the changelog for the nodes releases and knowing our codebase I think its safe.

I could ask a Junior dev to do it, but I knowing that they are lacking experience this may seem like a "big deal" when really its not.

What I want is the node version updated, validation unit tests pass, regressions tests are good. And it to be released. If there is a failure along the way, address it or sure lets chat about it.

But this Email in response to hackerrank - would make me perceive this to be someone who would respond with a complete change to our CI/CD processes, to our infrastructure, maybe to even using Node - as this sort of task is beneath him.

Sure there would be areas this person might excel at, but some days little tasks just need to get done to keep the ball moving.


> would make me perceive this to be someone who would respond with a complete change to our CI/CD processes, to our infrastructure, maybe to even using Node - as this sort of task is beneath him

Looks like it is a difference in culture that I am used to and the one that you are used to.

At my workplace, it is perfectly acceptable for someone to suggest a complete change to our CI/CD process. In fact, we have changed our complete CI/CD process twice (SVN/build scripts -> Mercurial/Jenkins -> Git/Travis-CI) already with minimal loss in productivity because someone questioned the existing CI/CD process and suggested a well thought plan to switch to a new one.

But I get your point that sometimes it may not be feasible to carry our such a drastic change in process, infrastructure, etc. But suggesting such a change is going to be acceptable and we refusing to accept such a suggestion is also going to be perfectly acceptable and both this person and us working in harmony even after this disagreement is also going to be acceptable.


>But this Email in response to hackerrank - would make me perceive this to be someone who would respond with a complete change to our CI/CD processes, to our infrastructure, maybe to even using Node - as this sort of task is beneath him.

This makes me think that you're a poor judge of character and of a slightly authoritarian mindset.

This email is one of many protesting an industry interview culture that prioritizes badly thought through exercises that bear little relationship to the job being interviewed for.

>What I want is the node version updated

And do you really think that seeing candidates reverse a binary tree without protest will tell you how well they can perform at this kind of role?


This is really taking it to an extreme. Just because you don't fight back against some entry test doesn't mean you won't fight the important things.

> I don't know about you, but I would not want to hire someone who can take any task and complete with minimal issues.

Sorry, I don't want to work with a bunch of pedants. You can have them.


> This is really taking it to an extreme

No more extreme than suggesting that someone who raises thoughtful questions on a broken hiring process must certainly be a bad fit for an organization.

> Sorry, I don't want to work with a bunch of pedants.

Now, this is taking it to an extreme!


If they are assuming they know more than everybody involved and making suggestions to a process they haven't even gone through 20% of, then yes, they are probably a bad fit.

It's extremely hypocritical to criticize someone for the very thing you are doing (assuming the other person doesn't know how to do their job). Couple this with the fact that they are not asking for any advice on their hiring process, it's a pretty rude thing to do.

A little bit of fluff added to the wording doesn't make it suddenly polite.

> I would not want to hire someone who can take any task and complete with minimal issues.

Someone who can't do straightforward tasks without having an issue is incompetent, pedantic, or both.


If your company wants people to just do straightforward tasks without raising pertinent questions, your company sounds like a bad fit for many good engineers I know. For example, I personally, would never work for a company like yours.

I am quite lucky to have worked in companies where the peers and management encourage debates and arguments and do not take it as a sign of incompetence.

I had no idea there were companies that would take perfectly reasonable questions on a broken process as a sign of incompetence. Thank you for enlightening me. I now know to be careful enough to avoid such organizations in future.


Replying to myself as I can't nest further.

I never said raising issues is bad. Where I work, we highly encourage people to bring up issues as they see them.

However, when you bring something up as an issue, it usually helps to suggest a solution (which this original GitHub post fails to do) and we don't generally try to take unsolicited advice from people who aren't even part of the company yet.


The original GitHub post offers pretty reasonable solutions.


His only actionable solution solely applies to himself.


I'm always struck by how many people in this field I encounter who think it's not collaborative work and that it's "OK" to work at a desk with headphones on all day.

Maybe at a consultancy and only if you're far downstream of dealing with clients.

That's not normal, nor should it be.


Interviews are a 2 way street. Candidates have as much right to evaluate the companies that are trying to hire them as the opposite.

Not the OP but, absolutely I want a personalised interview! I want the company I'm working for to care about the people they hire -- not to efficiently fill empty seats. Yes, normally that means I tend to work for startups. I'm happy with that.

It's fair to say that you want to be able to evaluate potential employees cheaply before you invest a full interview. It's also fair for people to offer ways to do that evaluation rather than running through someone's maze. Neither side needs to accept the other's offer, but there's no need for either side to take it badly.

A "no" is quite a good result if the company would otherwise be wasting the candidate's time.


For a homogenous culture of a large corporation, where each dev is a cog in the system, yes, i would agree that this person will not fit.

If i had a start-up, i would definitely give this person a good old try, because i can tell that he/she is capable enough to churn out rather advanced projects with complexity higher than just CRUD. Programmers of this type is what i'd call 10x, and one should never dismiss a 10x!


I'm afraid I have to disagree. They're called 10x engineers because they're 10x as productive, not because you have to take 10x as long to talk them into not using Haskell for a basic CRUD frontend (remember, it's a startup, someone has to do that part - not everything is gonna be sexy to code).

If they're too cool to waste a single second conforming to a basic FizzBuzz test to assert that their resume isn't a lie, they're probably way too cool to do anything but write the most glamorous code in the most visible part of the product - which is the last thing, a startup - with too much work and not enough people, needs.


> using Haskell > too cool to waste a single second

Why are you so quick to extrapolate an entirely new character based on this person not wanting to use HackerRank?


>If they're too cool to waste a single second conforming to a basic FizzBuzz test

I'd be willing to waste 5 minutes tops, unless the employer has put some skin in the game (fizzbuzz is ok - nothing much more than that tho).

There's a 1,000 other employers out there who might be a better a fit. I am not going to do a 1 hour, 30 minute or even 15 minute task if they can't at least even be bothered to pick up the phone to talk to me or glance at my github profile.

Companies that expect completion of a weekend-filling exercise before granting you an interview are universally run by entitled assholes. You're actually doing yourself a favor by screening them out: they'll be bad to work for, you won't get to work with other 10x engineers and the company will likely achieve nothing impressive anyway.


I would be even more hesitant to hire for a startup! can this person grow with the startup? what happens when we have 10, 20, 30+ engineers - how will they work with the team - will they second guess everything? will everything be an argument?

I'm not doubting this persons ability - I'm only responding my opinion of this person based solely on this email.


What kind of startup hesitates to have arguments?

I have never been in a startup that fears arguments. Every startup I have been a part of has lively debates and arguments almost every other day. It's only the large slow moving corporate giants where I see such lack of debate and arguments on what is obviously wrong.

I would go to the extent of saying that a startup that does not encourage arguments in a harmonious fashion would die very soon anyway. Debates and arguments help in weeding out stupid ideas and focus on what that really matters.

This person's email shows that he can have a qualitative argument in a coherent, polite, and non-confrontational fashion - exactly the kind of people you need in startups!


I might agree if the author hadn't clearly listed their (very reasonable) objections to HackerRank near the start of the email.

I wish I had more teammates who could write as effectively.


A meaningful and informed debate is more useful to the company than writing a million lines of code.

You hire people to solve problems, not churn out code. Code is only a tool to solve a problem.


I expect a 10x to be effective, and to know when to pick a fight or not.

In this case, it definitively shows a bent for the innovative and smarts, but shows lack of judgement / wisdom.

For a 10x, merely completing the test is a lot faster and more effective than trying to go change the process from the outside.


Maybe he cares about the industry as a whole? By putting his reasons up publicly, he has triggered a debate about the issue. This seems like a very high cost-benefit ratio to me!


I'm not sharing the view on the difficult the work with part.

For me, this just means, that he is not accepting a solution to the problem, explaining why he thinks it is not a good solution and offering another one, which would work for him. Also, he is not dismissing the hackerrank test, but asking to evaluate his skills on a different way too.

As far as I see, this is probably the best way to argue with somebody, that their chosen solution to the problem is not the ideal based on your knowledge and experience.


This is my first thought as well. It costs a lot of time and money to interview and hire - I do my best to not waste candidates time, and I hope for the same consideration on the other side of the table. Been at two startups and two enterprises and have worked with dozens of great devs who wouldn't respond this way.

If I came across this in the wild, I'd reevaluate the parts of the interview I control to see if maybe I could make it less robotic and I'd probably still bring them in to make sure I'm not missing a good dev, but I would be fighting my bias at least a little. There is a small handful of people I've worked with before that would appreciate this approach and their toxic attitudes would prevent me from wanting to work with them again.

The interview process can suck, but this is not how I'd recommend standing out from the herd.


Depending on who you are, having a personalized interview may make perfect sense. I'd say hiring a senior developer or a team lead should always take it.


Agreed, but without knowing the context I responded on this emails face value.

I would also worry hiring a team lead/senior dev who appears to be combative from the initial screening


I wouldn't be concerned with their being combative. I'd be concerned that, without any attempt to make sure they knew the full context, they assumed ignorance or stupidity on the part of the hirer.

This kind of approach is fine for a junior. I'd even encourage it because there's an attempt to change the parameters of the problem which is something we often have to teach people as they progress.

For a senior position, not so much. I mean, it might be that they're ignorant or stupid, in which case you've probably dodged a bullet when they don't hire you. Or it might be something else entirely.

A more sensible approach, in my view, would be to ask what they were looking for with the HackerRank test in a subsequent face to face. If they say that they don't have a better way to determine developer competency then, sure, suggest that you may be able to help with that when you join.

If it were me interviewing, I'd be particularly interested in suggestions that a) were developed from successful prior hiring practices and/or b) not so bleeding obvious as "look at their Github page".


I would worry about a company who sends lead and senior devs to HackerRank to do junior level programming tests and managers who weren't willing to engage in a conversation.


[flagged]


Filed under sad-but-true. Worse, your ability to code doesn't make you special, and doesn't qualify you as an interesting human being to anyone outside of tech recruiters, and only then if you are able to produce code on demand in front of a whiteboard.

Thankfully, as a human being, you are not your ability to code. More importantly though, then it also means that people who can't code are worth just as much as you as human beings (more, if they've managed to learn social graces). If you don't hold it to be true, then code or GTFO.

Look for places like the Recurse center in NY that can help you find yourself in the context of being able to code, or more traditional non-traditional approaches like backpacking though India, or taking LSD in the Haight in the 60's (anyone got a time machine?).

If you'd like friends (who will be interested in your personality), go find some. Outside of work. Bonus points if you manage to find some that can't code.

Hint: companies are interested in your personality - if you come across as this caustic in a phone screen or in person interview, I'd be surprised if you get invited back. (Or at least they should be; Google's current HR woes are their own creation.)


I was only responding specifically to a candidate responding with this email if I had asked them to do a hackerrank.

While I can understand your leap to soulless masses - that was not my intention.


My comments are mostly sarcastic and polarized, so don't bother that much. Companies are missing out on a ton of creative talent, but they have to play safe and keep their recruitment costs low. I only understand that from a business point of view. Every other perspective suffers.


If that wasn't sarcasm, you should find a better employer ;-)

p.s. Even at the best companies there is some truth in what you say, but it varies a lot.


yep, it was, and yes it's a mix. :)


As someone responsible for hiring developers, these quizzes seem like an absolute waste of time. As an applicant it's almost insulting.

I've been a part of two great alternatives: a pair programming session with the lead dev and adding some features/refactoring a sample project.

I'd be curious if anyone here is responsible for hiring devs and finds hackerrank type tests useful.


I am responsible for hiring developers, and I do find online programming tests very useful.

They serve as a relatively simple early-stage screen for applications from people we've never met. Ours costs each candidate 1-2 hours. But we do not require cover letters, which in the good old days might have taken about half that time, and been thrown in the bin.

Some may think no CS graduate would fail a test that let you choose any popular language to implement some basic string parsing. But in practice about half the candidates fail this stage of the hiring process, which saves us quite a lot of time. Yes, it costs each candidate an hour or so, but that's a feature, similar to the oft-proposed idea that sending email could cost one cent to reduce spam.


If you don't mind sharing, what size company and how often do you hire devs?

>Some may think no CS graduate would fail a test that let you choose any popular language to implement some basic string parsing.

I don't see anything wrong with basic screeners like that, but I have experienced some really silly stuff. Recently I was given a test that asked ~10 questions (some trivia, some paragraph type response), a few small simple questions (reverse a string, etc.), create a class to handle card games (poker, blackjack, etc.), and create a user repository... in 30 minutes. I felt like a dog at a dog show.


45 person office, hiring developers gradually and continually. But what I wrote also applied when I was at a 6 kiloperson firm and we hired a hundred developers a year.

Some tests will seem impossible to complete in the alotted time. Often that's intentional. It saves time for the candidates and gives a better spread of scores (very few will get 100% in some test batteries). But it can be disheartening. For these initial online tests I try to give enough time that most people won't really run out of time unless they get stuck.


I've interviewed and hired many devs. I find hackerrank style coding questions very useful in interviews and I agree with the superiority of your alternative suggestions.

Keep in mind that these quizzes are only one single part of a multi-part interview. Also keep in mind that acting offended by whatever style of interview you get may reduce your chances of getting the job you want.

You might be amazed how different answers can be on easy code puzzles, or how deep of a discussion you can have over a single line of code. The easy questions might be easy for you because you're good, but often there is a low bar for the first round interviews for a specific reason: to weed out the people who have less experience than they claim and/or couldn't be bothered to prepare for the interview.

Also, when several or many candidates are being interviewed, it takes a lot of time just to administer low-preparation interviews. Pair programming, as nice as it is, simply can't be done by the lead dev for all the candidates without keeping him from his job coding.

Remember, the main thing your interviewers are trying to do is compare candidates against each other, so they need standard a way to see who's better than someone else. Hackerrank type questions are definitely not ideal, but it does what it says: rank people against each other.

I would absolutely welcome ideas for being able to rank people in programming skill with some method that is closer to pair programming but takes less of my team's time. The suggestions in the article here are lovely, but they don't help someone who's interviewing because they take too long to evaluate, and they're different than anyone else so they're much harder to rank candidates.


> how deep of a discussion you can have over a single line of code

That's the problem with HackerRank: You can't! Every single time I've tried one, it was a dismissive "do this on your own time and we'll check your answers".

Not to mention that their question sets tend to be full of puzzles, which are the type of thing where I'll have an epiphany over lunch, rather than something I'll figure out how to optimize in the ten minutes I have to code the solution.


> That's the problem with HackerRank: You can't!

Agreed, this is why I give my own coding quizzes, so I can have a discussion about it. I'm more interested in the thinking than the answer.

But, I do have sections in my interview that test knowledge and not skill, so I can still see the usefulness of letting Hackerrank be a part of the process.

The one thing I don't claim is that HackerRank or coding quizzes are perfect. This is why coding quizzes are only one of maybe six phases of an interview.


I've never used HackerRank personally (although I'm looking into for the next round of hiring I'll be involved in), but it seems it might be kind of useful as one step towards deciding which of the 50-100 candidates that applied you should invite to the pair programming session. You simply cannot have your lead dev doing pair programming sessions with 50+ candidates for each job opening.


I think that is a great response. But you also should be prepared for them to say no, not because your proposal is bad, but because many hiring managers want to put all applicants through the same hoops, to understand better how they all compare when having to decide between 5 people who all could do the job well.


Not just that, but doing a completely custom interview just for this one candidate is a lot of upfront investment to make in someone you may not even bring onsite for the full interview.

All the caveats this candidate mentioned about standard coding screens are true, but they can all also be taken into consideration by qualified interviewers.

There are flaws in this candidate's proposal too. In particular, their proposal does not satisfy their implicit criteria that the interview should mirror real-world conditions, because they chose their own projects with which they are already intimately familiar but the job most likely consists of working on a pre-existing codebase that they know nothing about.


> In particular, their proposal does not satisfy their implicit criteria that the interview should mirror real-world conditions,

Real world conditions like these?

>> (1) time limits, (2) forbidding research on Wikipedia or StackOverflow, (3) forbidding collaboration, and (4) forbidding the use of libraries


Real world conditions like the one that you edited out of the sentence you quoted. The point is that neither exercise perfectly mimics the job the OP is being considered for, and they fail to do so in different ways.


> It asks for small algorithmic coding puzzles

There is no mention of "working on a pre-existing codebase that they know nothing about" in the description of the HackerRank test... so I don't know how your point applies?


Sure, it's very hard to fully approximate that aspect of the job in a quick coding screen. Small algorithmic problems don't come close in the grand scheme of things. But they still put you in an environment and context where you don't have the advantage of being an expert ahead of time.


> But they still put you in an environment and context where you don't have the advantage of being an expert ahead of time.

Yet by forbidding the use of external research and libraries they remove the two main tools I would want some to use "in an environment and context where you don't have the advantage of being an expert ahead of time"


Sure, that's not ideal. And the more that I read about HackerRank specifically the more I'm convinced it's a step back from boring old phone screens. We do the latter with a Google doc, and while it's technologically primitive in comparison it gives us complete flexibility and ensures the candidate can always ask any questions they have, either about the problem or about the company/job/etc.

The problems should be chosen such that external research and libraries are not needed. For our phone screens, we don't even require the code to compile or successfully run. For instance, we explicitly tell candidates to just make something up that sounds reasonable if they need a standard library function that they know exists but they can't remember its exact name or type signature.

We've never used HackerRank, so I don't really know how customizable it is. From the comments here, it sounds like it's designed to be fully automated with no participation from any developers at the hiring company. I don't like that at all. When I wrote my original comment, I'll admit I was thinking of it as a more advanced Google doc for programming, not as a fully automated platform. That's my bad, and I should have done my research a bit more.


>>to understand better how they all compare when having to decide between 5 people who all could do the job well.

Seems like a nice way to hire carpenters, not programmers.


> unnatural conditions including (1) time limits, (2) forbidding research on Wikipedia or StackOverflow, (3) forbidding collaboration, and (4) forbidding the use of libraries

The above indeed does not make sense, unless you're hiring a solve-puzzles-as-sports person.

I don't think it's enforced by HackerRank, though. It must be the employer's requirement. If so, their hiring process does have problems.


I think this is enforced by HackerRank, colleague recently griped that they couldn't set the time limit higher or get rid of the messages forbidding x,y,z.


Many recruitment agencies won't even talk to you until you pass some FizzBuzz test on HackerRank or similar. Even Facebook strongly suggest you to take their own training based off similar platform and Google does something similar. So it seems that even entry level jobs these days require Googlesque excellence just to get your foot in the door. It's similar to law firms requiring you to take parts of bar exam during your interview or physicians to perform autopsy during interview. Even worse situation is with Machine Learning now, where you are expected to answer PhD exam-style questions for entry level data augmentation jobs. Unless you are from Top 10 school your credentials don't matter at all. It's IMO complete insanity and I am throwing such companies out of the door instantly unless they offer $500k+/year. Then we can talk that way.


If "Googlesque excellence" is passing FizzBuzz then I am severely undercompensated.


FizzBuzz is a bit of understatement, most of those tests are alike once you practice a bit and sink into trivial category; some companies actually give you way more difficult questions than what you get at Google/FB etc. and after you pass that terror then present you with an offer where you don't know if you have to laugh or cry. I haven't seen a single company doing that outside top 5 to compensate you properly for it. Everybody wants the best, everybody thinks they are the next Google (well, they are far from it), and everybody thinks coders are stupid and don't value their craft (which they don't it seems).


Indian IT services and consulting firms long realized these problems. Its just not possible to expect to hire the best and expect them to work for McDonalds burgers. So they state honestly what they want and what they can pay.

At the same to be cognizant of your business, profit margins and by that definition what you can pay and remain profitable is a good thing. Not every shop has to be a world changing venture, and if you can pay low and hire people good enough to run your business is just perfectly Ok.


> I haven't seen a single company doing that outside top 5 to compensate you properly for it.

There are small financial firms which will conduct significantly harder interviews than Facebook/Google. The offers are also commensurately higher (significantly so).


And that's totally fine. If they offer you 500k or work on space ships/self driving car core then I am willing to go through a grueling interview process. If all they offer is 50-80k and a vision of making founders rich, they can go literally stuff themselves.


That was exactly my thought. I was doing more complicated code than FizzBuzz at 7 years old and I don't consider myself even a mediocre programmer.


Yeah, here I was, just happy it's moving from whiteboards, and all these people are complaining about it...


Nope, it's not moving from there. HackerRank is now the step 0 before the whiteboard interviews even start. At best it removes the technical phone interview.


My regular policy is to ghost any employer who throws a HackerRank test at me. This is usually a strong indicator that the work environment is incompatible with my values.


I politely tell them I'd be happy to have a call or phone screen with them, but I don't do automated puzzle-type tests. This gives them an opportunity to give me their side of the matter and also gives them a signal that at least one candidate dislikes automated puzzle-solving tests.


Never ghost anyone. It's so rude.


US companies ghost candidates all the time. They actually do it on purpose, partly out of a fear that explicit rejections (especially with reasons given) may elicit lawsuits.

Our applicant tracking systems won't be upset if you ghost them/us. Your application will simply expire after a while.


Ghosting individuals? Sure, definitely rude.

Recruiters acting in a professional capacity or companies, both of whom would ghost you without a second thought? I gotta say I don’t really see the problem.


As a hiring manager, I personally don't use HackerRank (or anything similar), but I'm thinking about it. My issue is that many of the people who I come across (most of whom claim to have backgrounds in CS) don't have even basic coding skills. For example, "write a function to reverse a string in a language of your choice" baffles them or takes 20 minutes to write, even though it was meant to be a quick warm-up question. If I know someone is strong coming in (for example, someone I trust recommended them), I will tailor the questions more to them, but otherwise, giving some basic coding problems weeds out a lot of people and saves everyone some time.

Even a short phone screen where I just ask someone to code a simple question takes 20-30 minutes of my time (plus however much time I need to get back in the zone), so HackerRank is appealing if only to weed out the very worst candidates. I'm not familiar with HackerRank specifically, but I imagine you have some choice as to how to set it up. If I could set it up to give candidates plenty of time and ask relatively straightforward questions to weed out people who don't have the basics down, it would be a huge time saver for me.


> Even a short phone screen where I just ask someone to code a simple question takes 20-30 minutes of my time (plus however much time I need to get back in the zone), so HackerRank is appealing if only to weed out the very worst candidates.

But you took 20-30 Minutes of their time too, the only difference is that you get a compensation at the end of theses 20-30 min, they don't. If someone told me, "OK , i m gonna waste 3 hours of your time in exchange of a mere promise of a job", i will simply decline the job.I work 9hr/day , I have better things to do with my free time...


> But you took 20-30 Minutes of their time too

Yeah, with often very high ratios (I've seen above 100:1 in positions where I had information more than once recently) applicants for open positions, hiring simply isn't going to work if it requires symmetric time investment from hiring managers and applicants.


I'm assuming that you don't expect companies to hire everyone who applies and therefore some candidates are going to have time wasted. What do you think is a fair amount of time to expect someone to give for an initial screening?


My longest and latest job interview lasted 3 hours but we talked about the goals and the visions of the company (that part doesn't bother me), the technical part (code with a pen + questions) lasted about 15 mins. But to set a threshold, generally i ask if the test requires more than 1 hour, if yes, I decline politely.


Coding questions are not language independent though. You might as well ask to write a monad transformer in a language of their choice.


Of course the question is biased against certain programming languages. For example, in python:

  def reverse_str(x):
      return x[::-1]
works. If you remember this notation, then you'll have this problem done in 30 seconds or less. But even if you don't remember this notation, I expect a candidate to figure out some way to reverse a string within 5 minutes in some language. I can think of engineering roles that rarely work with strings, but in the roles I hire for, we use them a lot and so I want to know that you have the basics down. If you know that:

  * strings are simply arrays of chars
  * how to access an item in an array
  * how to write a for loop
Then you have the tools you need to solve this problem. Are there any common languages where this is a particularly difficult problem (I'm genuinely curious, not trying to be obnoxious... if so, then I might consider changing the question for the future)?


I am with you. Although most modern languages would offer shortcuts to reverse a string but the spirit of this question is to see if a candidate has the mental agility to come up with a solution purely from ones knowledge to use a programming language and common sense.

One should be able to devise a solution to a simple problem like this without any CS course at all.


> strings are simply arrays of chars

or code units/code points/grapheme clusters/emojis. Thanks to hard work of many developers string handling becomes easier over time, but I don't think it's trivial if you don't exactly specify what you mean by "string" and "character".


I can't speak for chadash, but I'm pretty sure most folks who know to ask questions like this are probably going to pass the interview. They'll ask the right questions, and the problem will be simplified to a form that is solvable in a few minutes. So I don't think this is any major hurdle.


I think you and I are arguing semantics then. The very question "what do you mean by a string?" already indicates that you might be familiar with some of the differences between unicode and ascii, for example. In that case, I'll clarify what I mean depending on the language the candidate is most comfortable with. For example, if they plan to use C++, I might clarify that they can assume that the string is an array of chars containing letters a-z. I really just intend it as a filtering question, but someone can definitely get bonus points if they ask intelligent questions to clarify the problem.


You can't give those answers on computer aided code testing sites. That's why those tests needs to be long, verbose and boring so the questions will be obvious.

The human touch.


How often does one have to reverse a string? What is the purpose of such a dumb test? How often have you had to do such a thing in the real world (outside of tests such as interview questions?)

I suppose you could make the argument we do have to reverse arrays, but strings? Give me a break, only idiot programmers spend their time practicing for useless programming interview questions.


Does one really need to practice to reverse a string? Do we now live in an age where a programmer cannot reverse a string purely from basic knowledge about programming and common-sense?

Reversing a string takes 2 minutes or less even if all you know is how to work with strings and how to write a for-loop.


I'm not sure if you have ever been involved in the hiring process from the first stage of screening resumes, but my experience has been that when you post a developer job, many people will apply with very weak coding skills and those people need to be weeded out. Some of them have strong-looking resumes, but I often come across people who stretch the truth on their resumes. So when I do a phone screen, I start out with a basic question that surprisingly weeds out a lot of people. I let candidates code in a language of their choice after hearing the question.

Is reversing a string something I do in the real world? Very very rarely if ever. But it's not meant to be a question that simulates a real world coding problem. The point is that it's a very simple problem that anyone proficient in almost any coding language should be able to do. And I don't know anyone I've worked with who wouldn't be able to do this in 5 minutes or less, with or without practice.


It seems to me that this is a well-written, polite, non-confrontational counter-proposal.

My opinion is that the company may have two responses that are both valid and legitimate: i) "Sure, go on, nice idea!" or ii) "No, sorry, please follow our established hiring practices".

Now, if the company takes that as arrogance and that email only is reason to eliminate the candidate, the email still actually worked as a great way for the candidate to eliminate the company. If a company punishes a polite, thoughtful disagreement from a candidate, it must be a horrible place to work for.


I think it's probably a great way to understand the culture of the hiring organisation and to see if your approach would work with theirs.

It'll probably be relatively unsuccessful at a bigger company with worse internal comms, with an HR function that's too far removed from the engineering team.

I'm sure you'll find a job that suits _you_ with this approach, though.


Not being a programmer, nor a recruiter for IT jobs, but having some experience in recruiting in my professional field, it doesn't look to me like such a great letter/proposal.

Mind you, this might also depend on the specifics of the ad/request Mr. Fasiha was responding to.

I mean this same letter if received from a senior developer would be received very differently than if coming from a first time or junior developer.

What strikes me as negative, is - beyond the unneeded citation - is the sneaky/flattering tone (IMHO) or - maybe - failed attempt at humour in this sentence:

>I'd never heard of HackerRank, but after you wrote two other employers sent me their own HackerRank tests. Having worked on those tests first (I considered them practice, for the real thing with ABC :)

Then right after having confessed an almost total ignorance on the test, and only two previous experiences with it, the Author goes on at length enumerating in detail why and how the tests are "wrong".

I would have more liked a sentence to the effect of either "after having gone through these tests n times I find them inaccurate" or "never heard about these tests, not being familiar with them I fear they might not reflect entirely my potentiality".

Pontificating on something you just stated not being fully familiar with doesn't sound that good to me.


In their defense, they probably have a very difficult time weeding out candidates that don't know anything about programming. It seems like this is the new alternative to a 30 minute phone screen, and I bet a lot of candidates actually like it. But it's good they have your feedback, and if they aren't too crusty, they will use your demonstration of knowledge in stead of your HackerRank score as proof you know your stuff and pass you on to the next level.


I doubt being pissy against the recruiter is a good strategy for actually getting hired. It might score you a few bro points on HN though.


You probably might as well have written 'no' for all the difference it will make, but I have to commend you on the carefully worded and actionable bits in your reply.

If I were the prospective employer I'd probably write you back that before we will invest into looking at your production we kindly ask you once again to jump over the low bar that was set for all applicants. Then again, if I were your prospective employer I'd never have used hackerrank in the first place because I feel that to expose a potential recruit to a third party service would be a breach of confidentiality and besides I feel that such services are - as you correctly identify - ill suited to picking the people I'd want to work with.

It's akin to a luxury fizz-buzz test.


When looking for a new job I typically run a few applications at a time since companies are so unreliable and, frankly, I don't have the time or inclination for

* 5 x 45 minute phone screens

* 5 x 2-3 hour coding test (some of which will be the same)

* 5 x 3 hour face-to-face interview

Over the course of 2 weeks while attending my current job. Companies should consider this when trying to hire "exceptional" candidates who value their own time.


Boom. Hired.

If any of the candidates I've interviewed and hired had this sort of independent and outside-the-box thinking, I'd have doubled their salaries when I hired them.


Have you actually made an offer to that person?

Do you have the power to double salaries of people in your org?


The implication seems to be that gp has never interviewed and hired people who "had this sort of independent and outside-the-box thinking".


If the implication is true, that would be a data point.

If the implication is false, it would be an exciting data point!

HN being what it is, here is quite a non-zero chance to meet a person with real hiring power who really could have made an offer to the person in question.


The GP's sentence was in the conditional perfect (would have), which means he never met someone like that (otherwise he would have said "did").


But, did you use a recruiter for hiring?

Seems to me like an org that uses a recruiter isn't looking for "outside the box" employees. Obviously they aren't sourcing candidates with outside the box processes.


In addition to my other projects, I've also added the code of all HackerRank problems I've solved to a repository on Github. I link that profile whenever I look for a job. This way the recruiters have an abundant source of code samples they can look at when making their decisions.


I wonder what happened to human discernment. It’s like people think liars get away without detection. The only reason a person who bullshits an interview gets hired is because the interview was a formality to begin with; eg. Friend of management who the whole interview board knew was BSing but also value their paycheck too much to object. Yea, we don’t want that situation, and clamping down on nepotism etc. at the candidate level is just wrong. “Boo hoo, too many candidates, lets engineer a rube goldberg machine to make us feel objective.” Just treat candidates as people...

I can’t imagine hiring to scale product development inside such a dirty room. The most successful businesses I know of simply don’t complain about these things, nor have personnel problems; people do the work that needs to get done with a good attitude etc, with little awareness of title... acting more like “mom and pop” businesses who value relationships.

How is any company building an awesome thing with an awesome team, with word of mouth not bringing a torrent of personal references from the rank and file? The good ones have that going on in my experience, there is just a glut of shit rung employers (and candidates) here shaping our views toward defensiveness.


> Would ABC be willing to work with me to define a better way...

"Better"

Open source contributions carry a set of particular demographic biases to a hiring process. They skew things towards comparatively well-resourced white men.

There's certainly an argument to say that open source contribution is an indicator of ability, but there are other ways to assess ability which don't introduce such a heavy skew.


This tells me that author was never involved in recruiting people. He may be smart (even exceptionally so) but that can only be validated through a direct interview. However since a lot of people (and I mean A LOT) cheat in their CV and even GitHub portfolios, getting upset over "show us that you can do anything" minimal bar test is something I'd rather not get in my mailbox. It's polite and well worded, that's true, but shows that he doesn't understand the realities recruiters are facing. I'd respond to his mail explaining why these tests are mandatory but inevitably I'd have to treat him like a child that faces the world for the very first time. I guess he should ask himself: do you want to be treated exceptionally throughout the recruitment process? If you think you're that unique, you're probably wrong (and that level of detachment from reality isn't looking good).


> getting upset over "show us that you can do anything" minimal bar test is something I'd rather not get in my mailbox

A minimal bar test shouldn't take 90 minutes. If you want a test like that, ask a FizzBuzz question, which is solvable in ten seconds and will be just as good a discriminator. Asking people to basically solve riddles isn't productive.


Well, although I'm not one of these types that is insulted by online coding challenges as a hiring prerequisite, I think they're probably a lot more pointless than you believe. I've been working as a developer now for a little over 25 years - although online coding "challenges" are a relatively new thing, I've been given actual sit-down, pencil-and-paper, quiet room for an hour aptitude/language trivia tests as prerequisites for jobs in the past. This was actually the sort of thing that certifications (remember Java certifications?) were supposed to obsolete but never really did.

Last year I found myself back on the market for the first time in quite a while and was presented with an online coding "challenge". It was actually really trivial, but I failed it anyway, because I'd never done one before. I'm used to coding in an IDE (or just in good-old vi), not in an online editor, and not with a ten minute time limit. The "challenge" was to write a Java function that would take in a number in words (like "four") between one and ten and spit out the numeric value of that number (like "4"). Well, it was timed, and I sort of panicked, thinking I wouldn't have enough time, so I jumped into it without reading the description. I skimmed over the description, and though I had to write a Java _program_ that would accept a _list_ of numbers, parse the list, and output their numeric values. So I hurried up and started coding in the (completely unfamiliar) online editor. Then I copied and pasted the whole thing into an editor on my local machine so I could compile it and run it and check for silly mistakes (since I was under the gun). Only after I had verified and tested it locally did I re-read the description and realized I had done the wrong "challenge"... so I tried (with three minutes on the clock) to refactor it so that the part that read in the number in words was a function inside my overall program. With maybe 30 seconds to spare I had refactored and re-tested it with a note that (/* here is the function you asked for */). Well, they failed me. Why? Because I took way too long to complete such a simple task...

Now, if I had to take another one of these today, I'd read the instructions very carefully (I'd probably spend the first minute reading and making sure I didn't overlook anything - which of course we should always do anyway) - but it struck me how infinitely game-able and simplistic that portion of the modern job interview is. It doesn't much measure programming ability so much as your familiarity with that sort of exam, which us old folks ain't.


Evaluating someone based on their GitHub repos isn't trivial at all, and it's not something a (non-developer) recruiter generally can do effectively. At the stage when HackerRank is relevant, the recruiter is trying to decide who to put in front of a technical interviewer.

It's important to keep in mind the big advantage of tools like HackerRank: They're scalable for the employer, allowing the employer to take a chance on more candidates.

Without something like HackerRank, recruiters will tend towards lesser heuristics, such as top schools or top firms on candidates' CVs. While HackerRank has its issues, it's certainly a vastly superior heuristic than the alternative for those many of us that don't have that kind of CVs.

It's also relatively scalable for the applicant, because it is asynchronous, and can be taken whenever convenient. For many people in jobs, taking a phone interview during business hours isn't easy.


Nice, I wish i had a bit more code to show off on github, as most of my stuff is in house. Hackerrank is such a crap way to evaluate engineers.


Hiring managers need to be sure they're being fair to everyone. How can they do that looking at your side projects? They need a way to compare apples to apples.


Regarding the need to compare “apples to apples”:

(Manager, rummaging through an apple barrel)

“... apple ...” (toss)

“... apple ...” (toss)

“... apple ...” (toss)

“... fist-sized lump of uncut diamond ...” (pause... toss)

“... apple ...” (toss)

(Days later)

“Yeah, I found 2-3 decent looking apples... most are pretty bruised, though...”


But hiring and the work force AREN'T fair. My performance review, salary increases, and bonus aren't based on some normalized criteria, we're rewarded for going above and beyond.

Even on the surface "fairness" isn't really the objective, because there are going to be different hiring managers and interviewers throughout the whole process. The salary negotiation isn't going to be "fair" in this way.

I'd rather have someone who had a rich github history and a record of real accomplishment than someone who had none but could produce a good hacker rank score. Hiring is the most important thing that we do as managers, I'd be selling myself short if I didn't take it all into consideration.


Honestly, HackerRank is a pretty standard and easy test. I really think it's a reasonable test, at least more reasonable than some. I've been given much harder take home tests:

https://austingwalters.com/you-are-given-a-deck-containing-n...

However, HackerRank is just a screen on:

1. Are you going to be difficult

2. Do you have basic coding skills

Typically, I'd interview at least 10 people before I'd give an offer. Once we added improved screening we got that number down to 5 people before an offer (note screening wasn't HackerRank).

I think it's reasonable to screen and HackerRank is just that, it's not about complexity.


HackerRank isn't a test, it's a platform for testing; individual employer tests on that platform can be more or less reasonable.


Alright fair, I intended my meaning to be "HackerRank type of assessments - limited time, basic, etc."


Your comment with the intended meaning is still incorrect.

HackerRank test can be as standard or as non-standard, and as easy or as difficult as the individual employer wishes it to be.


I can see giving a test like this for an entry level job, but for more senior positions it doesn't really make much sense to me. I'd rather show off a bunch of projects I have under my belt or code I've written in the past.

For example, I haven't had to write my own algorithm to parse a b-tree or implement binary search since I left school. I could explain how these algos work, but to actually implement it perfectly in python or java under timed conditions with no outside docs, I would most certainly fail and the company would miss out on a pretty good generalist.


The point of an interview process isn't to find out stuff about you in isolation; it's to be able to compare you to other candidates. That's only possible if all the candidates go through the same process. Also, processes get calibrated over time. The most bewildering thing to do as an interviewer is to try a new process, because it's difficult to tell how a candidate did without having collected some other data points.


This is not going to work because it is unfair to other candidates, who did the tests. And it is impossible to avoid any coding question later either.


> I'm hoping ABC's recruitment policy is flexible enough to let me offer alternative, or at least parallel, routes to quantifying my skill in coding [...] Would ABC be willing to work with me to define a better way to check my technical qualifications by choosing one of these projects?

It's good to see someone take the initiative to express this, but IMHO, it would be even better to just take the initiative to contribute to one of the proposed open source projects and put it on your resume, and participate in the Hackerrank part of the interview.

I like the proposals, and I'd probably land on the side of impressed if a candidate I was interested in sent me a letter like this. But, I still need a quick way to screen people, and I also need a set of standard questions that all candidates get so I can compare & rank them. I don't use Hackerrank, but I do ask easy weeder questions in the same style.

Then, after the candidate passes the easy part, I look at their portfolio of work projects and side projects, and consider everything they have to offer.


It is difficult to believe that the person who knows how to sling slang like "chops" (technical command and facility in a given domain)is the same person who is only just hearing of HackerRank through an employer's request. Also saying condescending things like "cute little" in your response takes away from your earnestness cred and makes you seem angry. No one wants to start off angry with a new hire. That said, you have a right to be angry when an employer chooses to "batch process" you like just another piece of data. While your proposal is great and it shows you go above and beyond, and employer who uses HackerRank isn't looking for above and beyond. Use it to weed out employers who won't meet you halfway as a partner- the way you want to be met. If you are looking to work with a Willy Wonka, consider the thought and care that went into his job interview.


You are not alone in your frustration, and I suspect most people here will sympathize with you as this topic comes up quite often in the software community. Just be aware that drawing this kind of line in the sand is going to greatly limit your options.

If you want to be evaluated in a more holistic manner (including side projects) you'll probably have better luck with very small companies. When the people in charge will actually be the ones working with you every day, and they are only filling a small number of positions, they will be more likely to find it worthwhile to get to know you as a whole person during the hiring process.

Unfortunately, once a company is beyond a certain size this just isn't possible because it doesn't scale. They have to fill hundreds or thousands of positions and also maintain a universal set of hiring standards. Things degrade into a game of numbers. This makes cookie-cutter tests almost inevitable.

While frustrating in their own right, for me what makes things worse is that you have to do one of these screens for every single company you apply to. And most companies have the same evaluation goals for the phone screen stage (e.g., do you actually understand data structures & algorithms).

What I'd really like to see is the emergence of something like a "common app" for software hiring. Outsource technical screening to a reputable third-party, and once you've proven yourself by obtaining a good enough "score" you can move immediately to on-sites (what constitutes a "good" score would vary by company). This doesn't solve the problem of the efficacy of technical screens, but it at least cuts down on all the redundant effort.

Two services I've tried so far that are doing something like this are Interviewing.io and A-List. Unfortunately it seems these services merely make it easier to get a phone screen, rather than replacing them. But it seems like a step in the right direction.


In general, I find that assuming that other players will act rationally or in their own best-interests (according to my subjective definitions) is inadvisable. If OP has a major problem with the quality of their hiring process then, by extension, he could also have major problems with his potential co-workers and the organisation's culture.

The value proposition of investing time and effort into interviewing with this company appears to be less than, say, interviewing companies whose priorities are well-aligned with OP from the get-go. That being said, these kinds of "coding puzzle" screeners aren't going anywhere, and may lock him out of great opportunities at great companies.

"I'd rather have it and not need it, than need it and not have it."


Evaluating side projects is a perfectly valid way to document a software engineer's potential value to a company, but that's not really the point of HackerRank. The purpose of HackerRank is to be a coding screen - that is, a test of basic ability to code simple algorithmic problems under moderate time pressure.

I have taken a number of HackerRank screens myself, and I have never seen one that either (a) tests beyond the coding level that would be expected of a fresh CS graduate or (b) is not vastly exceeded in scope and complexity by the coding challenges given during the onsite, which do allow considerably more flexibility and relax some of the artificial constraints.

Why attempt to circumvent a test that is meant as a slightly less trivial FizzBuzz?


I don't think I can find it right now, but I recall a comment by Patrick MacKenzie (https://news.ycombinator.com/user?id=patio11) to the effect that companies that have onerous interviews often also have a "cheat code" path for highly accomplished candidates (well known figures, or someone who's strongly vouched for by someone highly trusted within the company) who find the normal interview process unwelcome.

This response seems like an attempt to engineer that path out of nothing. Good luck, but you can also avoid these interviews if you can make those connections/build your reputation to the right extent.


I think this is a perfectly valid response if you are senior/experienced/specialist and asked to do these impersonal quizzes. "We need to filter out the idiots" is not a valid reason to waste an experienced candidate's time either.


There's no question that some questions are inappropriate for senior hires. For example, if someone comes in with a lot of open source work, I think it's probably wise for the hiring manager to devote some more time and personalize the process a bit since that person has already has signals that they are probably good (or at least more likely to be good than most candidates).

But most developers (and I'd venture most good developers) don't have reputations that proceed them. Since it's hard to separate the wheat from the chaff, I think that a quick coding quiz is fair game so long as it doesn't waste too much time. For example, if I were interviewing, I'd probably be willing to devote about 30 minutes to this sort of thing, but more than that and I'm probably not going to bother unless I'm very interested in your company.


Sure, valid points, and agree there's a place for this type of screening. I'm mostly referring to when you're experienced, and approached by a company via an on-site recruiter or employee referral. You are busy and not actively looking, but then trying to then feed you through hackerrank quizzes or whiteboards is just so off-putting.


My experience has been worse: After I'd do all that, they said "great, we'd like to hire you at 80% your current salary!". It angers me.

Nowadays I say up-front "I just want to mention this because it's generally been a sticking point and I don't want to waste your time, I'm looking for a salary in the range of $X". That has saved me a whole bunch of time.


Agreed. I've seen this a lot myself. Companies want you to jump through hoops for them, but the most qualified people for the job probably don't have the time, patience or desire to do so.


I have had the misfortune of doing a few HackerRank tests where the problems were not prepared well.

For example, the correct answer does not appear in the list of available options, or where the problem statement is not precise enough to solve in an unambiguous manner.

There is no human I can talk to and ask clarifying questions to resolve the ambiguity because, you know, it is a HackerRank test!

After going through these experiences, I have decided that HackerRank test is just not worth the time. As a rule, I decline any request to take a HackerRank test citing my reasons as politely as possible. Surprisingly, more often than not, the recruiter is happy to setup a telephone round where I can talk to an actual human.


One the one hand, I agree about the mismatch between hackerrank and engineering skill. On the other, I also suspect there are many engineers who can code amazing personal projects who lack the motivation/communication to handle the kinds of maintenance tickets you'd likely see in a mediocre codebase for a noname b2b (or whatever the job is).

I tried to build my own coding test that is based on refactoring based on changing requirements: https://alexrohde.com/public/zennish/index.html#/challenges


I'll admit my initial reaction to these sort of requests can be pretty negative, I did find this letter well written and wouldn't have a problem with it if I received it.

That being said, depending on the type of company and the number of candidates they are dealing with, I wouldn't be surprised if they simply ignore your letter rather than trying to deal with it. If you have 60+ more or less qualified applicants for a single job opening your first job is to get that down to less than 10 as quickly as possible and throwing out anything that doesn't fit into your template is a quick and popular first step.


I worked in a job a couple of years ago with a small team that was hiring quite fast so it was typical to have to evaluate 10 applicants a week. Since as leads and seniors we were very busy Hackerrank was a useful way to evaluate lots of people without much effort and easily compare them by “score”. That said I regret it because the results were not as good. Every candidate is different enough that each interview turns out completely different. I think a better policy is if you’re too busy to give people the attention they need as they go through the pipeline - just wait until you’re not busy if possible.


I have no allegiance to the HackerRank or the current hiring process of most Bay Area tech companies. The basic formula is: first a chat with the recruiter/hiring manager to establish interest; follow up with a screener that is a take-home exercise, HackerRank exercise, or phone interview with an exercise; then a four to five hour on-site. This is a lot of time for everyone involved.

What are the alternatives?

They need to minimize time, give everyone a fair chance, and improve the signal. I certainly wouldn't say the current method is great at meeting those criteria.


Good luck but they may just want a robot who shuts up and conforms. Despite some people here saying the balance of power does not necessarily rest with the employer, in some cases it does if there are many desperate job seekers who are willing to jump through hoops. You may want to apply to specific smaller teams and/or do your own thing. That said, if you do bite, I have learned a lot from my stints at places who hire like this. The biggest lesson I learned after several years is doing my own thing is right for me.


Way to go!

IMO If employer is adamant to rely only on cookie cutter first round interviews, then it’s probably not worth joining such places. It’ll be filled with people who are great at cracking such interviews and believing that these cookie cutter interviews are the only way to go.

There will be people on both sides of this debate, pro and anti.

If you don’t believe in solving algorithms/ hackarank type initial interviews, it’s good to challenge such requests.

If you are fine with it, that’s great. You and the employer have the same thinking. And it’ll/ May work great!


No, no, no. They have the job, you want it. That email comes across so arrogant that I would expect even the newest hiring manager to laugh and delete.

Without even addressing the sour grapes attitude about coding interviews, the sheer arrogance with which you try to dictate someone else's process is a red flag in the first place. That, plus the fact that you're refusing to do what they want, is really bad for your chances of being hired.


His reply was gracious and well thought out. I didn't get a vibe of arrogance or sour grapes myself. The job hunt is a mutual process...employers are looking at candidates and candidates are looking at employers. If an employer doesn't have a process that fits a candidate's personality and values then it's better for both sides to simply move on. I think this response does an admirable job of beginning that conversation.


I've pushed against tests like this before, especially "sample projects".

My experience doing so falls into exactly two categories:

+ Companies that get very upset (one even had the CEO email me cursing me out after I said I wasn't going to remake a twitter API client considering I had a github full of API clients including one for twitter already!)

+ Companies that go "Oh, actually yeah, that seems to make sense. Can you highlight a few repos you'd prefer to show us, or do you mind doing some whiteboarding with us?"

You never, ever, want to work for the first category. The first category of companies are the same people who usually expect you to work a lot of additional hours for free, have poor internal practices at least around work/life balance, and generally treat their engineers like code monkeys instead of people.

So, I usually push back against these tests because it's very revealing to do. Even if you end up caving, it's important to test the companies response to a bit of polite push back.


> They have the job, you want it.

By definition, if they have a job, they want to fill it with a qualified person. Jobs aren't (usually) charities to the person working.


Qualified is something they've defined as "passes this interview process" so I don't think trying to get out of it will be a "yes" too often.


> They have the job, you want it. Are you sure? If they have shitty processes and use shitty tools to evaluate the quality of an applicant - I am not sure, that they have the job someone wants.

This isn't a one way street. As an employer I want the best possible candidate. I want someone who can think on their feet and is able to say no to unreasonable demands. I want someone that brings his own perspective to the table.

If I want a code monkey - I would advertise for one.

And as an employee I want an employer who values my brain and my problem solving ability in complex and ever changing environments more then arbitrarily idiotic coding tests (or in my case analytics problems removed from anything resembling real world situations).

I am glad to be working at a place that enables me to have both (as a colleague sitting in talks with applicants and being an employee).


It doesn’t seem arrogant to me. It reads as someone who is confident in their abilities and is unwilling to spend two hours in an artificial environment when they have a wealth of experience on offer already. OP even says they’d like to do their thing in addition to HackerRank if that is an absolute requirement.

Helpful hint: there are no absolute requirements in hiring, just various levels of filters than can be overridden at will.


I agree that the arrogance is misplaced, and will be lost on the HR peon whose job it is to send out HackerRank tests to warm leads.

On the other hand, it's rare for coders to be so desperate that they'll jump at absolutely any and every job opportunity. The balancne of power has long tipped in our favor.


I think it depends, some employers might appreciate being showed evidence that the process they've decided on isn't suitable for reasons they were unable to see.


I've been on a few hiring panels and designed a few interviews in my day. I've never met anyone who likes being told their interview is broken. Especially not from a candidate (who failed / is refusing to do it.)


Sounds like arrogance... on the part of the interviewer.


I would hire them. They show me, that they think beyond their current task and are able to see the bigger picture.

Or at least I would consider hiring them if the rest does fit (culture and other such squishy interpersonal things).


Flip it around.

He has the skills, they want his skills. They are coming to him in the hopes that they're a good fit and that their rewards are enticing enough.

He obviously doesn't need to worry about being hired by ABC.. the only reason he didn't outright reject their test and proposed an alternative is because he thinks it's an interesting company or product.


Look at it in another way - they want somebody to work for them, you can provide this service. It's a business agreement, not some mercifully offered gift. Both sides want something from the other. The sooner we stop thinking about jobs in terms of servitude, the better off we'll all be as employees.


I agree with you on the points that HackerRank actually is not a very good indicator of how good programmer one is.

However unless they really like your profile they will immediately next you after that kind of response because companies also don't have time for this nonsense. They just want a standardised tests for all candidates so they can rank them and then hire the best.


I've done ballsy shit like this to get attention from employers. Once I was too slow with the programming questions in the screen-share, so I put up a website with a detailed solution to the last question.

I almost got the job, they randomly canceled the on-site at the last minute. Needless to say, I think my effort at least got me to that final step.


One of our hiring managers uses HackerRank as a basic filter. (If you are applying for a position called Data Scientist and you cannot do a linear regression, you are applying at the wrong company.)

I think an email like this would be just fine, for them.

I think it would go over badly at companies where HR runs the hiring process.


From both sides as a hiring manager and candidate, I’ve found that a take-home coding challenge that’s tailored to the company is a far better indicator of fit.

With a tailored take-home, the company has a chance to evaluate candidates based on more realistic, holistic challenges than “solve this academic comp sci problem that you won’t actually encounter on the job”. And candidates can get a better sense of the type of work and challenges they’d actually be tackling on the job.

The take-home isn’t tailored to each candidate. The opposite, actually: it needs to be the same for all so that candidates’ solutons can be compared.

Here’s the tl;dr example of a challenge we give web engineering candidates:

“Here’s our API and API docs: <link>. Create an interactive data visualization using D3 and any other tools you’d like. Your submission should include instructions on how to run it.”

By keeping the challenge relatively unconstrained, we allow candidates to show some creativity and prompt them to make the same feature/quality/speed tradeoffs that they’d have to make in the role. We look for autonomous individuals, so this turns out to be a good filter. We encourage them to spend less than 4 hours on it, but our time limit is a pretty generous 1 week since they likely already have a full time job and other interviews.


I very much agree after adding similar at my last company, it was a great way to screen the best-fit hires. Ironically the on-site recruiters didn't like it because it gave better results than their phone screens.

More

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

Search: