Don't Leak Interview Questions
igor.moomers.org
igor.moomers.org
Why not just give the candidate a programming problem, a real computer (maybe no internet, but all tools and documentation installed), and an hour or two to solve the problem?
You can monitor their computer screen remotely, record it even for later review, and also sit in the room to watch them at work and offer guidance if necessary.
If the candidate passes these real world challenges, then you can do the soft social stuff and see if they will fit into the team.
but even for questions regarding prior experience - most of the "standard" job interview questions are widely known. the question being widely known doesn't make them less effective - it is up to the skill of the interviewer to ask relevant follow ups based on what the candidate says.
often, I don't even ask standard" questions. i just look at the most audacious claim on the resume and grill on that topic to figure out what they actually did.
Then i jump around from claim to claim, out of sequence, so they can't fall into the rote story of "how I got here."
I think this is a reasonably effective, harder-to-hack way to interview, unless you're dealing with a pathological liar. (so far, I haven't personally hit one.)
Do you do this with all hires, or just junior candidates e.g. recent graduates, those having taken bootcamp classes, or migrated over from another discipline e.g. "I used to be in Marketing but now I'm a growth hacker" ?
What if you have a candidate with a proven track record, perhaps lots of open source code, perhaps well known in the technology community? Isn't there a risk that grilling them on a topic might just antagonize them to the point of not wanting to join the company?
i don't think focusing on specific details is antagonizing if it is done right.
a great candidate will embrace the opportunity to talk about their experience. it will probably be an awesome conversation for both of us. i will learn something, and they will see their experience in a new light trying to explain to someone else.
a weak candidate will stumble on details of their experience, or will be forced to admit someone else did steps x, y, or z. or that the claim is inflated.
"What technology are you most experienced with? Can you explain it's architecture to me?" and
"What is the most complex customization you did to an existing library/framework? Can you explain how (and why) you did it?"
They're completely scripted questions but tell you much more about the candidate than doing an algorithm pop-quiz.
Or he was really good. :)
It's almost as if they want to suffer and fail. We spent a decade hiring puzzle solvers, only to announce (few years back) that it's useless and must be discontinued asap. Now let's try whiteboarding classic logic problems to see if you will catch an off-by-one mistake without running it. That will work.
If the goal is to find how they approach problem solving, you can adapt by asking about increasingly difficult aspects of the problem. If that isn't the goal, your hiring practices are wrong.
Throwing puzzlers at a candidate indicates you are hiring for normal engineering talent (i.e. this person doesn't have a previous reputation that makes them special) and so vetting the person is going to be highly imperfect whether or not they can solve your puzzle.
You know, it's not about a, b, c or d. It's the whole answer.
And I still don't know why interviewers insist on whiteboard coding. Get a computer, google stuff together, try some code, because that's how it works in the end!
Worse. They require syntax correct whiteboard coding. I got to imagine that pseudo-code should suffice in almost every case.
What would be interesting is a system that works in spite of questions leaking. Personally I like the idea of a calibrated question pool so large that, if someone learned the answer to every question, they would have become qualified for the job. Of course you'd have to do a lot of recruiting to calibrate such a large question pool.
If your interview process can be substantially weakened by having some of your questions leaked... then maybe it wasn't such an effective process in the first place.
To me, fair means: not asking me to write code on a whiteboard! Or, if you insist upon it, not complaining about not-compiler-perfect syntax, assisting me with the correct function names or argument order of library functions I'd normally autocomplete or look up, if I've forgotten, and focusing on the thought process and problem-solving rather than keypresses.
But really, most fair would be: don't ask me to code your stupid whiteboard interview question. Look at the shitloads of code I have on github, or ask me to walk through some interesting problems I had to solve recently, or ask me for my first-blush take on an interesting problem you're trying to solve. Make it a conversation instead of an interrogation.
Because, you know, a startup filled with people who are excellent at solving interview questions on a whiteboard might not be the best team for solving real-world problems. I work with a guy who can solve a rubik's cube in under 90 seconds -- that's about as relevant as some interview questions I've seen.
A good white board interview question asks about a concrete problem like, "How does code complete work?"
But that's the problem; there's little or no feedback from most interviews (for legal and other reasons), so many candidates assume the worst.
Yes, the key is to turn it into a technical conversation. Pretend they don't know the answer and genuinely want your help. Interviews are artificial but talking about technical problems in front of whiteboards is a normal work activity. It's not about perfect code but more about coming across as someone they'd want to go to for technical advice on a tough problem.
But even if I didn't, what's the point of asking such a large group of people not to leak questions, especially when those most put off by your interview style (for whatever reason) have the most motive to leak your questions?
At best you'll be ignored, laughed at a bit and people doing what you're asking them not to do will continue doing it. At worst (and IMO the more likely outcome) you'll end up with a variant of the Streisand effect where even more people leak just because you asked everyone not to.
In closing, I guess I will mention how odd it seems to me that "startups" (granted, Airbnb being a startup anymore is debatable) are all "pivot this, disrupt this, change the system", and then complain when an interview style that was already old and busted in 1970s isn't working out for them in this new Internet world.
That's what I'm thinking. Honestly... how many unqualified prospects are going to try to gain a position by memorizing FizzBuzz solutions, or whatever? Is this an actual problem in the real world? Wouldn't it be easier to just learn to code from first principles?
You explore the options beforehand, and try to figure out benefits / drawbacks. Then when you ask the question, you see if people see those tradeoffs too. Even better, you pose the question slightly differently each time, such that a different option is more favored every time. This filters out people who think they have the "right" answer.
Who knows - one day a candidate could even surprise you with an answer you didn't think of!
There's something very broken about a process which takes weeks to prepare a question, and something even more broken when programmers conduct interviews up to 6 times a week (how do they have time for any real work?). That's more than 1 interview a day...
Questions shouldn't be secret puzzles which take ages to fabricate, but ways for the candidate to demonstrate what they know and what they can do. Otherwise you're leaving wide open the possibility that you'll hire someone good at gaming the system, not someone good at the job.
Also, (possibly off topic...) am I the only one that thought of the Kobayashi Maru after reading this?
Not to mention tech. giants that ask inhuman questions just because everyone wishes to work for them.
Sorry, until things are different, I'll leak every interview question I get my hands on. Tech. companies will always be able to figure out ways to examine candidates.
I hate interviewing as it current exists and I'm going to make sure each and every one of my friends know what I got asked so that they can better prepare themselves and have a better experience.
He's saying that he wants a chance to work through a problem with the interviewee, not stump them. There is value to seeing what a candidate knows and has previously done, and I'm sure that by this point in the interview he has determined those.
But these questions are about how the candidate works, and it sounds to me like he has put a lot of effort into making sure this is not like a crappy puzzler, but a conversation that he will help them through.
Once I was interviewing for a senior software engineer position for a big financial company. Before the start of the in-person interview process they had each candidate solve a Java programming question regarding encryption/decryption (according to their HR only 30% passes the initial filter and my solution was one of the best with regards to design, time to finish (I only spent 1hr to finish the exercise), runtime efficiency, and test coverage). They gave us each a laptop and 3 hours to solve the question. I got really good feedback after the exercise and was asked to go through the remaining gauntlet of more Java interview questions (2 more interview sessions w/ different people (tech lead and vp) to be exact).
At the last interview with one of the executive director, he dropped me a math puzzle question that is not related to the job at all, suffice to say I bombed the last interview. This was really frustrating and is a complete waste of time on my end since their office is a bit far from where I currently work.
I am not advocating it (in fact, I probably would have significant reservations about any company that will pull that on me), but if you are that concerned about the questions leaking out, do something to legally oblige the candidate not to disclose the process.
Otherwise, put up with it. Or try a different way to vet out candidates.
Also, I might add, some people like to post their interview questions to see what other people may think or get feedback on their answer. Because one thing that you don't get when you intw, especially if you don't get the job, is any feedback on your interview performance (for myriad of legal reasons).
If an interviewer asked me to sign an NDA, I'd think the company was run by a bunch of crazy control-freaks and walk out.
It sounds to me like many companies are trying to hire quiz solvers and people who can figure out how many people can fit into a car. Do the people being interviewed not have any downloadable code samples or coding projects that the company could have eyed through prior to the interview?