Top 10 Hiring Tips for Technical Interviewers and Hiring Managers

Hello guys, For a change, this article is not for candidates who are preparing for interviews, but for those programmers who are responsible for taking interviews. At some point in your career as a programmer, you will have the responsibility to hire developers for your company. This is a big responsibility and your ability to select the right candidate will directly affect your company's future. This is more visible in small companies than the larger organization where a pool of interviewers exists. In a start-up, if you are a technical lead and responsible for hiring, it's a tough job. You have to hire the right candidate which fits in companies culture and competent enough to do the job they were hired for. To be frank, conducting interviews is as hard as giving interviews.

It's very difficult to know about the candidate in 60 odd minutes and I am sure we all have missed out on some great programmers, who don't do very well on typical programming interviews. At the same time, we end up hiring someone who looks brilliant in the interview but fails to deliver.

In this post, I am going to share some of my experiences with you all about taking technical interviews and hiring technical talent like a programmer, tech leads, developers, etc. These simple tips will help you to become a better technical interviewer and take effective interviews.





11 tips to become a better Technical Interviewer

One of the truths about the programming interview is that a candidate prepares hard before giving an interview, but how many Interviewers prepare before taking interviews? We all rely on what we know, despite knowing it might not be the latest and very quick to weed out candidates, who can't answer typical weed-out programming questions

In this article, I will share 11 tips to become a better Interviewer, as I said conducting interviewing is a big responsibility, you become responsible for someone's career as well as your company's future, so take it very seriously. Hopefully, this will lessen the popular sentiment that most programming interviews ARE a waste of time.

1. Focus on Selection, Not Rejection

First thing first, we conduct an interview to hire people, not to reject them. Don't do an interview if you are feeling angry or upset with something, with this kind of mindset you can't do justice with the candidate. Instead of looking for positive things, you will look for negative aspects. 

You will probably look for reasons to weed him out, consistently ask questions on his weak area to back your decision, and cover yourself. Never do that, make every effort to give candidates a proper chance to demonstrate their skill, ease them out, don't make candidates nervous.



2. Never insult candidates

Even if he is not able to answer a single question. I do a couple of tech interviews every month and I regularly see people with very impressive resumes that can't code Fizzbuzz. Instead, just give them X minutes (you don't have to tell them X) and then after X minutes simply say, "OK... that's fine. You don't need to solve it here, but I just wanted to get an idea of your coding process", and either move on to next question or wrap the interview saying, do you have any questions for me?




3. Allow Candidates to Ask Questions

 Always give candidates the opportunity to ask questions, as much you are investing your time in conducting interviews, the candidate is also investing his time. As much you are evaluating candidates, he is also evaluating you as a potential colleague. You are not just hiring but also selling your Company to your next Rockstar or Superstar programmer. 

This is especially true with good candidates. They usually have more than the offer at hand, and if you are not able to create a repo for yourself and your company, there is a good chance that he will consider taking your offer over your competitors.


4. Help them, Give Hints

In order to bring the best out of candidates, you can also help them. Whenever a candidate can't get on their own, I give progressively better hints until they come close. This helps you to gauge how many hints they need in comparison to other candidates and it also moves the process forward. 

Then move on to a different topic or skill. Remember, No one is good at everything or experienced in all fields. Many candidates will do poorly on one question but then nail the next one.



5. Speak slowly

Yes, it makes a lot of difference. When you are speaking with someone first time on a telephone interview, it's difficult for both candidate and interview to understand each other, this is especially true if you are hiring for a multi-national which has a global hiring process. 

Many times candidate's accent is not clear or he might not able to understand your accent. I have often seen people calling one thing differently like char or char, SQL or Sequal. Speaking slowly helps both of you to understand each other better.




6. Always ask surprise questions

Yes, you should put them under some pressure. You may be thinking that this is contracting with my earlier point, where I have mentioned that you should help candidates to feel better, but, remember you also have to save your company's interest. 

You must test the candidate's problem-solving skills and how he reacts in pressure situations e.g. when he knows nothing about how to solve a problem but he has to solve it. These situations are not hypothetical, in fact, we all face them on a daily basis.

The idea behind an interview is to understand how proficient a candidate is in articulating their thoughts, and how well they can handle difficult problems. 

No good interviewer asks only simple questions. The hard questions are there for the interviewer to understand how experienced candidate is in handling unknown situations, and how he/she performs in a "virtual" stressful situation. 

It's not a litmus test, but probably the best interviewer you can do in 60 mins. These skills only come by practice, and you quickly identify whether the candidate has gone through them or not.

10 tips to take effective interview


7. Check Fundamentals

As an interviewer, you Must test fundamentals like data structures, algorithms, and programming logic. Throwing out some puzzles is also a good idea. You may get hated for asking how to remove a node from a doubly-linked list? for a web developer position. 

I know they might not need this detail but I will rate high to a developer who knows fundamental better but is light on API rather than a programmer who are good at API but doesn't know how a hash table works?


8. Focus on Non-technical skills as well

Don't just focus on tech skills, also take notice of their soft skill. If a candidate is an expert in a certain field but not able to clearly explain his thoughts or ideas then it's not a good hire. Good communication skill is very important, don't expect them to be Steve Jobs or Bill Gates but they should be able to articulate their thoughts.




9. Process and attitude

Look for candidates who pay attention to details and ask the right questions. Many programmers make the mistake of directly jumping into a solution without understanding the problem first. They don't even focus on context and the big picture.

In the real world, you never get 100% requirement, it's your experience and skill which is required to fill the gap. Just think about what happens when you go to a doctor and say you have a headache? Before giving you any medicine, the doctor does his due diligence in checking temperature, checking your eyes, mouth, and asking some questions, that is called diagnosis and it's a very important part of the solution.

This is true in every profession, when you go to a carpenter and order a bed, he will ask about its size, height, design, and other key details. Similarly, if someone gives you a problem to solve, you must understand it, don't be afraid to ask questions.

Even business guys expect technology to ask the right questions. Most of the time, they don't know what they want and this discussion brings out real details. So look for candidates who can think through, can find out gaps in requirements, and ask the right questions. This is the one skill that separates an average programmer from a good programmer.



10. Easy to Hard

Start with easy questions and move on to increasingly difficult ones. Ask questions that include problem-solving with technical details and ask the candidate to solve them loudly. Remember, the process is just as important as the answer and it gives the interviewer a detailed view into the candidate's thinking process and level of competency with the technologies he needs to use daily.



11. Don't ask what you don't know

Never ask questions whose answers you are not sure of because if you don't know the answer then how would evaluate an alternate wording of the answer or something which is very close but not quite the answer? In fact, you should be able to answer the question if a candidate asks you (though this is a personal choice, some people prefer not to answer and ask candidates to find it themselves after an interview).

I personally prefer to answer the question if the right candidate is asking it because I believe the interview is a two-way process, it's not just you, who are evaluating the candidate, but the candidate also evaluates you as a potential colleague or to gauge companies.

Another reason, I like to answer the question I ask is because I appreciate the curiosity and learning desire of candidates. It also gives me an opportunity to find out if a candidate is a good listener or not and whether he pays attention to details or not.

That's all guys. I am not perfect at taking interviews and I also make mistakes, but I like to learn from my mistakes as well as my fellow programmer's mistake

Remember, my favorite quote, "If you learn from your own mistakes, there is very little you can learn but when you learn from other's mistakes, there is no limit", So don't forget to share your thoughts. Do these tips even make sense or these are just too dumb?

Other Programming and Interview Articles you may like

Thanks for reading this article so far. If you like these online courses to prepare well for programming job interviews, then please share them with your friends and colleagues. If you have any questions or feedback, then please drop a note.

5 comments:

  1. Man, these might have been good questions 5 years ago. But reading them looks like you still get 100+ programmers for a simple job ad.

    Currently in Eastern Europe, we are out of programmers, and this had been the tendancy in the last 2 years. Also, we are glad, if we get 1 (!!!) CV for a job posting, and I work at a 14 country wide multi enterprise.

    So from my side I would say forget these hateful questions, and concentrate on the candidate.
    - Is he/she a good thinker?
    - Is he/she a good team player?
    - Is he/she goal oriented?
    - What topics do you have to teach them in order to make them work on projects?

    ReplyDelete
  2. true, if you just have one programmer to interview then you have to relaxed and set your expectation to find out how much traning is required to get him working on projects.

    ReplyDelete
  3. good questions.
    it really helps in country like India, where you get hundreds of candidates when you can hire only 10 at most...

    ReplyDelete
  4. I wasn't an interviewer before, try to be a good candidates now but it seems like it is like a relation hunt and hunter, we should be carefully at both side.

    ReplyDelete
  5. Indeed, It's true that whatever impression you left on candidate, especially good candidates, decide what he thinks about company's culture and whether or not he will join.

    ReplyDelete