I'm not sure what the OP suggests is feasible in most situations. It's disruptive to the existing team and you have to have "throwaway" projects around for the person to do that won't cause problems if they're late or poorly implemented (and if that's the case, why do them?) Also, you're letting every guy who "interviews" learn about the internals of your systems, code base, security, etc to some degree, which is not something most companies want to do.
Interviewing is hard, but it's clearly not totally broken, given that some companies obviously do a far better job of it than others. Do we really believe that the big consulting companies or banks don't know how to filter for the better candidates given how much their business depends purely on having the smartest people? Are Apple, Amazon and Google really just more lucky at hiring?
One non-interview thing that I DO like to look at is publicly viewable work like open source contributions, blogging, social media activity, etc. If someone wants to work on web sites, and they're not doing anything web-related outside of their job, I have to wonder how passionate they really are about the domain.
Do we really believe that the big consulting companies or banks don't know how to filter for the better candidates given how much their business depends purely on having the smartest people?
Consultancies like interviewing because they are looking for clay candidates. Workloads are inconsistent and variable; the skills required are generally learned on the job in real-time, so optimum candidates are those who are adaptable and can be molded into many shapes. Optimum employees can look smart while work long hours in small teams, so the hiring criteria are simple: 1) a good GPA 2) whether your interviewer likes you or not. These are factors you can get from an interview (or five).
However a lot of companies are looking for diamond candidates. Diamond candidates are functional hires; those who are very good at what they do, Erlang Ninjas or Ruby Rockstars. These companies are trying to find a specific skill set or a 'brilliant mind' which will complete/compliment their current working profile. Interviewing diamond candidates is useless.
I'd guess that the vast majority of firings are not due to incompetence. They are due to disconnects; cultural, vision, personality, whatever. A diamond candidate is tough to interview for these disconnects. By virtue of their technical ability, their fit is usually downplayed or compromised in an attempt to nab 'the best programming team' or the 'most visionary CEO'. This is why so many companies think that interviewing sucks. They're just looking for the wrong things.
tl;dr Interviews work for hiring people, not functions.
I think it's a slippery slope to assume that just because someone is involved in a community that they are necessarily a good employee, and conversely, if they don't involve themselves, that somehow deems them "not passionate enough" or not as talented.
Just anecdotally, I have a friend who has a wife and two kids. He's not going to spend all his free time forking on Github. He does take on side projects, and is a very talented developer. Sometimes peoples' priorities are simply different, but it's hardly a reliable metric to look at. And I say this as someone who does see himself as an involved member of the community.
I'm not saying you assume someone who doesn't have open source work / contributions isn't necessarily a going to be a good employee. I'm just saying it's materially harder to tell in comparison to someone with the same resume and a publicly-viewable history of contributions. Any time you have a choice between the unknown and known, it's going to favor the latter.
Do we really believe that the big consulting companies or banks don't know how to filter for the better candidates given how much their business depends purely on having the smartest people?
You'd be surprised. Many many firms code via the endless-chain-of-6-month-contracts method. Yeah, eventually the code goes to pieces and needs to be scrapped and rewritten, but that point can be years after the existing management has moved on.
Are Apple, Amazon and Google really just more lucky at hiring?
It could very well be the case. Nothing breeds success like success. The best and brightest apply to Apple, Amazon and Google because that's where all the other best-and-brightest folk are applying. If your company doesn't have that same level of name recognition amongst the programming community, you might have a lot of difficulty raising your applicant pool to the same level.
The best and brightest apply to Apple, Amazon and Google because that's where all the other best-and-brightest folk are applying
I've hired for both big tech companies and startups and the applicant pool generally isn't that much better. It's not atypical to have to screen 50-75 candidates for one hire (that's actually talk to them, not just look at a resume.) I think a lot of folks just don't realize the sheer amount of effort and expense that top companies put into recruiting.
I'd wager that pretty much EVERYONE applies to Apple, Amazon and Google, because they're known to have the best people/work/benefits. This would make it _harder_ to pick out the best and brightest, not easier.
I haven't applied even. I probably have decent enough programming and system administration skills. I can recognize problem types from my computer science classes but I would need to spend time googling for the exact problem and possible solutions before I could give an answer.
The reason I haven't bothered to apply? I don't know how good I really am. I keep jumping between over estimating and under estimating my ability. But, I'm pretty sure I'm not a rockstar since I suck at math. A weak math background keeps a bunch of computer science out of my reach. Still, I've taken a course on OpenGL and managed to pass with a high A because I worked extremely hard to understand all of the vector math that was required.
It certainly doesn't help that I've failed every logic puzzle that's ever been presented to me. Ask me to reverse the order of words in a string and you'll get:
"Words in a string".split(" ").reverse.join(" ") #=> "string a in Words"
I see little point in optimizing that until you can justify the need for a more optimal method. Whacking my brain for a better solution isn't worth it otherwise.
TL;DR -> I haven't applied because I don't think I'm good enough.
If you want the job, I encourage you to apply. The worst case is that you get rejected, and you lost a few hours of your life interviewing.
At Google, logic puzzles are frowned upon for interviews. I personally ask questions that I expect candidates to be able to reason through and gradually refine into a good solution, there is no grand aha moment in the problems that I ask.
No, not throwaway projects. Real projects. And if they are late or poorly implemented, well, they would have been that way had you hired the sap anyway. But now you can just quit paying him, and try again.
I guess the whole point of the article is, that is a myth. Interviews don't work.
Anyway, companies that have the time and resources are turning to this more - the summer internship program at microsoft is actually a 3-month interview, where the intern works on real code and gets a real review.
Internships work pretty well for everyone at entry level. Not just programming: lawyers, investment bankers, consultants, etc. But you don't really have that option for more experienced applicants, especially those who are employed elsewhere.
Interviewing is hard, but it's clearly not totally broken, given that some companies obviously do a far better job of it than others. Do we really believe that the big consulting companies or banks don't know how to filter for the better candidates given how much their business depends purely on having the smartest people? Are Apple, Amazon and Google really just more lucky at hiring?
One non-interview thing that I DO like to look at is publicly viewable work like open source contributions, blogging, social media activity, etc. If someone wants to work on web sites, and they're not doing anything web-related outside of their job, I have to wonder how passionate they really are about the domain.