Software Engineer Job interview : Interviewer goals and duties

Recently I opened a requirement for a principal software engineer (with 8-12 years experience), I asked my engineers to take the technical interviews.  After every interview, I ask my engineers a question, “can we hire this candidate?”.  I don’t get a straight answer from these interviewers. They say, he is good in some aspects, just ok in other aspects and candidate could not give a correct answer for that problem…..

Then I asked these questions to them:

  1. What did go well?
  2. What did not go well?
  3. Is he capable of doing the work you do?
  4. How easy to work with this guy?
  5. Score out of 5?

Even with these questions, there are some dilemmas to hire or not hire. Then I understood that these interviewers are going without any goals and they just wanted to get a good feeling of the interview and expecting correct answers to the questions they ask. I came up with some inputs to make their decision process easier.

  • Timebox your interviews for an hour. You can split your time:
    • 2min on ice breaking, no discussion on the salary, no long discussions on the product. If he insists more, tell them that hiring manager will discuss with you.
    • 2-3min: explain the problem
    • 2-3min: make sure he understands the problem.
    • Rest is based on what you are asking and your good guess on, how long it takes.
    • Don’t extend beyond 1 hour.
  • You can ask questions on below categories.
    • The coding interview is to test the ability to write a program for a given problem. It should not be a complex problem. Solution can be identified in say 5-10min and coding can be done in 30-40min. Goal:  efficient solution,  he can write modular code, handles error scenarios, uses the language constructs very well, ability to test his own code.
      • The candidate has to articulate the solution first.  You need to answer all the requirement gathering questions that candidate asks you.
      • Have a guess on how much time it takes and give that much time to write the code.
      • Once he/she writes the code,  see if he/she can come up with some test cases (boundary, negative tests) and apply on his/her code.
      • If he can’t finish, ask him if he wants to spend some more time to write the solution. Let the candidate yield to his inabilities.
      • You need to have few set of coding related questions prepared and have a good guess on how much time it takes to come up with the solution & coding.
      • If you think he/she is not solving the problem, give them a test case and ask if his/her solution addresses the test case.
    • Complex Problem-solving Interview. It takes time to come up with the solutions, it may take 30 mins. Goals: Candidate understands the problem and articulate it, approach to problem: methodical or random, uses his algorithm and data structure skills
      • Idea is that he can split the problem into sub-problems
      • Applies his knowledge of Algorithms and Data structures.
      • Identifies the corner cases and other possible solutions.
      • As an interviewer, your job is to help him answers related to requirements and hints in some cases.
      • Coding is not the criteria.
    • Knowledge interview questions. Goals:  Knows what he claims,  his/her knowledge is useful for us.
      • Example: knows what is a threading model, knows the importance of CPU/ memory utilization, have an understanding of replication and importance of encryption, know distributed databases work,  what is async IO.
    • Design interview questions. Goal:  Candidate has to collect the requirements from you,  he should be able to list the problems that he needs to solve,  can draw a component diagram, Can write simple API,  able to use knowledge. 
      • These are open-ended questions, no fixed answers.  He should collect the requirements from you.
      • Ability to understand system limitations,  uses his knowledge to subdivide the problems.
      • You can focus either on solving subproblems (or) You can focus on High-level design (or) You can focus on API design (or) You can focus on areas where you and the candidate have more knowledge.
      • Your task is to identify such design problem.

 

Advertisements
This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s