I know a thing or two about interviewing for jobs in technology land. I've been a working technologist for over 20 years. I've held down jobs in almost every function you can image for tech: graphic and UX design, product and project management, coding and testing, tech marketing and sales support, and various flavors of tech management from the bottom to the top of the org chart. I've been both a candidate and an interviewer so many times that I often forget, in the the heat of the moment, which side of of the interviewer desk I'm on.
I've tried to read everything on tech interviewing from both sides so that I can improve my game as an interviewer and interviewee. A list of great interview advice books and blog posts would be endless, but regardless of which side of the interview table you find yourself on, you should read everything Joel Spolsky has to say with the keyword interview in it.
But if Joel still hasn't satisfied your hunger for tech interviewing Jujutsu, I'll give you a more radical idea: Most interview processes at tech companies, big and small, are failures.
Tech interviewing tends to keep great people out of the organization. I've created and managed many interview processes over the years and I have a simple mental test to judge the success of my efforts: Would Steve Wozniak get hired through this process? Steve was the co-founder of Apple -- the guy who invented the original Apple computer, and in my mind was the ultimate hacker-developer-engineer. Steve did not go to an Ivy League school, or drop out from one. Steve was not a hip brogrammer with a big ego and I don't know if he could have whiteboarded the solution to any of the puzzlers that Google asks in interviews. I do know that he almost single handedly created the hardware, operating system and software that launched the digital world in which we live and when I grow up I want to be like Steve (Woz not Jobs).
Even with the Huffington Post's tech interview process I worry that modern Steve Wozniaks will wash out and the Huffington Post's tech team will miss out on truly exceptional talent. People have a way of looking good or bad on paper, or performing well or poorly during an interview that is not a reliable predictor of how well they will code.
Most tech interview processes fail because, in spite of our best collective efforts and analysis, past performance is not a predictor for future performance. Interviewing and hiring talent is more about love and luck than filtering and assessment. We don't like to admit this in the tech world because in our quest for certainty, luck is not our friend.
Given that one of the universal truths of the physical universe (its ultimate random nature) is getting in the way of our plans for a flawless tech interview process, I've learned to trust a less scientific data source as both a job seeker and a talent seeker: my gut.
At the end of the day, I think all great hiring managers at startups do a basic gut check whether they admit it or not. We look the candidate in the eye, like Bush did with Putin (but hopefully with better accuracy), search for a soul, and make a decision. Then we use all the interview data to support our gut check. If the candidate dropped out of MIT, great! If the candidate has a comp sci degree, even better! If the candidate has a GitHub account, contributed to open source, and has worked for a hot startup or an industry leader, outstanding! If any of those boxes are not checked, then they are glossed over, rationalized away, or simply ignored.
This is why the HR department, which is often baffled by our tech hiring choices, has a lot of gray hair and acid reflux: "You didn't hire this candidate because she couldn't optimize a red-black tree properly but you did hire this candidate who doesn't even know what a red-black tree is!"
As a candidate, you can't fake a soul. And you don't want to work for a soulless organization. If Google or Facebook didn't hire you, it's probably for the best. Keep looking and find a team that ignites your soul.