This section is new (Feb. 27, 2000).

The Technical Interview Process


This section was created in response to my many experiences as an interview subject and as an interviewer. As a contractor, I have been interviewed far more times than most people will ever experience. As I went from one company to another, I noticed many similarities in the interview process. For one thing, it was very rare that anyone had ever read my resume. This was quite dismaying, as I tended to put a good deal of effort into making it a document that would tell a prospective employer what they were getting. Second, I was often (but not always) given a programming test. These tests were often very poorly conceived, and it was usually very easy to predict what would be on them. If anyone ever asks me what a pure virtual function is again, I think I will barf. Another problem with the tests is that the test giver would sometimes ask a question that could clearly be solved in more than one manner. Unfortunately, they would not be prepared for alternate answers. And there are many more problems with the interviewing process. Most of them stem from a lack of preparation on the part of the interviewer. In this section, I offer advice to both the interviewer and the candidate.

The Interviewer

The interviewer is in a curious position. This is an opportunity to choose one's colleagues. It is a position of power (you can have an impact on someone's career), and it is a position of responsibility. The responsibilities are numerous. You must try not to allow your decision to be influenced by personal or cultural preferrences. I am referring to decisions that do not emanate from a technical domain. The candidates sex, race, skin color, weight, marital status, etc. must not enter into your decision. The decision should be based upon criteria that can be quantified, and the same criteria must be applied equally to all candidates. That is to say, like software design, there exist formal interview processes. To obtain the optimal candidate, a company should have such a process. The major steps are: obtaining a resume, examining the resume, performing the interview, checking references, and negotiating a contract for hire. The last phase of the process will not be discussed here.

Obtaining and examining the resume: Once upon a time, job-seekers put much thought and work into their resumes. They did this for the following reasons: 1) It was the first impression that an employer would have of a candidate, 2) Any particular resume would be competing with many other resumes, and 3) Employers had expectations regarding the quality of resumes.

Sadly, the status of the resume has changed. At least, with the wide availablility of spell checkers, one would imagine that spelling mistakes would be a thing of the past. They are not. I recently reviewed a colleague's resume and found three spelling mistakes on the first page. In another case, I was considering a candidate for a job, but found a typo on the first page. I consider such things when examining a resume. If the candidate had not been excellent in all other areas, or if there were a competing candidate with similar qualities, I might give preference to the person who had put more care into their document. And, I was once told by a former employer that, when he had advertised for an entry level programmer, he received over one hundred resumes. He had to begin weeding them somehow, so he eliminated those that contained spelling errors. Not a bad idea.

This document is not, however, a dissertation on resumes. There are many books and papers on that subject. My point here is that as a potential employer, you already have a sample of a candidate's work. Examine it carefully. And, should you decide to interview a candidate, you may get a positive reaction if you demonstrate that you have actually read the document. It is not uncommon for some managers to state that that they are too busy to read more than the first page of a resume. Well, one might imagine that at one time someone had to have read their resume. They should at least show the same respect to others.

Finally, I cannot tell you how often I have been on interviews where the interviewer would ask basic questions that appeared at the top of my resume (sometimes in bold lettering). As a candidate, it is easy to lose heart after such an experience. Read the resume.

The interview: The first order of the day is to explain to the candidate what he or she is getting themselves into. That is, tell them about the company and their potential responsibilities. Try to be succinct and accurate. Allow questions, but make it clear that an in-depth discussion (for example, of a particular technology) at this stage is not appropriate. You are giving the candidate a chance to decide that the interview is not worth his or her time, since, upon hearing the details, they may no longer be interested. When you are done, ask them if they are still interested. If so, proceed to the next stage. I use a form for evaluating the candidates. It is important to use the same form for every candidate applying for a particular job in order to avoid discrimination. Here is a simple example. I have purposely made the test short and have tried to make each question succinct and without much room for interpretation and alternate answers. However, there will be alternate answers and the test giver must be aware of the fact. The test giver must also be willing to defer discussion of any question where there is uncertainty. The question can be researched when the interview is completed. The test can and should be updated. Experience will show that some questions are more ambiguous than you thought. Another problem is that tests may need to be administered via the phone. In that case, a long question will just be confusing and will not be a true test of a candidates ability to perform the tasks for which you wish to hire them. Also, I do not believe in asking very difficult questions. Simply being quizzed during an interview is a stressful moment for the candidate, so it is reasonable to expect that they are not doing their best.

Here is a sample test that I would give to each candidate. In this case, the position calls for a C++ programmer with MFC knowledge.

Alternatively, sometimes you are not interested in what a potential employee knows. Sometimes you are interested in a candidate's ability to learn new things or their ability to reason. This is a perfectly legitimate approach, especially if you are looking for someone to fill a junior, full-time position. If this is the case, then I would suggest asking the five easiest questions in the programmer's test and one special question to test the candidate's potential. As an example, you could ask the candidate to calculate how many seconds there are in a year. The catch is that they may not use a pencil or paper (or any tool other than their mind).

Are there any questions you should not ask? I think so. I believe vague questions of the "tell me something about..." are verboten. Why? Well, in such a case, the interviewer is fishing. Have you done your homework? If so, you should know what information you are looking for and be capable of requesting it.

Checking references: Finally, you have found a candidate that meets all your criteria. Now you need to do something that many employers neglect. You need to check references. It should come as no surprise that many resumes are inflated (to put it nicely). A wide degree of prevarication must be expected to exist in a resume. Furthermore, some candidates simply excel at the task of being an interview candidate. You need to know more.

It is reasonable to request two or three references. I suggest obtaining references from the most recent positions the candidate held. He or she should not be allowed to steer you into choosing their former employer from 10 years ago who just happens to be their best friend. However, be prepared for the possibility that a former employer may have a policy regarding disclosing performance information. If this occurs while checking resumes, it should not be counted against the candidate.

A short list of question should be prepared before you call. Do not attempt to do this ex temporare. You are depending upon the cooperation of someone who has no responsibility to cooperate with you and you are also requiring that person to set aside some of their time to assist you with your job search. That said, most people will be glad to help.

Here is an example of the questions that I would ask:
1) Can you confirm that Joe Candidate was employed by the XYZ company between the July 1998 and June 1999 in the position of computer programmer?
2) Did Joe Candidate perform the tasks assigned to him in a manner that was reasonably satisfactory?
3) How would you rate his ability as a C++ programmer: poor, good, or excellent?
4) How would you rate his ability to work in a team: poor, good, or excellent?

That's it. You are not interviewing the employer, so keep it short.

The Candidate

As mentioned, I have been on many interviews. As time has passed and I have gained more experience, I have seen an improvement in my ability to get an offer. However, getting an offer is not always appropriate. What I mean is that it is important to chose the jobs for which you will apply. Speaking from personal mistakes, I have sometimes felt the pressure to apply or interview for a position for which I was either uninterested or for which I did not possess the proper skills. In the cases where I was fairly certain I might not want the job, I would be wasting my time (that could be spent looking for something more appropriate) as well as the interviewer's. In addition, a certain amount of ill-will could be generated. That is definitely a big no in the contractor's world, as your reputation is extremely important.

My advice to candidate's is very simple:
  1. Arrive or telephone on time. Do not be late, and try not to be too early. For a telephone interview, you should phone at the appointed time exactly.
  2. If this is an in person interview, dress appropriately. Blue jeans, sneakers, or t-shirts are never acceptable.
  3. Prepare. You should know what skills the potential employer is seeking. If they are looking for a multithreading expert, it can't hurt to brush up on what you know.
  4. Be honest. If you do not know something and you cannot produce a reasonable answer, admit it.


Finally, no one knows everything. You must pick the skills that are important to you, or that you think will be important to your career and you must continuously develop them.

home 1