Hacker News new | ask | show | jobs
by bokglobule 4435 days ago
Actually, asking people to write some code in (or for) an interview is the best way to go with technical interviews. I haven't found any other approach that's better given the time constraints for an interview (and I've been interviewing ppl for 20+ years).

The hard part is coming up with what programming problem to ask a candidate that's fair to the candidate yet provides insight into their capability. For us, I created a simple data structure problem that hits a smattering of things that are taught in a typical undergrad CS curriculum (trees, recursion, etc). The candidate has about 30min to write the code for this in their preferred language using a plain text editor. I care less about perfect syntax when working with libraries, etc. and more about whether the candidate can take a problem statement and turn it into working code.

For an on-site interview, I send the candidate a description (along with screenshots) of a small web app project that hits some UI, some DB, some business layer. I encourage them to innovate around my description and surprise me. They get a couple of days to implement, then show up with their laptop and demo it. I want to see working software, then a deep dive into their code.

Typically by the end of the on-site interview, we have a really good idea whether this person knows their trade or not. It's helped me sniff out the pretenders pretty well over the years. The ones I hire are the ones who obviously take pride in their craft, know why they picked various implementation approaches, and can explain the technology they used.

1 comments

I personally think the "CS curriculum" style problems are a bit ridiculous. How often have I implemented a tree as a professional? Especially in a sense where I need to think about the difference between the types? (Is it a red-black tree? A binary search tree? A b-tree? Which ones are sub-types of others? etc.)

The result being that before the usual technical interview I dust off the old CS textbooks and try to hit all the high points.

I like the idea of a small program - especially a business-relevant one like you mention. But if you limit it to 30 minutes, often that 30 minutes could easily be eaten up by setup of environment... which can be a huge timesink.

You're right about making sure the problem is gauged to the time available for the interview. I had my senior and lead developers work through the problem individually to see how long it took them. Typically, 10-15 minutes. And they didn't see the problem ahead of time. Wasn't meant to be tricky, but rather do they understand a basic data structure we use all the time in the context of a simple problem.

Personally, I don't buy the complaint that asking a candidate to write some code is unfair although I've had a few tell me so. For onsite interviews, I have them spend a couple of nights ahead of time working on a small web app with a few moving parts (UX, DB, validations) to see how they approach writing larger, more real-world code. They demo the app, then show me the code. Some people take real pains with what they do, fully understand what they used and why, and can talk about how they'd improve it if they had more time. Unfortunately, many don't do that for one reason or another. But this tells me what I/we need to know before thinking about hiring someone as a developer.