Tuesday, January 16, 2007

Want to be a rock star candidate?

In the past 5 0r 6 years I've worked with hundreds of candidates who have gone in to interview through us for a job they really wanted. Our company goal is to place at least 1 in 10 of those who go in to interview. We often achieve a much better ratio that that. Frankly there must be easier ways to make a living (get a PhD in CS and work for Microsoft? Sounds hard.) In our experience the ratio of hires to applicants for those trying to get into the top companies without the help of a quality recruiter is many many multiples of this number. Oh how I want to get this fact across to so many candidates and clients I talk to: good recruiters save you time and save you money by more efficiently putting the best people (companies) in front of you. Don't get me started.

The interview. Everyone's favorite way to spend a morning-being poked and prodded by a group of people looking for a reason (or not) to hire you. If you're trying to get into Google, Amazon, Microsoft, or other top companies the web is alive with scary stories of nutty unsolvable problems these companies give. One thing all the best companies are exceptionally good at is scientifically comparing every single person who comes in the door to their best people. Their simple rule is they don't hire you unless you measure up to those people.

What do these companies want? Why do they select some candidates and not (so many) others? Is there actually a method at work that makes sense? From the conversations I've had with software engineers out there I know a lot of you are very confused, and dare I say bothered, by the way these things unfold.

No one has let me in on the great corporate secrets but I think I can demystify what companies are looking for from my experience placing solely extraordinary software developers over the past five years. They are looking for ROCKSTARS. Are you one? If not you can learn to be. Here's how:

Resume Follow the link to learn how smart companies view resumes. Your resume should be much more than a bland list of your education, experience, and personal information. Most resumes stand out about as much as a piece of hay in a haystack. The best companies are looking for needles. Some of the clues they look for are:
*People who began programming at an early age. Early curiosity in programming is a very common trait in the best developers.
*People with uncommonly stable job histories. If you are not staying a minimum of a couple of years in each job and growing within the organization, don't send your resume until you are.
*People with a logical and advancing career path. Points are not given for going from programming to QA and back again. The best companies know where they are going and would like for you to have a plan too.
*People with PASSION. We have unlimited numbers of resumes from people who got their degree in CS because it was a hot industry to be in. The best companies are not looking for these people. Bill Gates didn't need a degree at all because he had passion. Passion adds points to your score across all the categories below and adds significantly to your odds of getting the job. Extra work such as being involved in open source work, being on standards committees, filing patents, inventing new products, or writing about your work are some of the ways of letting your passion out. Find it and nurture it.
*Exemplary educational credentials. Yes people are impressed if you went to a great school. But most often that alone won't get you the job. If you don't have a degree from MIT or a 4.0 GPA, don't despair. The next category can override those standard measures.

You want to be sure to list every technology that matters that you have worked with, but smart enough to avoid claiming expert status in something you are not. One of the most dangerous people in the world is the person who thinks he knows things that he does not. The costs involved in a software project that doesn't meet expectations can be enormous. The best companies ruthlessly check that a given applicant actually knows what they claim to on the resume. One of the most common types of feedback we get when a candidate is turned down for a job is "this person couldn't demonstrate the knowledge they claim to have on the resume."

Opportunity. Have you ever looked at Steve Job's resume? If you didn't know what he's accomplished you wouldn't bring him in for an interview would you? The best companies want to know what you can do for them, period. You must be able to show how you will return them in value many multiples of your salary, the more the better. They don't care where you went to school, what your GPA was, what you look like, or how weird you are, IF you offer some amazing opportunity to them. You'll need to use your questioning skills to find out what their most pressing problems are and show you have solved or know how to solve them.

Corporate knowledge. Blind dates blow up when you walk in talking about yourself and how great you are and why your date should want to marry you. She'll be thinking, "Next." Even if it's all true nobody wants to hear it. Contrast this scenario-you've been set up with a young lady by one of your mutual best friends (me) who knows you both intimately. You know she's an artist. You find her website and really love her art. You understand it. When you start talking about that you don't have to be the most handsome, richest dude in town any more (though it woudn't hurt.) If you are going to interview with a company you want to work for you better know every fact on their website, read any available book by an insider about them, research their history, and study their current financial report. Do us all the favor of not going to interview unless you are quite sure the company is the sort of place you want to work.

Kultur. Are you a very conservative, right wing political idealogue who also happens to be a great software developer? So what. Don't apply to Google. If you don't spend some time researching the culture of the company you are interviewing with you are certainly harming your odds of getting hired.

Skill. What are the hard interview questions C++ (or whatever your language is) developers get asked? What resources can you study before your interview to make sure you are going to do well? Developers always tell me, "I don't have to know trivia about my language. We can look up anything we need to know." Yeah, but not in the interview. Every company will judge you on your baseline knowledge. If you don't want to play by the rules how can you win the game?

Trust. Who is your favorite coworker right now? Now rank all your coworkers on the level of trust you have with them. Is he or she also the person you trust the most? Probably. Can you get a sense of whether or not you can trust someone from a short conversation? So can your interviewer.

Attitude. Five jobs in five years? Why? Answers like bad boss, bad company, bad coworkers are just excuses. Don't have excuses. Tell the truth. The product didn't sell. The company ran out of cash. Facts, not opinion. If you have failed in the past and can discuss it unemotionally and rationally and without defensiveness your odds will increase markedly. How fast did you recover? The best companies want the people who can fail 10 times in a row without losing momentum or doubting themselves. The quicker you get to the eventual success the better.

Results. You have software projects on your resume. So does everyone else. Why were your projects successful? How exactly was your input instrumental in that success? Say there are x people on your team. If you ranked everyone on the project from 1 to x in order of their contribution to the projects' success, 1 being the greatest contribution, would you be number 1 or 2? If not don't send your resume to the best companies. Go achieve this measure on a project, then send it.


Success. The person with the highest salary at Microsoft is the guy who gets the products out the door. In terms of getting you the job, nothing beats having worked on the leading software application at the leading company in the space. If you were also the lead developer on that project you'd have to work really hard at screwing up the interview enough to not get the job. Unfortunatley I know it is possible. The best companies want to know what qualifies you to hang with the people who already work there. Those folks want to know you can operate at their level. Better have some examples ready of how you already have. You should find out through your recruiter or other sources what the top intitiatives are at the company, what project they want you for and why, and have a plan for articulating how you can help the project succeed.



If you've ever watched The Apprentice you should have a pretty good idea of how this process works. That big blowhard with the stupid hairdo simply gets together a group of people who appear to have the best chances of being his hire. The one who gets the job proves through a series of tasks to be the one who most often succeeds relative to the group. As in any competitive endeavour the difference between the person who gets the job and the other applicants can be a very slim margin. Your job is to use the ROCKSTARS criteria to make sure you will be The One next time you go through the process.

1 comment:

Anonymous said...

If you were also the lead developer on that project you'd have to work really hard at screwing up the interview enough to not get the job. Unfortunatley I know it is possible.This article is very interesting for upward carrer mobility.
click on this link to get more information
How to Get the Job BEFORE It