It all started when someone posted a job description for a developer in the Seattle Tech Jobs mailing list. They injected what appeared like an innocent requirement “a degree in computer science or equivalent from a top 20 school.” Innocent enough? Well, not quite!! It clearly triggered some raw nerves because obviously no one can quite agree on a definitive list of top 20 schools, Also, when is the top 20 relevant? When the candidate graduated or now or …People took offence to other unreasonable requirements and labels like RockStar developer or a Ninja something or the other. How do you even begin to agree on what these labels mean? How do you with any reasonable certainty declare someone to be a RockStar or Ninja or whatever?
Someone pointed to a recent blog post where the author said:
“Bert,” Ernestine asked, “I have hundreds of resumés, how do I whittle them down to a handful of calls and a few interviews?” Bertram smiled. He grabbed a pile of resumés from his desk, then started dealing the resumés out, first one back onto his desk, second into the recycle bin, third onto his desk, fourth into the recycle bin. When he was finished, he had thrown half of the resumés away. “It’s simple.” Bertram told Ernestine. “Just don’t hire anybody who’s unlucky.”
That is a great blog post and I would encourage every potential employer read it in its entirety. I have done a fair share of hiring the best and the brightest for over a couple decades and I can assure you that no label (top 20 school, CS degree, Ninja, Rockstar, …) will guarantee you a developer who has the abilities and the willingness to go the extra mile to get the job done. In fact as others on the list have indicated using such labels in a job description may be the best way to ensure you don’t attract the best developers!!
You, as an employer have to care enough to spend the time to write a job description that casts the widest net possible to attract the kind of developer who has learned how to learn and can apply that experience to every new situation that you throw at the developer. It truly is “find the needle in the haystack” situation out there or as a former manager of mine used to say “finding the diamond in the rough.” A good developer has plenty of companies to choose from so the onus is on the employer to create an environment that attracts the best and that starts from writing a great job description that emphasizes the problem they are trying to solve instead of inserting random labels no true developer cares about.
Very rarely do situations in the present or for that matter in the future resemble those in the past so any technology or stack that a developer mastered in the past are not necessarily relevant now. However the methods that they used to learn the old technology or stack will definitely help them learn the new.
Well, the debate continued and someone wondered how do big companies like Google make hiring decisions. I don’t know much about Google’s process other than the fact that it is similar to that of Microsoft in a lot of respects. So, I replied with the following based on my personal experience:
Having spent almost 22 year of my 25 year working career at Microsoft, I can help shed some light on how big companies make hiring decisions. Like a lot of you have alluded to it already, no company (not Microsoft nor Google nor Facebook nor ..,) has figured out a perfect way to hire the best. How could they when so many different managers are making a hiring decision and not all hiring decisions can be equal. As far as I know there is no training for the hiring managers that has resulted in a perfect system. All these big companies (and small companies) can hope for is that in a vast majority of cases they are making the correct decision across the lifecycle of a candidate selection process (screening resumes by recruiting (both internal and external), selection of interviewers, the interview process and finally HR) works in favor of the company. The ultimate (very selfish) goal is to find the best possible person for a particular job opening. In that process you can only hope that the hiring decision was made based on a longer term view than a short term “fits this particular job function” basis.
That is typically the reason why we had more than one person contributing to the interview process. We typically used to have a panel of four experienced interviewers along with an “As Appropriate (AA)” interviewer – most of the times a very experienced Principal level and above interviewer who had to make the final “Hire” or “No Hire” decision. There were clear checks and balances in the system to ensure a fair and unbiased decision making process. HR was looped in and could intervene to ensure interviewers were adhering to well established HR processes. There were instances when as an AA I have intervened to reverse the decision recommended even by a majority of the interviewers based on my assessment after interviewing the candidate.
Was the system perfect? Obviously not. Did we reject a good candidate who would otherwise have been very successful? Yes. Did we hire those who later failed miserably? Yes. Have I personally made hiring decisions to only regret the decision later? Yes. Did we make the correct hiring decision in a majority of cases? Yes. That is what mattered at the end of the day. The hiring system is not static by any means and is constantly evolving – hopefully for the better. I used to constantly weed out bad interviewers and inject new and better interviewers to ensure the hiring process was effective. We used to have new interviewers shadow experienced interviewers to learn how to interview. HR would get feedback from the candidate at the end of the day and work with the AA and Hiring Manager to ensure any negative feedback was communicated to the interviewers to help improve the process.
Does luck play a role in all this? Of course it does. You need to be lucky to have your resume pass through filters that are meant to reduce the overall burden on the system. You need to be lucky to have someone in the interview panel who understands what skills and experience you bring to the company that help improve your chances of being hired. You need to be lucky to have an AA who can help shepherd the hiring process in an unbiased manner and perhaps reverse the hiring decision in your favor!! You need to be lucky to have a HR machinery that moves smoothly in your favor. So on and so forth. As a candidate you can somewhat help tilt the balance in your favor by ensuring your resume shines a bright light on your experience and most importantly your individual contribution to significant projects and accomplishments. Rest of it is luck and being at the right place at the right time. Hope this helps explain what appears from the outside as a very nebulous and random hiring process.
Thanks for reading this long post. Do let me know what you think of all this.