...

My ways of interviewing job canditates (Software Developers)

First the disclaimer: I am not an expert in this hiring process - I am just posting this to share my current style of doing technical interviews.

The Resumes:
Firstly, I don't put too much weight over the resumes. I go through the resumes only to know more about the past work of the candidate so that I can have a plan for the interview. 

Written Tests: 
This is done mostly for the freshers,  to filter the better candidates from everyone applying for a post. The current company I work at, asks to write some small programs in this round. It is always hard to write a program on a paper, so we mainly check for the logic and algorithm than the syntax. The candidates who clear this will be called for the next round of technical interview.

Freshers - Non-Computer Science stream :
  • Interviewing these type of candidates is a good challenge. I would start with puzzles that could be solved with good analytic skill. When the candidate comes with a solution, I will try to add some possible constraints to the puzzle and see how he/she handles that. (I will try to post more about this in the future) 
  • If the candidate already knows about computer science, I would ask questions to check the depth of his understanding in the subject. 
  • The most important phase where I give more importance is questions about their academic project. I personally feel, the students who really do the project by themselves have the habit of getting work done. 
  • Most of these projects are not related to computer science, so I try to understand their project before the interview and ask questions related to that. "tell me about the toughest challenge you had faced in this project and how did you solve it?" is a very common question I ask everyone :)

Freshers - from Computer Science stream:
  • I would start with one or two aptitude puzzles very much similar to the above section of candidates - but instead of adding constraints to the puzzles I ask them to write program.
  • Mostly I ask direct computer science problems in arrays, strings, etc. I ask them to reduce time complexity
  • This will be followed by questions in Data Structures, OOPS, etc - mainly to check their understanding about the concepts
  • Questions about the academic projects will be very much similar to the above mentioned ones.

Experienced Candidates:
  • I ask them to write programs / pseudo-code - but instead of direct CS programs - I give a real life problems (like stocks, etc) to check how they approach the problem.
  • Based on their level of experience I would ask questions to check their understanding of programming concepts - interface, threads, cache, db joins, etc
  • More detailed discussion about their previous projects

Except for the questions I ask, nothing much have changed in this approach during the last few years. I was able to identify few real star developers using this. However, one thing I should learn is about - 'how to identify the complacency in the candidates' attitude'. 

If you have any suggestions please do share them in the comments section, below

No comments:

Post a Comment