One good thing about reading/browsing HN is that you can get an impression of the ideas that are starting to emerge. One thing that seems to be emerging now is that people are rethinking the grueling technical interview process.
There was a huge emphasis on avoiding false positives in the interview process - largely because a single bad hire can do great damage to a software development team. But people seem to be learning that these grueling processes may not do as much to avoid the false positives as we thought, and are creating a vast number of false negatives.
I am no longer interested in participating in this sort of multi-day technical exam taking. I've studied stochastic processes, mathematical optimization, data structures and algorithms. I've taken exams on them. I've hit the books for a couple of weeks prior to interviews where I've been grilled on these subjects in greater depth than I experienced during my exams in grad school. It's important knowledge, I get that, but I don't want to have to mentally reload the material in "exam ready" memory simply to pass yet another interview. I will rely on my general knowledge and my ability to look things up on the job. My interviewers should feel free to evaluate my knowledge, but does this really have to be more grueling and take four times as long my final exams in college/grad school?
It's not that a technical screening isn't valuable, it's that the grueling nature of these interviews means that if you can't recursively print out all permutations of a string on the spot, right now, don't get confused up there at the whiteboard, you're a no-hire. It can be very clear that the interviewee is aware of what mergesort is, how recursion works, the importance of run time in algorithms, and that the candidate almost certainly at one point implemented it. They want to see it, now, in code, on the whiteboard. Or, these days, typed into a screen that an interviewer is looking at.
A couple of years back, last time I was looking for jobs, I spent one and a half days in interviews. I was asked to code a singleton, add a branch to a binary tree, traverse a binary tree, now without recursion please!, find the long term probabilities in a markov chain, formulate a linear program and prove that the dual of the primal is the primal of the dual, now with matrix notation please!, write a bunch of outer joins, convert a curve into a piecewise linear function (don't lose convexity, please), on and on. Each interviewer was fresh, I was shuttled from room to room. Then I came back for three hours of interviews with management. No hire.
Another special one was where I only got to talk to a recruiter, passed a few java tests (about an hour), and then took a homework assignment (spend no more than 5-7 hours, please!). Didn't hear back, didn't hear back, didn't hear back. About a month, and the recruiter calls, oh, they've decided not to pursue this any further.
This is a rant, and perhaps an angry one. I feel bad about that, and it doesn't feel great to admit that I've failed in these interviews, either. But I'm glad that some pushback against this practice seems to be building.
I can identify with your post. Now that I have small kids (1 and 3), I find the job search especially time consuming, precisely because of the need to prepare my "exam ready memory" and whiteboard coding skills. It's biased towards new grads and single 20 year olds, like many things in our industry.
On the bright side, in my most recent job search, I've noticed this type of interview style has become a lot less common. It still happens at the big SV firms (for example, I spent an entire hour phone interview doing multiple algo code problems and not once asked about my experience), but I think the smaller companies avoid it.
HN has its fashionable topics. Interview bashing is popular at the moment. It's also a suggestion to me that maybe there are more people looking for work right now. That's not a particularly good sign. Either the benefits to job swapping are too great to ignore, or there are too many failed startups, and companies failing to retain their staff.
Edit: Or it could be that "school's out for summer", and there are a fresh new batch of grads, masters grads and PhD's on the market.
Well, don't forget that all of us are just not interviewing to get jobs, but interviewing people to bring into our companies. It's important to get right, and passion about the topic is encouraging, don't you think?
There was a huge emphasis on avoiding false positives in the interview process - largely because a single bad hire can do great damage to a software development team. But people seem to be learning that these grueling processes may not do as much to avoid the false positives as we thought, and are creating a vast number of false negatives.
I am no longer interested in participating in this sort of multi-day technical exam taking. I've studied stochastic processes, mathematical optimization, data structures and algorithms. I've taken exams on them. I've hit the books for a couple of weeks prior to interviews where I've been grilled on these subjects in greater depth than I experienced during my exams in grad school. It's important knowledge, I get that, but I don't want to have to mentally reload the material in "exam ready" memory simply to pass yet another interview. I will rely on my general knowledge and my ability to look things up on the job. My interviewers should feel free to evaluate my knowledge, but does this really have to be more grueling and take four times as long my final exams in college/grad school?
It's not that a technical screening isn't valuable, it's that the grueling nature of these interviews means that if you can't recursively print out all permutations of a string on the spot, right now, don't get confused up there at the whiteboard, you're a no-hire. It can be very clear that the interviewee is aware of what mergesort is, how recursion works, the importance of run time in algorithms, and that the candidate almost certainly at one point implemented it. They want to see it, now, in code, on the whiteboard. Or, these days, typed into a screen that an interviewer is looking at.
A couple of years back, last time I was looking for jobs, I spent one and a half days in interviews. I was asked to code a singleton, add a branch to a binary tree, traverse a binary tree, now without recursion please!, find the long term probabilities in a markov chain, formulate a linear program and prove that the dual of the primal is the primal of the dual, now with matrix notation please!, write a bunch of outer joins, convert a curve into a piecewise linear function (don't lose convexity, please), on and on. Each interviewer was fresh, I was shuttled from room to room. Then I came back for three hours of interviews with management. No hire.
Another special one was where I only got to talk to a recruiter, passed a few java tests (about an hour), and then took a homework assignment (spend no more than 5-7 hours, please!). Didn't hear back, didn't hear back, didn't hear back. About a month, and the recruiter calls, oh, they've decided not to pursue this any further.
This is a rant, and perhaps an angry one. I feel bad about that, and it doesn't feel great to admit that I've failed in these interviews, either. But I'm glad that some pushback against this practice seems to be building.