I was called for checking out a few candidates for their suitability for my project when I decided to put in this blog post on what candidates need to have to make it into a team of engineers on a core project. This post comes after having the chance to screen through atleast 100+ resumes of different sorts from different companies in Bangalore.
What an interviewer looks for in a candidate can be classified into some basic categories.
- Language/Coding skills – Here we look for a basic understanding of the language used in coding a particular project. The most common languages that we look for in an embedded systems perspective would be C/C++. In some cases depending on the project requirement this would change
- Design skills – A simple problem (which involves design) is presented to the candidate, and he is expected to bring out a solution in the form of pseudo code or block diagrams or even sequence diagrams at times, depending on the nature of the problem posed. Here the expectation is to understand from the candidate the way in which he approaches this problem, more than to find out whether the end solution is right or not.
- Platform knowledge – No one single individual can be an expert in terms of the platforms he has worked with unless the candidate has put in a consistent 8-10 years of work in that field of study. Hence what is expected out of say a 3-4 yrs experienced individual is to see how much of platform influence he has had in his projects that he has worked on during this tenure. This might be either direct work on the platform, or work on layers higher than the platform that use the platform to a great extent. Arguably, one should understand that there are so many different architectures, and so many different flavours of chipsets and peripherals which everyone may not be and is not required to be aware of.
- Standards knowledge – Candidates are these days also generally assessed for their knowledge on standards and/or protocols as specified by bodies such as the IEEE, ITU, etc. Sometime 10 years back, this was a luxury work for people to do in India, but not anymore. The advances in technology have now made it possible for anyone anywhere in the world to access these standards and derive knowledge out of them. Of course this is not a strict requirement, but exposure to standards during the course of the candidates projects is considered a plus. What is of importance here is that the trait of a person who knows how to read a standard and derive designs/conclusions from the standard is considered an art well learnt by him.
- Tools – Most Indian programmers mistake tools for languages, and most resumes reflect this fact. By tools, what is expected is an exposure to hardware connectors/standards (JTAG, VisionICE, VisionProbe, STConnect, etc) and debuggers/toolchains associated with such probes/connectors (Data Display Debugger, Montavista Debugger, VisionClick, etc). When candidates have had this expsoure, it only means that they are well versed to integration activities, a lot of debugging and in turn, knowing the nuances of the underlying system well enough to deal with potential risky bugs during the course of the project.
- Operating systems – This is also one of the sought after experience from a candidate. I have seen most engineers list out Linux or Windows as an OS they have competency on. Merely working on these operating systems is different from understanding their kernel structure, and interacting programatically with this kernel and associated drivers. So when I see Win NT or Windows 2000 as a core operating system experience, I would expect the candidate to really have knowledge about the underlying kernel, and the lowest level programming SDK offered by the system to interact with it. In the case of linux, since it does not offer much of user interface based usage experience, candidates who have worked with Linux would generally have a better understanding of the underlying OS itself as that is how one can be effeciently programming with it.
- Real Time Operating Systems – Though one cannot expect every candidate to have direct experience with an RTOS, these days its becoming all too common for engineers to be associated with some or the other platform, which eventually runs one or the other flavour of RTOS available today (vxWorks, pSOS, Nucleus, QnX, or totally propreitary ones). The word propreitary in brackets is a kind of a misnomer, since even vxWorks, pSOS etc are propreitary, except that they are famous compared to the infamous ones! So when we quiz a person having direct expertise having worked with one of these RTOSes, what is expected is a basic understand of what an RTOS offers. Also we try to understand what sort of concepts the candidate knows in the course of using the RTOS (semaphores, queues, timers, interrupts, memory maps, file access, shared memories, pipes, etc). When the candidate is seemingly very good at these, we further quiz him with variations of usage of these IPCs interchangeably to understand how much the candidate is able to think differently to apply similar concepts to achieve the same results/solutions.
When a candidate is able to satisfy the above listed categories sufficiently, he is then mapped against which of these categories is most important for the current projects. We then come to understand if the candidate’s category expertise matches with the needed categories for the project. This is the end of Stage 1. The next section is about the soft skills required from the candidate. A separate post on this blog will talk about that aspect of an interview.
The second part of this post deals with some soft skills that we look at as interviewers to hire a potential candidate. I shall briefly touch upon a few important things we look at in the soft skills basket; in this post.
Communication: This term is rather heavily misused under different contexts in the industry today. As far as the context of an interview goes, the only meaning I would like to attribute and see whether the same is present in a candidate is CLARITY OF THOUGHT. While this might mean something very easy to understand one has to look deeper to actually visualize what this means. While what you are speaking matters to us, we also see if you are consistent with the thought process running in your mind. Whether you are able to organize your thoughts properly within yourself before you speak it out. Whether you are able to prioritize the order of what things you are about to say out during the interview. These answers could be for either very simple questions like: “Tell me a bit about yourself” upto something as complex as a sample business case being spoken about or doled out to check the candidates understanding: “If you are about to attend an extremely important meeting and you get stuck in a traffic jam, which is preventing you from reaching on time, what would you do?”
Presentation: Coupled with communication, this is perhaps the second most important thing we look for in a candidate in that order. I have personally seen people who have very good communication possibilities but have pathetic presentation skills. This only means that they know what exactly to talk when its all in their mind, but when they actually say it out, they muddle it up to an extremely confusing extent. And when the going seems to get tougher for the candidate to put his point across, he/she even try to link all the pieces of the jigsaw in the most wrong order possible. This makes the entire big picture totally useless for the person conducting the interview and the first impression is one of a (possibly invited) misunderstanding already!
Assertiveness: This term refers to the urgency and assurance with which a candidate claims what he did or said is right or wrong. The quality is about being able to convince the interviewer that your way of thinking would give the right solution. But its best to say the right things and then show the assertiveness! A person who is not assertive is perhaps considered malliable (like we say for a hot rod of steel) into situationary circumstances. This could be either good for the candidate or bad as the case may turn out. It could turn out that opportunistic colleagues could bend him to their selfish ends or that the candidate himself may fail in my situations where he cannot be assertive enough and lose out opportunities due to that.
Aggressiveness: This term refers to the quality of being able to drive a situation in a leadership sense towards acceptable closure. It could be a project or it could be speaking to peers or it could be bringing about new ideas and so on. While interviewers look for positive aggressiveness where a person’s opinions have validity as a supporting factor, negative aggressiveness is something very hard to check in terms of presence in the interviewee until he/she is hired. The negative aggressiveness is one disastrous quality that no manager would prefer anyone in his team to have since it would slowly tend to demoralize each and every member of the team.
Innovativeness: While in general people misunderstand this term as one that means being innovative with respect to bringing about product ideas or projects that drive the company’s bottom line growth, the real meaning of this term is something far different. Innovation is the ability to think differently when you are stuck in a complex situation. Its about choosing one among those various lines of thought – the one that you think is the best and fastest – to help you unwind from that situation you are stuck in. This kind of innovativeness is guageable in a potential interviewee by presenting him with a real world project scenario. It is this kind of innovativeness that is most required in every project and is almost becoming the urgent need of the hour these days considering the pressure involved in project releases or milestones that are dangerously close to each other. A person who is innovative also is a natural problem solver and the company would be indebted to these set of people who drive things forward each time.
Attentiveness: Today’s teams and projects have so many things happening within themselves that most times many things from simple to complex category go missing simply because people are not attentive when such things are being discussed. This carelessness has caused many a project downfall or miscommitments that lead to pressure situations within the project. While the manager is responsible for this not to happen at a global scope, it becomes the responsibility of each engineer to be as attentive as possible during the project execution phase and otherwise.
Proactiveness: This is one of the most important qualities that anyone looks for in a candidate. A proactive engineer is an asset to any company or management. It means that the person is mature enough to schedule his tasks efficiently, foresee slippages in work or time and is quite adept at escalating risks at early stages in the work phases. A proactive engineer also has the humbleness to accept credits and courage to stand up to his drawbacks to improve upon each time as he progresses with his career. A person who manages his time extremely well can also naturally multitask and improve the average productivity by leaps and bounds. This is a definite want in today’s compelx work scenarios.
Friendliness: Last but not the least, it pays to have like minded people who are friendly, agile, intelligent and people whom we also can learn new things from. Life in the industry is about good work, knowledge, and lots of fun. So the candidate must be an easy person to move around with and be at an optimal level of proactivity and progressiveness that would make him the most wanted guy in any interview!
So there you go, I ve put in all the things that make the right candidate for the interviews and long term career in any company. Hope this article will help you in some way or the other some time or the other.
Technorati Tags: India Inc, Leadership, Skills, Soft skills, Aggressiveness, Assertiveness, Software Development, Skills, Language, Coding, Design, Skills, Platforms, Standards, ITU, IEEE, Data display debugger, Monta vista, Wind river, VxWorks, PSOS, QnX, Nucleus, RTOS, Semaphores, Pipes, Shared memory, Map, Files, IPC, Tools, Vision ice, Vision click, Vision probe, St connect, Linux, Real time, C, C++, Windows 2000, Windows NT, OS, SDK, Interviews, Candidates, India, Bangalore, Bengaluru, IT, Soft skills, Proactiveness, Attentiveness, Friendliness, Innovativeness, Presentation, Communication, Service companies, Projects, Customers, Candidates