Also, I've seen interviews cut short for both extremes (going really well and going really poorly) so it's easy to give the wrong impression that way.
I do agree that it would be a better way for all employees to give feedback to all candidates and for those candidates to handle the rejection in an emotionally mature way.
Assuming that you are like the other 90% or so of employers who treat employees and candidates exceptionally poorly (I'm not saying you are, just assuming for a second), then getting only a 30% rate of feedback calling you out on use of superficial, inconsistent, and (in some cases) borderline (or even blatantly) illegal reasons for rejecting a candidate doesn't sound so bad.
It suggests to me that candidates on the whole are more professional than companies, but companies can use certain bureaucratic policies and processes to make sure they effectively hide the unprofessionalism from ways in which it could come back to negatively affect them.
This happens?
Company (and interviewer) decided not to bring charges so I assume he continues to interview at other places. There are non-zero number of unstable individuals who do not handle rejections or criticism well.
So now I ask a dozen questions by email that should take 5 minutes to answer in order to filter out both these groups, and that cover many basic CS concepts. Works really well, even if it's a bit annoying for candidates and probably turns off many vs just uploading your CV for HR to auto-scan for keywords.
For example, if I'm hiring someone to do data modelling work and they tell me it's called the relational model because of the relations between tables, it's unlikely they'll know how to unfold EAV antipatterns. And if you have actual machine learning experience, it's unlikely you'll be stumped by my asking what high leverage means.
For context: one of the candidates I interviewed told me that the best way to pick a model was to pick the model that would have the highest R squared when fitted to the whole dataset. I asked him about overfitting and he didn't know what I was talking about. Same guy whose CV showed 4 years in a research lab doing stats [2]. A lot of people are just going through the motions.
[1] https://en.wikipedia.org/wiki/Leverage_(statistics)
[2] reposting for fun: http://4.bp.blogspot.com/-IJo_Tkw95-o/VANnTdCFgHI/AAAAAAAADV...
I had studied "spurious correlation" in some machine learning courses and in some research, but almost all of the methods I ever studied or worked on were meant to use data-driven methods to account for spurious correlation, or dimensionality reduction to find subspaces in which the data's natural structure was best preserved without correlation-caused redundancy. Literally none of them ever even mentioned the phrase "multicollinearity" -- which seems to be more popular to people coming from classical statistics or econometrics programs.
If I had been asked to describe "what is multicollinearity" during the interviews, I would have been rejected, yet after they told it to me, I learned about it in about 2 hours on Wikipedia, and within two months I had actually done a research project for them where I showed them how you could use ISOMAP or randomized PCA to effectively handle regression multicollinearity better than their ad hoc covariate-averaging techniques.
This kind of trivia stuff is useless for hiring. All it does is let the interviewer feel smart and tout their favorite particular buzzwords to see if the candidate is in the same "club" as them.
I can imagine some diehard frequentist caring a shit ton about "consistent estimator" or various special tests like Kolmogorov-Smirnoff or F-test or likelihood ratio test. If you say, "I always do Bayesian stats... those test thingies are stupid junk" then it means "This person is not in the Frequentist Club, let's reject their lame ass and tell them it's cause they are 'just not a good fit.'"
Same would be true in reverse if some Bayesian diehard interviews a frequentist person.
Same for someone who sees deep learning as the hammer for every nail. Etc. etc.
People don't want to admit they treat these things kind of like baseball trading cards, and it's more about your cool-kid status than your actual tech skill.
What I'm dealing with is people who are dumping their CV and a standard cover letter on me at high frequency and I do not want to put an HR filter between them and me, because I want to spot the guy without a LinkedIn profile (HR red flag), who dropped out of college (so no brand - HR red flag) but has plenty of useful experience (so no buzzwords, because real experience looks unremarkable on a CV - HR red flag). I know no more efficient way. Would love to hear of any.
I did make the mistake many years ago of rejecting a PhD in stats because she admitted not knowing about neural nets ("but my lab buddy is doing some research in them"). I'm still kicking myself, but have learnt a bit about hiring since then.
I am lucky that the prestige of my schools is high, that you can easily Google some of the actual research work I did, and that I am very highly ranked on Stack Overflow.
If I didn't have those, I think more employers would simply reject me for not having a LinkedIn account, because employers use the dumbest shit (like LinkedIn) as hiring cues.
Otoh, I agree not being aware of over fitting is definitely grounds for setting aside a candidate for ML job.
A value with x close to the mean, but extremely high y would barely move the line as a whole up or down as you vary y. The gradient would not be much affected.
A value with extremely high x does not need to move much to change the gradient of the line. You might even change the sign of the gradient.
Both are outliers but the second has higher leverage than the first.
Edit: illustration: http://imgur.com/vVKwjHh (right hand side are high leverage)
Originally, we were going to build high dimensional statistical learning systems crunching large datasets on GPUs in Haskell.
90% of clients cannot feed me the data, so I end up building them a data warehouse first; in some cases we even redo their data model. 100% of clients have datasets too small to justify getting out of R and single CPUs, so our Haskell ML libraries are, so far, on the wishlist only (I think Tweag has had more success there, but I still have feeble hope that one day...) Hence the RM focus as well as ML. The ML side is sort of picking up this month.
That being said, I'm not actually that well versed in ML. Just the guy running the company. I've built (and read) just enough to know how it works, how it applies to clients and who to hire to get the job done properly...
I don't claim to be an expert but at least I know what Moment is
So that is what I'll do next time I want to interview at FB. Overall, I really enjoyed the process as an interviewee. I've been on both sides and I'm curious how well the other side is done at FB but I left with a good impression and thought the outcome was fair.
Also bonus points to them for asking real world questions. I was asked about making a web-based text editor and a couple months later, Draft.js came out.
After my interview (in which I felt I did very well), I did not hear anything back within the time frame they told me, and then many days afterwards I finally heard back.
They said they were not going to move forward with me, and also they specifically said they were sorry but they could not provide any feedback.
So I actually felt like for one of the most important parts (the feedback) they were actually not straightforward or honest with me. Had I known I could not have feedback, I would not have agreed to the interview in the first place.
98% of employers treat employees and candidates like shit, so this is a useful and efficient rejection rate if you refuse to work anywhere but the 2% that actually treat you like a human being in addition to paying fairly, offering reasonable benefits, etc.
(Why yes, today, I did just talk to a YC company that had "remote" in their job ad on their site but, when asked, was unwilling to do wfh 2 days a week for someone who lives in the peninsula and was unenthusiastic about driving in and out of sf every day. Hmm...)
You should qualify that with "all companies by which I want to be hired", because not all teams/developers pair program or want to pair program.
The team I'm on does a phone tech interview, then an in-person interview where we dig into history, then a mix of problem solving, pseudocode problems, OO/schema design, and web app design/technologies/approach, and then more interviews with the extended team. While we will sit with each other to help out at times, sometimes for hours, we don't strictly pair- that is just when help is needed. We rely on some up-front design and all PR's code reviewed for quality control, in addition to QA and approval by application owner.
I am with you on contract-to-hire. I get that companies are cautious because a bad hire can be tough to recover from, but the processes 99% of companies do are not conducive to good hires.
If you reject them based on their performance during hour 1, and you don't even give them the chance to show you more about themselves during hours 2, 3, and 4, it sounds like (a) your hiring process is kind of dumb and you're way too focused on what you seem to think is hyper efficient time usage than on actually learning about a candidate, and (b) you come off as unprofessional.
It's a two-way street. Inviting someone in for a "1-4" hour block, then dismissing them after hour 1 makes it seem like you view it as if you're entitled to paw around the candidate like they are a cut of meat, assess them however you want, and not give them a fair chance to assess you.
That's very charitable of you.
I dont know if it was my inability to phone screen properly, my inadequate job posting, my desperation to hire at the salary my boss allowed me, or my optimism, but I had far too many candidates that didn't pass even the above low bar. I don't even want to talk about the candidates that didn't make it through the phone screen.
If it matters, the timeframe wasn't 1-4 hours, but rather 1-2, and the position was junior.
Are you saying you assume candidates did not prepare? If so, then I think you clearly have a problem with how you perceive candidates and you should work on that instead of dismissing candidates so quickly and believing it's their fault.
Even a candidate who performs badly in the interview may have spent a ton of time preparing. They may just honestly not be the right choice for the role, due to technical mismatch, even though they have an excellent work ethic, they studied, they had their friend come over and role play interview questions, they couldn't sleep the night before worrying if the cheap suit they borrowed from their uncle is going to make them look bad, etc. etc.
You should basically view literally every candidate as a person who is trying their best. If that turns out to be false, oh well -- it's not your business to care about forming opinions about candidates who you think weren't giving their best. Just assume they were, that it didn't work out, and move on.
Again, I may not be reading your comment right. But if you feel it's "charitable" to assume any given candidate sitting in front of you studied hard, cares about the job, works hard, and really wants to present themselves well, that's just nuts.
Personally I think all companies should be using pair-programming or contract to hire, as I think trivia questions and whiteboarding are worse than useless. I'm happy to do take home work for a company I'm really interested in, but it does feel a little unfair and like a bit of a waste of time overall.