Most companies want to hire the best people, and employees want to work with the same. Why doesn't work experience or education count for anything in our field? Yes ... I've met idiots with CS degrees who can't code FizBuzz to save their life. I've also met idiots who have aced interviews at Microsoft, Google and Amazon by cramming on algorithms books for 2 weeks.
We've really gone off the deep-end with interviews. If you've been a professional developer for 5+ years, do you really remember the details of your algorithms course? Competent devs can figure out the details of this stuff in minutes ... something not conducive to the high-stress environment of interviews. And this is not even considering how much time both parties waste in this process.
Given how smart we are (i.e. software geeks), it boggles my mind how silly our operating procedures are. Just like I've told students that they should never accept unpaid internships on principle, I wish enough of us would tell prospective employers that we won't submit to an unreasonable hiring process.
I wish enough of us would tell prospective employers that we won't submit to an unreasonable hiring process.
I like this hiring process and I would implement the same thing at my own company. There is so much software that needs to be written, though, that someone who refuses to "submit to an unreasonable hiring process" need not do so. Just grab a job from rent-a-coder and relax!
You know what I'd like to do at my own company? Hire people based on their unique experience and personality. Pay them fairly and assume employees have lives outside of work. Heh .. engineers can dream, can't they :-)
The hiring strategy may or may not make Google money, but it does make my life there pretty pleasant, and I think the other 30,000 employees would mostly agree.
Hire people solely based on "work experience" and a ten minute chat and let me know how well you company of 10,000 people does. My prediction is that you will be unhappy with the results.
Other companies do the opposite, so there's plenty of jobs for either type of person.
Perhaps this is why Google's JavaScript is so notoriously poor.
I think this process, while annoying, is worth it. I don't want to risk having to work with someone whose competence with respect to software engineering has not been verified in a controlled environment. I've done it before and it meant every time I said something like "state machine" or "graph", I had to explain what state machines or graphs were. And at Google, I don't have to do this. The amount of shared knowledge is amazingly high which makes interaction much more productive.