NEW    Xobin is Launching XoForms    Read More

The right engineer for businesses

One of the worst things that can happen in your team is a bad hire. The part of bad hire I am referring to here is with respect to skill set. Getting an exceptionally talented Data Structure and Algorithm guy for a front end technology is a mistake on your end, and not the hire’s. To hire the right engineer for your team, you need to really understand the core requirements of your team. “Any computer science / software engineer” might not be the right fit for the kind of role you are looking for. Also Software Engineer is a very broad classification of engineers.

In my experience in the industry, I have learnt that Software Engineer’s can be further classified into the following more targeted engineering groups:

1. Product Engineer
2. Specialist
3. Fresher

Product Engineer

This is an engineer who might not be very smart with data structures / algorithms, but this person would be very smart in understanding of a product and can build features for it. And to be honest you really don’t need a person who is a hard core Data Structures & Algorithm junkie. What you need is someone who can translate your ideas into features and ship them, and clearly that doesn’t need Data Structures & Algorithm, except for the fact that your product itself would be some high grade computational algorithm. Example: Using cache doesn’t need any Data Structures & Algorithm knowledge.

Specialist

This is a person who needs to be fundamentally very strong with respect to  Data Structures & Algorithm. The kind of problems this person is going to solve will appear at a core or scaled level of products. Example: Optimising the cache to perform faster is a hard core computational problem. These people are really experts in their domain of knowledge. They know their domain inside out.

Fresher

These are people who are graduating out of colleges in the near future. These people mostly will not have a clear understanding of the industry and neither would they have worked on products to be judged on that. In this scenario you can only evaluate them based on what they have done in college or based upon what they have studied.


So how to hire the right engineer?

First, you need to go back to your product and team and understand your requirement. Based upon that, frame the right set of skills set needed.

When you are clear with the requirements, frame your evaluation strategy. This reflects on what the person might be doing when he/she joins. If they are supposed to work on a backend technology, then structure your interview around that. If the person you are hiring doesn’t have any background in the technology you are using, then evaluate him in his domain of expertise. Fundamentally, principles of software engineering remains same across the stack and scope.
 
Ask them questions based on their prior experience and the work they have done. Check if they have understanding of the things they have worked in depth. If you are hiring a product engineer then ask them about their contribution to the product, because having a person who understands the product very well would be an added advantage.
 

If you are looking for a specialist, get to the root of the requirement. Try to understand their approach towards the solution. Check if they ask you the right set of questions when needed. Check if they thought about the problem from a perspective that was out the given scope. These are the kind of insights that help you identify champions.

 
The point is that just asking different kind of Data Structures & Algorithm problems doesn’t help you in getting the right person on-board, so hire wisely!