Ask HN: Can the “Who is Hiring?” post include a bit about the interview process?
It's almost time for the monthly "Who is Hiring" thread!
Considering how much time we spend discussing tech interviews here, wouldn't it be nice if each hiring post is accompanied by a line about the nature of the interview process?
Examples:
i) Interview process: two phone screens, 3 onsite whiteboard
ii) Interview process: two rounds on HackerRank, 5 onsite whiteboard
iii) Interview process: one take home assignment, 2 on site whiteboard, 1 pair programming session
That will help candidates prioritize which companies they want to contact first. Companies also benefit by the fact that the applicant has self-selected for their interview process.
115 comments
[ 2.7 ms ] story [ 198 ms ] threadBut I do have to mention that with the Big4, they will let you know in detail about the whole process during the phone interview so that's cool by me.
- algorithms and data structure heavy white boarding
- online timed exercises
- take home exercise and discussion
- short contract to hire
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.
(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...)
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.
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.
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.
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.
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.
It might also be hard to explain what we're asking submitters to do in a way that makes sense to everyone, especially the ones who don't post on HN except in those threads.
We'll think about it. There's a couple days before the next thread.
Edit: ok, I added such a sentence. Let's see if it improves the quality of the posts.
The Javascipt framework part was purely a joke, and I think was probably recognized as such by most people, though again, was probably not helpful.
[1] As suggested here: https://news.ycombinator.com/item?id=11600376
But there's not much point in getting the rest of us to add nearly-meaningless handwaving because our employers don't have a standard interview process!
> great hiring process and response from the team, even though I didn't get the job I enjoyed my application process
What better feedback (or recommendation) could you ask for?
That said, I need a little more convincing that always including this information will increase the quality of the listings. For Compose this set them apart, for most places I'd guess there's a pretty common pattern, and for the terrible places they just may not say.
Much as I think the ONSITE/REMOTE thing was a success, I think this might be better left to happen culturally rather than by fiat. Happy to be convinced otherwise, though.
https://news.ycombinator.com/item?id=11014670
It's far more common that we have openings for "Software Engineers", and we end up hiring one very junior, one very senior engineer, and some folks in between. Thus, from the same ad, compensation could range from $90k w/1,000 shares to $280k w/20,000 shares. And, frankly, saying "salary is typically between $75k and $300k" isn't useful information.
How our comp actually works is that at some point in the interview process, you tell us how much you're hoping to make, and then we set the bar appropriately. If you want $250k, the bar will be very high. If you want $100k, it will be substantially lower.
There is no reason to be "disappointed" by it.
I disagree. That is absolutely better than not posting anything.
Also, I suspect that ranges for most positions aren't that big - not everyone is lumping everything from the most junior to the most senior into one position.
And every rational person says "I don't negotiate against myself", right?
I have a question, are the job ads written in a way that would attract both a junior(I'm picturing 1yr out of college experience) developer and someone who is so experienced to justify a $300k comp package?
Without some clear distinction in the ad I'm having a hard time figuring out how it could appeal to people on both ends of the spectrum.
(Sometimes the interview process gets modified per candidate, too.)
I've been interviewing for past 1 month and every single company made me do whiteboard, big O stuff past phonescreen.
I think you are over estimating how much HN leaks into real world.
I don't doubt that at all, and I know whiteboarding is popular with interviewers. I'm talking about its popularity with interviewees.
I also understand why some people hate such interviews especially if the are not good at algo or do not like pressure of interviewing.
Comically sad.
This would make it easier for the candidates
Especially, if you are a recent grad in Canada (AB) how do you get more job interviews? Especially for top tech companies?
Like how do you arrange your resume so it passes the key word scan.
Who do you pass your resume to?
Which websites should you go to?
Networking doesn't necessarily mean standing around in a room with a name tag and making small talk. Put your work out where people can see it; release open source, talk at conferences, etc. Then the jobs will find you.
HN has also been very helpful; a few kind folks here helped me deal with Google's hiring process.
Edit: on a side note, I really wish more companies would provide honest feedback to the candidate during the interview process. Especially when you've invested significant time into an interview process and are ultimately rejected, it is beyond frustrating to ask for feedback and just hear crickets, or a generic "other candidates are a better fit", etc...
See https://channel9.msdn.com/Events/ALM-Summit/ALM-Summit-3/Tec...
Tokenadult isn't around to chime in here, so I'll take his place today. Hunter and Schmit did a meta-study of 70 years of research on hiring criteria. [1] There are three attributes you need to select for to identify performing employees in intellectual fields.
This alone will get you > 65% hit rate. [1] http://mavweb.mnsu.edu/howard/Schmidt%20and%20Hunter%201998%...One of these companies should hire me to do data driven recruiting.
Interview process: one 4-hour take-home assignment (which may or may not be properly articulated, and which, in any case, there's a fairly good chance we may never respond to); 3 on-site whiteboarding sessions (the first conducted by someone whose first words to you are "man, I'm hungover!"; the second, by a pair of disinterested devs from another team, apparently shanghaied into covering for someone else, who take turns boredly rushing you through algorithm questions, while the other plays with his phone; and the third by the resident math genius who walks into the room well past the time they said you'd be done, says "Hey, got time for another?" and proceeds to grill you on a mis-stated graph search problem that ends up having a null solution class); and finally, a pair-programming session on some made up problem which you're required to use certain clearly unsuitable data structures to solve (resulting in clearly unusable performance in any real system) "because it's easier, and because I wanna see how you think. Look, just tell me what to type, OK?"
Only to be told 2 weeks later, when you timidly beg the HR contact for an "update", that you aren't a "culture fit."
It could be nice to have the information that are hard to gather otherwhise.
It is as true for workers as for companies that a new position is a risk, but, while companies can ask for references, workers have no ways to ask for "references" themselves. This asymmetry benefits companies much more than workers, it would make workers more "trustful" if companies were showing good will in evening the gap.
- Expected duration of interview(s). 1-2 hours differs drastically from all day.
- Salary within 10k. If hiring for multiple positions or skill ranges (e.g. mid-to-snr engr), then state salary for each case. Companies complain about noise in hiring process, yet won't do one key thing that would improve quality by getting applications from only those interested in X job at Y wage.
- An honest estimate of hiring timeline. Don't waste people's time by saying "yesterday" only to drag it out by months. Applicants can also address this by asking companies who they hired last and how long it took to do so.
It's all in their website.
I didn't get the role, failed the last step but really enjoyed the interview process.