News for hackers. Stuff that matters.
Re:I don’t have time for coding challenges by autarch on Friday September 11, 2020 @04:36PM (#24447083)
> "I’m writing this as an interviewee, having never been on the other side of the interview table ..."

> ...

> "Most candidates will have side-projects or work they’ve done for previous employers."

As someone who has actually done a lot of interviewing, I can say with great confidence that this is simply wrong. At my current employer, we have a "homework assignment" as part of the interview process. We tell candidates that they can point us at an existing project of theirs instead of doing the homework. Few people take us up on this because few applicants have any substantial public side projects or FOSS work they can share.

And sharing "work they've done for previous employers" is a great way to court legal trouble. They shouldn't share it and as an interviewer I don't want to see it!

Re:I don’t have time for coding challenges by johnfn on Friday September 11, 2020 @07:18PM (#24448353)
Them: "We've got a coding challenge for you..."

Me: "I've got this repo on Github with millions of downloads and 10k stars. It's at least 20k lines of my own code. Would that be good to demonstrate my coding ability?"

Them: "Haha, no, that'd be too much work for us. Please do the test instead."

Me: "Fine."

Then they rejected me because I used GET instead of POST. Clearly that shows I have no idea how to code.

That was a large (1000+ employee) YC company, by the way.

Re:I don’t have time for coding challenges by dmitryminkovsky on Friday September 11, 2020 @08:00PM (#24448621)
Truly absurd. Followed the link in your profile. You wrote VSCodeVim! 49,674++/14,291--. And because you used the "wrong" HTTP verb. Did they also say you should have used tabs instead of spaces?? Outrageous.

By the way, thanks for VCCodeVim!

Re:I don’t have time for coding challenges by johnfn on Friday September 11, 2020 @09:40PM (#24449134)
Hah! Thanks :-)
Re:I don’t have time for coding challenges by golergka on Friday September 11, 2020 @08:04PM (#24448643)
> Then they rejected me because I used GET instead of POST.

OK, I'm honestly curious here. What was the request, and why did you make such a decision? Do you think it is the right approach in this case, or that it's an insignificant mistake that does not represent a person's understanding of HTTP protocol?

I remember hearing about at least one story where using GET instead of POST lead to disastrous consequences, as some robot crawled all over the "delete" links - but I have to admit, I can't imagine how it would happen without other significant design flaws happening as well (as "delete" links being public or robot being able to crawl under authenticated user's identity). This sounds like an error that can cause irrational irritation by the reviewer, but I can't imagine it being the sole reason to decide that the author can't code.

Re:I don’t have time for coding challenges by johnfn on Friday September 11, 2020 @09:38PM (#24449121)
I was definitely in the wrong about GET/POST. The company I had previously worked for simply didn't really care too much about getting the verbs right, so I didn't really fret about them. And the company I'm currently at (multiple thousands of employees, strong engineering culture if I dare say so myself) just does everything as a POST. So it really is somewhat cultural whether you care about GET/POST or not.

But, IMO, even if you don't know, it's the kind of thing you learn once in code review and then don't worry about again.

Re:I don’t have time for coding challenges by cameronh90 on Friday September 11, 2020 @10:50PM (#24449401)
For E2E encrypted APIs, one could well argue that worrying about HTTP verbs is just wasting time for no good reason. POST (consistently) lets you attach a body too.

Just using POST for everything is a pattern I've seen becoming more popular recently.

Re:I don’t have time for coding challenges by chrisandchris on Saturday September 12, 2020 @05:35AM (#24451157)
No we can get into an endless argument whether verbs are abused or not...

IMHO, GET (as of today) gas the issue that it does not support a body. If I‘m executing a search (an idempodent action), how can I nicely pass a JSON object configuring the search? I‘ll just use POST for that... So then we‘re at the point where the url does not work anymore because we have a POST /findEmployee; POST /findContract; ... instead of GET /employee and GET /contract.

Maybe I‘m wrong here, but it doesn‘t like nice in my eyes using POST in that way.

Re:I don’t have time for coding challenges by ulucs on Saturday September 12, 2020 @07:19AM (#24451619)
The JS API's I used to develop in used a mix of query strings (for exact matches) mixed with JSON (for more complicated queries) all in the url parameters
Re:I don’t have time for coding challenges by andreareina on Saturday September 12, 2020 @04:23AM (#24450848)
Google Places API puts the key in a query parameter. Still don't know how I feel about that.
Re:I don’t have time for coding challenges by hysan on Friday September 11, 2020 @08:52PM (#24448896)
Not the OP, but from my experience teaching web dev, one possible reason is nerves. I’ve seen some of the smartest students make that mistake on an assessment simply because they were under pressure. A simple conversation afterwards shows that they do understand the difference (as expected). In the moment though, sometimes you just have a brain fart.
Re:I don’t have time for coding challenges by wool_gather on Saturday September 12, 2020 @01:08PM (#24453832)
This really can't be understated. The difference between your how your brain works when you're under the clock and know you're being observed vs. the "natural" flow of a calm working environment is tremendous. Anyone of us who's conducting the interview must do some kind of double-checking of obvious mistakes to fairly account for the limitations of the process.
Re:I don’t have time for coding challenges by bitten on Saturday September 12, 2020 @03:19AM (#24450573)
Yep! I have been in similar situations where you make a mistake and you get out right rejected. Surely it's better to explain the mistake to me and then we can discuss it. This can also be a nice cultural check too, how well do I respond to my own mistakes? It's a shame most people don't follow your idea here.
Re:I don’t have time for coding challenges by thiht on Saturday September 12, 2020 @04:14AM (#24450819)
> Haha, no, that'd be too much work for us

What's funny is that it's literally their job. They receive money for doing it.

Doing a take home is not paid. I have no idea why these recruiters assume it's ok to ask candidates for multi hours work without any kind of compensation.

Re:I don’t have time for coding challenges by edanm on Saturday September 12, 2020 @07:18AM (#24451616)
That's absurd.

Also- thanks for VScode vim! I use it and love it. I've always wanted to reach out cause there's lots of features I wish would get implemented. Though even without those it's one of the better vim emulations I've tried, and I've tried many!

Re:I don’t have time for coding challenges by srtjstjsj on Friday September 11, 2020 @09:56PM (#24449206)
Seems like you are a brilliant programmer but lack domain knowledge for that specific job.
Re:I don’t have time for coding challenges by bsg75 on Saturday September 12, 2020 @11:01AM (#24452988)
If you make that assumption based on a single thread comment, you lack domain knowledge on how candidates should be interviewed.
Re:I don’t have time for coding challenges by nogabebop23 on Friday September 11, 2020 @05:16PM (#24447395)
We use a coding challenge as well but I like your addition of "auditing" the coding part and using existing open source or side project work. Bonus points if it uses some of the target technologies too!

The author doesn't appear to understand the economics of the hiring company; it's about time & effort to filter and the cost of making a bad hire. I cannot give every application 1-2 hours of review if I get 100+ resumes. I can't give every interviewee a half-day assessment to get the very poor signal/noise ratio answers to questioning methods suggested. I can't hire easy and then fire easy. I can't invest weeks of work from myself and other mentors on non-ideal potentials. I know this means I pass over great candidates and that really sucks and is totally unfair. I'm sure that's happended to me as well. The problem is nothing presented here is a better alternative.

Re:I don’t have time for coding challenges by _qulr on Friday September 11, 2020 @06:36PM (#24448049)
> I cannot give every application 1-2 hours of review if I get 100+ resumes.

This is perhaps the biggest misconception of hiring, that out of some misguided notion of "fairness" or "objectivity" you have to treat every candidate exactly the same. In theory it seems like a good principle, but the road to hell is paved in good intentions. In practice, this results in arbitrarily designed standard tests which are only superficially fair, and systematically weed out people who aren't good at test taking or auditions.

Go through all the resumes quickly, pick out the top candidates, and start from the top! Focus most of your time on researching your few top candidates, and if one of them seems good, then hire them, and end your hiring process. You may only have to interview 1, 2, maybe 3 people at most. This saves everyone time: your own time, and the time of the 100+ people who would otherwise be interviewed and rejected, because there's only 1 job opening.

Obviously if you interview your top candidates, and you find them lacking, then keep working your way down the stack. But going through the entire stack of candidates is a huge waste of time, a pointless exercise, totally counterproductive.

Don't do "screening" interviews. Only do "hiring" interviews.

Re:I don’t have time for coding challenges by salt-licker on Friday September 11, 2020 @07:15PM (#24448331)
Generally you don’t get all the resumes at once, this is literally the secretary problem. Unfortunately you need some objective standard of measurement across candidates that is static over at least months, and ideally takes a minimum of you and your candidates’ time. Though imperfect, real-time technical questions are a pretty good solution to this problem, especially since a lot of the best engineers prefer them to take-homes.

Also, anecdotally after interviewing hundreds of candidates, I’ve found resumes to have a relatively high false positive rate. Surprising numbers of engineers look great on paper but can’t write working code for semi-complex problems when tested, even accounting for interview anxiety.

Re:I don’t have time for coding challenges by wolco on Friday September 11, 2020 @07:32PM (#24448438)
Are you sure? I mean the 10 years of success spent over various companies projects on resumes have a high false rate because after they took your coding test they didn't do as well as you thought they should? Did you hire any of them and did they out perform your initial assessment.

If you didn't hire them and compare them to new hires who have bad resumes but did well on your test how would you know?

You can't objectivity judge a candidate by your test results only. Otherwise your test is just randomly filtering people. Until you do that you don't know how effective your test is. You could be flipping a coin and getting the same results.

Re:I don’t have time for coding challenges by salt-licker on Friday September 11, 2020 @07:45PM (#24448533)
I’ve hired people who have not passed the coding screen (but did pass subsequent interviews) and they’ve been some of my best hires. But the type of failure really matters. Did they write generally correct code but ran out of time because the algorithm they came up with under time pressure was too complicated? Or did they fail to debug a list indexing off-by-one error, even after printing the list repeatedly? It’s sometimes a judgement call but I believe there’s a lot of signal in watching people write code in real-time
Re:I don’t have time for coding challenges by _qulr on Friday September 11, 2020 @07:18PM (#24448352)
> Surprising numbers of engineers look great on paper but can’t write working code when tested, even accounting for interview anxiety.

How have you accounted for interview anxiety?

Re:I don’t have time for coding challenges by salt-licker on Friday September 11, 2020 @07:38PM (#24448485)
It’s definitely not an exact science.

1. I try to make the parameters of the interview as friendly as possible — language of their choice, don’t have to worry about code style or computational complexity, or talk while they’re coding, just write working code that solves the problem. They can use google freely. I’m there as a resource to talk through their solution, answer questions, and help them get unstuck if needed.

2. The algorithm to solve the question doesn’t require a trick and there are many viable solutions so most candidates can verbally explain to me a working algorithm quickly, +- a couple edge cases.

3. Candidates often get visibly flustered or hung up on irrelevant details, or unsure what exactly I want for them, and I focus on noticing this. I try to guide them down a correct path if they’re close and tell them not to over-architect if they start doing that.

Despite all this, too manly candidates do not have a dependable metaprocess for writing working code - a common scenario is they write code, it gives the wrong result, they drop some print statements to debug, but can’t effectively trace the program to figure out why they’re getting the debug output and so they guess and try to fix the wrong thing, causing further problems. I know that some of this is nerves but it can’t account for all of it.

Re:I don’t have time for coding challenges by _qulr on Friday September 11, 2020 @07:50PM (#24448569)
> I know that some of this is nerves but it can’t account for all of it.

Why not?

If you've never experienced severe situational anxiety, you may not know how debilitating it can be.

And then, maddeningly, perhaps just minutes after the interview is over, you return to your "normal" self, and start to think about what you would have done in that situation if you weren't nervous.

It's basically stage fright, which can be terrifying if you're not used to the stage.

Re:I don’t have time for coding challenges by salt-licker on Friday September 11, 2020 @08:06PM (#24448650)
I guess I'm generally going off of an interviewee's body language, which isn't entirely fair since I'm not a mind reader. And I'm sure I'm missing some cases of stage fright, which is why again I mentioned all the techniques above that I try to mitigate this, but I agree is a really unfortunate side-effect of the interview process that I don't have a fool-proof solution for.

Still, I do have some EQ. A lot of candidates exhibit visible anxiety and then get into a rhythm and calm down when they start coding. Or they visibly calm down once I start asking them questions about how they're thinking and coax them towards viable implementation. On the flip side, a lot of candidates actually exhibit overconfidence running in the wrong direction, which I try to lightly mitigate but can't prevent in all cases without giving an unfair advantage.

Re:I don’t have time for coding challenges by ryandrake on Saturday September 12, 2020 @09:39AM (#24452330)
How do you "quickly go through" a stack of 100 resumes and choose a handful of top candidates in a way that is not subject to personal (conscious or unconscious) bias?

I remember an interview training exercise, which also covered resume screening. Each person got the same stack of resumes, and the instructor said, "You have 60 seconds to pick out the top 3 you'd like to bring in for an interview. Find them." At the end of the exercise we found that we all basically picked out people who were a lot like us. White people picked out "whiter-sounding" names, women picked more women, etc. Also, Ken Thompson's resume was one of them (with a different name) and nobody picked him.

I think the point was that human eyeballs and brains are terrible at objectively or fairly pre-filtering.

Re:I don’t have time for coding challenges by _qulr on Saturday September 12, 2020 @10:05AM (#24452497)
> How do you "quickly go through" a stack of 100 resumes

Well, by quickly I didn't mean only 60 seconds. :-)

> in a way that is not subject to personal (conscious or unconscious) bias?

In my opinion, a common conceit is that it's possible to design a process that is not subject to bias. It's not possible. There will be bias, no matter what process you choose. It's thought that "quiz show" style interviews are "objective", but if you look at the results, they're clearly not helping. They're not increasing diversity. The poor results speak for themselves. So then some people look at the results of this so-called "fair" process and conclude that minorities are just worse at coding, because that's what the tests say. To me, that approach and attitude is even worse than just acknowledging personal bias.

The only way to try to counteract unconscious bias is to be conscious of it. Admit it, and keep it in mind while you're going through your hiring process. Keep it in mind while you're filtering the résumés. Keep it in mind while you're interviewing. But don't try to pretend like you can eliminate it entirely from the process, because then you're just deluding yourself and everyone else.

Re:I don’t have time for coding challenges by swader999 on Friday September 11, 2020 @07:16PM (#24448338)
Agree with this for most companies. When at an airport we were government and had to be 'fair' it was about ten solid days of work to hire for one position.
Re:I don’t have time for coding challenges by jjav on Saturday September 12, 2020 @02:57AM (#24450463)
> Don't do "screening" interviews. Only do "hiring" interviews.

Good way to put it. Exactly.

Re:I don’t have time for coding challenges by wolco on Friday September 11, 2020 @07:17PM (#24448345)
This only makes sense if they want top talent. Usually they want cheap/easy to push around talent and for that you need a screener that filters out the best and whoever remains will have the strength to deal with bully managers or lack of requirements
Re:I don’t have time for coding challenges by goatinaboat on Saturday September 12, 2020 @03:42AM (#24450680)
The author doesn't appear to understand the economics of the hiring company; it's about time & effort to filter and the cost of making a bad hire. I cannot give every application 1-2 hours of review if I get 100+ resumes.

This is an entirely self-created problem, not for you personally, I mean for the industry. We are against "credentialling" so signals like personal recommendations, alma mater, or work history at prestigious firms are overlooked.

My employer tried Hackerrank for a while, we abandoned it when we realised that the candidates we really wanted (e.g. based on personal recommendations from existing employees) were dropping out of the pipeline as soon as the Hackerrank link was sent to them. And the ones we were getting were good at Hackerrank and not much else.

Re:I don’t have time for coding challenges by jjav on Saturday September 12, 2020 @02:56AM (#24450461)
> I cannot give every application 1-2 hours of review if I get 100+ resumes.

Your process has already failed if you're considering 100+ people!

First, you should never be getting 100+ resumes for a role. If you are, you need to write better job descriptions and/or get a better recruiter who knows how to match to the job description.

With that in place, you (I) are getting about 10-20 resumes at most. Then what I do is read them and rank them. Takes less than two hours.

I'll only interview the top five from this stack. I'm happy to give each of these five people however many hours of attention it takes, they and I deserve it.

This way the people who didn't get to the interview round have not wasted any of their time which is the most respectful way to handle it.

Re:I don’t have time for coding challenges by _qulr on Saturday September 12, 2020 @08:28AM (#24451925)
> you need to write better job descriptions

Tech job postings are the absolute worst. Anyone who's having trouble with hiring in any way needs to start there. Everyone in tech knows that job postings are a joke, which is why you're told to apply to jobs even if you're not qualified, and then companies complain about the applicant pool. It's their own fault!

The "excuse" is almost always "HR". But this just tells the applicant your company is a bureaucratic nightmare that few sane applicants would want to join.

Re:I don’t have time for coding challenges by _qulr on Saturday September 12, 2020 @08:55AM (#24452056)
There's a lot of worry in tech hiring about the "faker", the engineer who lies or exaggerates on their résumé.

The irony is that the tech hiring process, especially the job postings, encourage the fakers to apply. You're practically beginning fakers to apply.

The most honest, scrupulous people tend to only apply for jobs where they're 100% qualified according to the job posting. So the system, which hires people who don't actually meet the listed qualifications, is systematically selecting against the honest applicants. Honest people can even be driven out of tech in virtue of being honest.

Re:I don’t have time for coding challenges by autarch on Saturday September 12, 2020 @09:43AM (#24452363)
> Your process has already failed if you're considering 100+ people!

Remote roles get a _lot_ more applications than on site. In my experience getting 100 applications is quite common for such a role.

Re:I don’t have time for coding challenges by pavel_lishin on Friday September 11, 2020 @08:27PM (#24448763)
The commenter doesn't appear to understand the economics of the job-seeking candidate; it's about time & effort to keep your current job and the cost of getting hired at a bad company. I cannot give every company I apply at hours of coding if I apply to dozens of jobs. I can't give every company a half-day assessment. I can't get hired easily and then get fired easily. I can't invest weeks of work from myself on non-ideal potentials. I know this means I pass on great jobs and that really sucks and is totally unfair. I'm sure that's happened to me as well. The problem is that nothing presented here is a better alternative.
Re:I don’t have time for coding challenges by 1123581321 on Saturday September 12, 2020 @01:25AM (#24450060)
This is a snarky parody, but put together you are both just saying that you can only afford to spend any time on job matches likely to be especially good, but that you’ll spend a lot of time on the good ones. Which just means you both are in an illiquid or conservative hiring market that is out of your control and their control to change.
Re:I don’t have time for coding challenges by Clubber on Saturday September 12, 2020 @12:34AM (#24449864)
>I can't hire easy and then fire easy.

Why not? Maybe you should address that problem. It would certainly make things a lot easier.

Re:I don’t have time for coding challenges by zapt02 on Friday September 11, 2020 @07:37PM (#24448476)
This is on-point! I've been involved in the recruitment process at my current employer for years and 95% of people that make it past the initial recruiter meet-and-greet have absolutely nothing to show in terms of open-source contributions or personal projects. Most of them just do the homework assignment so that you can at least talk about something during the interview.

You can always say it's because the company doesn't attract good enough candidates, but good luck with that in a competitive dev market in a large european capital.

I appreciate the authors honesty in his obliviousness of being on "the other side of the table" and I think it's clear that the author is living in a bubble that doesn't correspond to reality for people recruiting.

Re:I don’t have time for coding challenges by itsdrewmiller on Friday September 11, 2020 @10:02PM (#24449224)
fyi the author is female - https://css-irl.info/about/.
Re:I don’t have time for coding challenges by lhorie on Friday September 11, 2020 @07:36PM (#24448463)
I'd say "work they've done for previous employers" is something that nearly every candidate with industry experience has. The problem is that when I ask about it, candidates often are terrible at communicating what the work consisted of: often they focus on microscopic minutiae that appears disconnected from the big picture (e.g. gloating about gluing some trivial library as if that's a big accomplishment, when the position is for a senior engineer) or they demonstrate apathy/lack of proactiveness (e.g. some variation of "I just did what I was told") or they ramble incoherently, etc.

And this is supposed to be one of those bog-standard question that interviewees are always told by job interview guides to be prepared for!

I agree that people that have OSS work to show are much rarer to come by, and FWIW, they tend to do better in interviews IME. My theory is that it's not that the OSS resume bullet point itself sets them apart, but rather that they polished their skills more through the hard work they put into their OSS projects.

Re:I don’t have time for coding challenges by juped on Saturday September 12, 2020 @07:46AM (#24451738)
Interviewers react badly if you try to describe the high-level thought processes you go through, because that's not "technical" or "coding". So you end up reaching for dumb bullshit like gluing some library or whatever the fuck, because coding is actually boring grind work that you want to do as little of as possible, as stupidly as possible, and there actually isn't anything interesting to say to these people if you did the engineering right.

If that's not you, then you need to be painfully, painfully explicit about it, and some people still won't believe you because interviewers just lie all the time.

Re:I don’t have time for coding challenges by autarch on Friday September 11, 2020 @07:52PM (#24448574)
Just to clarify, I thought the author of the linked piece was suggesting that people could share actual code from previous employers somehow. Of course it's reasonable to ask people about their past work in an interview and to expect them to speak about it coherently.
Re:I don’t have time for coding challenges by lhorie on Friday September 11, 2020 @08:11PM (#24448679)
I think OP did suggest sharing actual work, which would make sense if said work consists of e.g. semantic html that can be looked at in a publicly accessible site.

Obviously sharing backend trade secrets would be a big no-no. I've had people say they can't talk about their work due to NDAs, and that's completely fine in my books. We just move on to another topic.

FWIW, even when a candidate mentions having an OSS project, I refrain from looking at the actual code, and especially doing code review. I don't consider an interview setting the appropriate place to be grilling people on why they used a while loop instead of a for loop or whatever, since a) nearly everyone writes "bad" code occasionally and b) often things are done in certain ways for some good reason that isn't really relevant to my goal of evaluating the candidate. At the end of the day, the interviewer's goal IMHO should be to get as many signals they can from the conversation and make a determination about whether the candidate meets/exceeds a minimum threshold of competence

Re:I don’t have time for coding challenges by adamvalve on Friday September 11, 2020 @11:22PM (#24449548)
Came here to share the same exact points. He’s making a lot of assumptions never being on the other side and actually interviewing lots of candidates. Most of the time I get half assed projects with bugs that are obvious and they haven’t ever made contributions to open source software as an alternative to the take home project.

I think the at home project is the most lenient way to test someone because they aren’t pressured to solve a problem on the spot, instead they are in the comfort of their own home and can reference whatever documentation they would need, just like they would in a real position.

Re:I don’t have time for coding challenges by chrisfosterelli on Friday September 11, 2020 @07:38PM (#24448488)
We've done something similar and found even candidates that do have public side projects may not feel those projects fully represent the code they'd write today and preferred the takehome.
Re:I don’t have time for coding challenges by autarch on Friday September 11, 2020 @07:56PM (#24448599)
Good point. I'm sure some of the candidates who do our assignment have stuff on GitHub or elsewhere, but thought they could do better work with the assignment.