Deconstructing the Template – Part I: Gut Feeling (Continued)

This article is a part of Steve’s Guide to Conducting Software Interviews.

Following up on my last post, I will continue to explore and explain my reasons for putting the interviewer’s Gut Feeling forward as the most powerful tool any interviewer has at their disposal.

Cultivate Good Judgement

So during an interview if you have, as we explored last time, kept an open mind and absorbed all the information told to you by the candidate in their interview as much as is possible, then your gut will be well-fed, so to speak, and prepped for good decision making. But in order to effectively listen to it you have to apply your best judgement.

What is the best way to do that? Well, in this area opinions may certainly vary, since good judgement is that ephemeral quality that most acutely separates the wheat from the chaff in any field, as it is with the skill of interviewing. But I will talk generally about what I do, for what it’s worth.

First, before making any evaluations I think you should start by seeking to understand where the candidate is coming from and the value that they think they could bring to the position. In other words, try to like every single candidate. Why? Because you will naturally be biased in some way, and empathizing with them will help you to remain objective and fully consider how different candidates could do well in the role in different ways. Good judgement will allow you to determine which of the statements they made are important in terms of identifying the true characteristics of the candidate that you may care about, and which statements were not that important. Hopefully during the interview you gave the candidate the opportunity to address any explicit concerns you may have had about them, and will be better able to judge at this point whether you think those things were satisfactorily addressed or whether they may still be concerns.

Once you have taken the time to objectively listen to the candidate and tried to understand the value of the applicant’s candidacy from their point of view, then you are in a position to compare them effectively against other applicants. Personally I would always strive to not make value judgements about the applicant or their candidacy, because as I explained earlier, any judgements you make based on an hour or so’s interaction could easily be wrong, and there’s no reason to do it anyway. Rather than judging, just let your impression of the candidate sit in your gut and remember it for when you want to do a comparison with the impressions of other candidates. As interviewer, it is in fact not your job to judge the candidate (a common, unfortunate, and needless tendency among inexperienced interviewers), but only to choose the best fit for the position based on your opinion.

On a related note, I do believe it is crucial that the same interviewers be allowed to interview all the candidates for a position if possible. In addition to ensuring some amount of fairness and consistency in the process, there is also no way to compare your gut feelings with someone else’s, and this is the most sophisticated tool available to a hiring team, when used skillfully.

Take a Risk!

All of this brings me to what is perhaps the single most important piece of advice I would give to anyone conducting an interview: at the end of the day, if you like someone, hire them!

Imagine the following scenario: you’ve interviewed a bunch of candidates, and there are two or more who in your view are clearly the top picks, but one in particular stands out as giving you a great gut feeling. The problem is, that candidate does not seem as good of a fit as one or more of the other candidates in terms of technical fit, or relevant work experience, or they have weaker references, or some other such blight on their application. Should you second-guess your gut and let that one issue kill your preferred applicant’s candidacy? No!! The reality is that there are problems with all of the candidates, it’s just that by chance or by circumstance the others managed to slip under your radar. Again, it’s just not possible to fully and accurately assess a candidate, and additionally there is no such thing as a perfect candidate! The fact that your gut feels good is probably a bigger deal than whatever minor issue you are concerned with.

Of course, the preceding is predicated on the understanding that you approached all the candidates’ interviews with an open mind, that you really invested in each of them by attentively listening to their presentations and seeing things from their points of view, that you exercised your best ability to be objective throughout, and finally applied your best judgement with respect to the information you received about them. If all of these things are true, and your gut is clearly favouring this one candidate, then I believe strongly that you should trust it, and hire that candidate (or pull for that candidate if you are part of a hiring team).

What’s the reason for this recommendation? What we refer to as gut feeling is a highly evolved facility of the human brain. Your gut is always sub-consciously analyzing and consolidating all the information it has on a subject into an overall impression, and mixing in all your previous experiences and memories. In other words your whole mind and body is constantly at work trying to advise you on what is good for you, and what is bad for you, and is using everything at its disposal towards this end. This is a powerful and sophisticated facility that we all possess which can be applied to great effectiveness in decision-making when properly understood and applied. Your gut is a tool that evolved precisely for the purposes of effectively navigating the unknown, and any hiring situation is that by definition! Your gut probably knows things your conscious brain doesn’t, and that’s why I put gut feeling as the #1 tool an interviewer should pay attention to. However effectively listening to your gut is a skill that must be practiced, as unexamined raw feelings can also be misleading.

To further explain my endorsement of the gut, recall my definition of hiring from The Problem with Interviews. The candidate’s performance in the job will be evaluated on the basis of a variety of factors, many of which are nebulous and ever-changing. It isn’t possible to precisely predict how value within the job environment will be ultimately decided, but your gut will put forward your best idea of how it will be. Far beyond the checklist of requirements on paper, when hiring you’ll crucially be looking for someone who will interact well with other specific members of your team, whose values will fit with the company culture, whose reactions to foreseeable changes in the job environment will be constructive, and so on, and so on. All of these things put together reveal that you are in essence being tasked with navigating a system that is far too complex to understand and measure exactly, but your gut will be taking it all into account to the best of its ability, and will be advising you if you know how to listen to it.

So am I saying that listening to your gut is guaranteed to result in a good hire? Of course not! Again, there are no guarantees in hiring. Nor by any means should any responsible interviewer be hiring based on gut feeling alone! But let’s be clear, no matter what you do, you have to take a risk on a candidate at the end of the day. It is far better to take an educated risk in full awareness of all the factors than it is to isolate your decision-making within the bounds of a narrow system that you convince yourself is somehow infallible. If you are tasked with hiring someone, get used to the idea of risk, because it is a necessary part of the picture!

Rather than offering any guarantees I am simply saying that the skillful listening to your gut will guide you towards the best possible decision, given the totality of the information you have available to you about the candidate, which is necessarily incomplete. To make a good hiring decision you of course should be drawing on all the tools available to you as an interviewer, specifically the other items in the Interview template as well as any other techniques you feel offer value. However any tools you use to learn about a candidate should be informing your gut feeling, and therefore that feeling should represent your intuitive analysis of the candidate’s whole application. Be aware too that, as with any skill, your ability to use your gut effectively will be enhanced the more interviewing you do.

So what about the opposite situation, where a candidate looks perfect in every respect but you have a bad gut feeling about them? Should you reject that candidate? This is a tough situation, and must be handled on a case-by-case basis. In this scenario it’s necessary to really take a hard look at your gut feeling, and ask yourself if you are indeed being objective about the candidate. If you feel that the answer is yes, that you are using your gut properly, and especially if you are experienced and have reason to believe that your gut is often correct in hiring situations, then maybe it is telling you something important about the candidate. You should try to identify specific concerns that might be the reason for your unsettled gut. Perhaps a follow-up interview would allow you to explore them further and either settle or confirm your bad feeling.

A quick aside here to note that following-up in order to rout out potential problems with a candidate you generally have a good feeling about is not appropriate. You might be able to dig up dirt on any candidate if you try hard enough, but why? If you have successfully collected enough information about the candidate to satisfy most or all of the items of the Interview Template, and following all that you have a good gut feeling, then it’s time to make a decision. Again, the point here is to let your gut feeling guide you, whether it be good or bad, and not to make the mistake of striving for perfect information and a perfect fit, which will necessarily fail and only serve to introduce more entropy into your process.

Coming back to our bad-feeling scenario, unless you have a good reason to believe that something is really wrong with a candidate’s application, I’d tend to err on the side of giving them a chance to show you what they can do. Hopefully your company institutes an initial probationary period, as is the industry standard practice, during which you can evaluate whether your bad gut feeling was in fact justified or not. Again, hiring without risk is not an option, even for “perfect” candidates.

It’s worth pausing here to consider what those risks of hiring the “wrong” person actually are. The truth is, if you are making any kind of effort to assess your candidates, and doing your due diligence when screening, your chances of hiring a nightmare candidate are pretty low. This fact is precisely why companies are able to routinely ignore the propagation of poor hiring practices and still manage to chug along and even be successful. Most candidates are going to be reasonably decent, honest people. Even if you do hire a nightmare candidate, the company is typically fully equipped to deal with the situation by terminating that employee by any number of means, although this situation does incur appreciable expense and potential liability. Ultimately the goal of your interviewing should be to avoid the nightmare scenarios first by eliminating candidates with serious problems that would certainly interfere with their performance on the job, and otherwise to do your best to maximize quality (read: fit) in the candidate you do choose, which, as I’ve said is a nebulous and mostly unmeasurable goal. Nevertheless, striving for quality does, when taken seriously, make a real qualitative impact when considered across the a company’s overall hiring effort, as you will know if you’ve ever worked with a great team of people. And it’s for this reason that good interviewing skills really matter.

Next: Getting the most out of a candidate’s resume.

Deconstructing the Template – Part I: Gut Feeling

The human gut

This article is a part of Steve’s Guide to Conducting Software Interviews.

To get started on discussing the tools for candidate assessment I included in my Interview Template, I’ll proceed down the list from most important to least important.

  1. Gut Feeling
  2. The Resume
  3. References
  4. Examples of Previous Work
  5. Toy Coding Problems
  6. On-the-Spot Thought Exploration Problems
  7. Interview Questions
  8. Technology Fit

As you can see my number one tool for assessing a candidate is the interviewer’s gut feeling. This might seem over-simplistic to some readers at first glance, but as the discussion unfolds I hope to show that this is not the case, and to make a convincing argument for why gut feeling should be the first thing you turn to when choosing from your pool of candidates.

Gut feeling is a powerful, but tricky, tool for assessing a candidate’s fit, and it goes far beyond whether you have a warm and fuzzy feeling towards them or not. The reason is that the interviewer’s gut is his or her best facility for consolidating all of the information they receive from the candidate into an overall impression, but there is a definite skill in using this feeling effectively which must be cultivated through practice.

Have an Open Mind

For starters, in order to have an effective gut feeling the interviewer needs to begin with an open mind towards the candidate, and this in and of itself can be difficult. The best interviewers, in my opinion, must start from a place of being very self-aware. When this condition is in place they can then work to minimize the negative effects of their own psychology on the interview process.

I discussed a prime example of this in the last post when I talked about how the interviewer’s ego impacts on the interview. Interviewers who don’t take express steps to guard against their own ego are likely to allow it to become the focus of the process, ultimately leading to a low quality result. Any ego-based agenda carried by the interviewer will pollute their gut feeling, rendering it less effective for the purposes of identifying the best-fit candidate.

Ego is just one example, but there are many other pre-existing feelings in the interviewer that can colour their gut feeling, and close their mind in one way or another. For example, maybe the interviewer is naturally introverted and is experiencing anxiety around having to conduct the interview if she is not accustomed to doing so. Or maybe the interviewer was up late last night working toward a deadline, and got almost no sleep and feels awful. Or maybe the candidate looks a lot like the interviewer’s ex, with whom he had a messy break-up last year.

The number of influences on an interviewer’s gut are countless, but the point is a good interviewer must take the initiative before, during, and after an interview to step back, perform an honest analysis of their own state of mind, identify any of their own potential biases, and strategize to eliminate the effects of these inclinations as much as possible in order to approach the interview with a truly open mind.

Be a Good Listener

If the interviewer’s mind is open, then he/she is in a good state to begin accumulating information about the candidate by listening to them talk in the interview. Candidates who are relaxed and feeling good about the interview will be more likely to be in a conversational mood and revealing all sorts of information about themselves. A great interviewer will not only create the conditions for this to happen, but will also themselves be ready to fully absorb all of this information as it comes at them.

A key aspect of this skill is to really listen to everything the candidate is saying, and not get side-tracked by zeroing in on one statement that you think might indicate some kind of problem. Remember that the candidate is nervous, even if you have taken efforts to relax them, and any of us when we are nervous have the potential to say stupid things due to a lapse of judgement. Some of the things said by nervous people portray things in a worse light than is accurate. Sometimes this happens when the candidate stumbles into a conversational area where they are concerned that something about themselves will come off poorly to the employer. That doesn’t mean the candidate is guilty of something awful you should be concerned about, just that they are nervous and insecure as is perfectly normal for someone being asked to prove their value to strangers! Still, it may be something you might want to delve into more deeply later to find out what their concern might be.

In my view the best way to react when candidates make potentially troublesome statements is to make a mental note to follow up on one issue or another later, but do not interrupt the candidate to talk about it right then and there, since doing this will stop the flow of information and reinforce his/her nervousness. Instead allow them to keep talking and help them to re-settle their nerves after stumbling into an area of vulnerability. However if you do decide to let the candidate keep talking it would be even worse to interpret the statement on your own by jumping to negative conclusions about the candidate and never giving them the opportunity to address those concerns! Again, nervous behaviour in an interview does not imply a liability. Above all do not get fixated on that one statement. Let the moment pass and keep listening to everything the candidate is saying, as they could go on to reveal something even more important that you’d miss if you were still worrying about something they said two minutes ago.

As you can see, there is a lot going on for the interviewer here. He/she must be on the ball enough to continue listening and absorbing at all times, keeping an open mind, mentally keeping track of issues to follow up on, and doing it all while maintaining a relaxed and friendly environment that keeps the candidate talking. All of this takes a lot of mental and emotional control as well as the ability to multi-task, and is yet another reason why I say interviewing well is really hard, not everyone is naturally great at it, and, like with everything, practice helps!

Another skill that should be practiced by interviewers is conservative note taking. In my opinion it is far more important for an interviewer to listen deeply and absorb the candidate’s interview into their gut than it is for them to record every individual piece of information being shared on paper. Not only is the latter next to impossible to do in real-time unless you are a trained stenographer, it will interfere with your listening. Also most of the information they are sharing should be in relation to something on their resume, so you can take five minutes after the interview to go through and make some notes in the margins of their resume based on your recollections. Notes could be helpful for reminding yourself to follow up on various issues you are interested in, but be careful to make them skillfully and discreetly. If you make a note every time the candidate says something troublesome, they will certainly become more nervous since they probably said those things from a place of vulnerability and your action will only confirm their fears.

Keeping an open mind and listening are preconditions for effectively using your gut feeling when assessing candidates for a position. In the next post I’ll go into more thoughts on how to do this for maximum effect!

The Problem With Interviews – Part II

This article is a part of Steve’s Guide to Conducting Software Interviews.

This post follows up on the list of some general difficulties that impact all interviews, which I started in the last post. In the next posts I’ll go through my interview template and explain my thinking behind each piece.

The Balance of Power

One of the biggest problems with interviews is that the interviewer and the interviewee are in drastically different positions with respect to the balance of power in the room. This is a dynamic that a pro interviewer needs to understand and mitigate against if they want to conduct an effective interview.

When interviewers walk into the interview room, they hold all the cards. Beyond just having decision-making power over the candidate’s application, they are also much more informed about everything related to the position than the candidate. They have intimate knowledge of the company environment, the business, the technical aspects of the job, what skills are required and why, and so on, and so on.

By contrast, the interviewee knows almost nothing. In most cases they have never been exposed to the company’s environment, employees, or systems. While they may have some general domain knowledge depending on the situation, they certainly will not have the in-depth knowledge of the employer’s specific problem domain for which the hiring is being done. Also, while both employer and candidate want to present themselves well, the onus for making a good impression falls much more heavily on the candidate’s shoulders.

So all of this results in a drastic power imbalance between the parties. Both parties are keenly aware of the fact, and this dynamic is sure to affect their respective behaviours. We are all human, and it’s normal that when we find ourselves in an imbalanced social situation our behaviours tend to reinforce the imbalance and amplify the social dynamic.

For the candidate, the power imbalance results in a bad case of nerves, which I discussed in the last post. However the interviewer will react equally in the opposite direction, which is to feel pretty good about themselves. To be clear, what I’m talking about here is the ego of the interviewer, and it’s a major influence on any interview.

This effect is strengthened by the surrounding circumstances as well. Since the company is clearly hiring, it’s safe to assume that their business is probably experiencing success and growth, which would serve to make any committed company employee proud of their company and of their own role in its success. Also since the interviewer has been selected by management to conduct the interview, it’s reasonable to suppose that their personal career is probably doing just fine as well, and were maybe even recently promoted. In fact, many employers use the granting of interviewing responsibilities as a reward for past performance, because it demonstrates a willingness to grant extra responsibility to the employee who gets it (I also think this practice has very negative consequences, and will re-visit it later).

So to recap all of this, the common interview dynamic is that the interviewer is experiencing a swirl of ego-reinforcing influences, and the interviewee, who is under scrutiny, is experiencing stress. The result of all of this is that, being human, it is often incredibly easy for the interviewer to take advantage of this imbalance, probably unintentionally in most cases, and make the interview about him or herself, rather than about the candidate and the position.

You can tell that this is happening when the interviewer spends a lot of time talking about themselves and their recent successes, and what their expectations are. Also it’s common that the interviewer will be treating the job as if it is some kind of prize that the candidate is trying to win, and as a result grilling the candidate about all sorts of questions taken from the employer’s problem domain (which of course the employer knows more about). In short, the interviewer will be projecting a feeling of “Are you good enough to work for us?” as opposed to “Tell us more about the value you could bring to our team”. The former has the effect of keeping the candidate on the back foot – that is, reinforcing the power imbalance in the room, which is a strong indicator that that has become the focus of the interview, rather than exploring the candidate’s fit.

A secondary consequence of this effect is that the employer will fail to show respect for the candidate. If the employer doesn’t value the experience, skills and knowledge the candidate is bringing to the table, then why are they wasting their time and money investing in this person’s interview? Hiring is a negotiation and therefore a two-way street. Interviewers that forget that may end up making themselves feel pretty good at the expense of losing out on valuable talent, for example if they dismiss candidates for the wrong reasons without having effectively assessed them, or the candidate goes elsewhere where they feel they are more valued. It’s also just bad form – for the sake of professionalism any employer should show respect for the time the candidate is taking to come and interview with them, even when they decide not to hire the candidate.

I’ve been to so many interviews where this dynamic is prevalent that I feel it is a massive influence on all software hiring processes. Can you find a good candidate by interviewing without dialing back on your ego as an employer? Undoubtedly you can in some cases, but it’s clear to me that exacerbating the power dynamic does nothing to make your job as an employer easier, if you are concerned with achieving a quality outcome. Making your ego the focus of the interview will certainly make you feel good about yourself, but that’s not what the company is investing in when they pick you to do the interviews. At the end of day, no matter how you interview you will end up with some kind of candidate, but if you haven’t done your job well then you are rolling the dice when it comes to whether they will perform well in the role or not.

So I believe that an enlightened interviewer needs to be very self-aware in order to be effective, and must take steps to mitigate their own emotional needs and proclivities in order to make a sober assessment of their candidates. By the way, doing this well is really hard and is one of the big reasons why not everyone is great at interviewing. What are some ways to reduce the effects of ego and nerves in an interview? I’ll discuss these more when I get into the details of my interview template.

No Quality Control

As I alluded to in the last section, I believe strongly that interviewing is a difficult and valuable skill, and the reality is that not everyone is good at it (at least not initially). However there seems to be little recognition of this reality in the industry, and usually the responsibility to conduct an interview is assigned to random team members for all sorts of reasons other than their abilities in this domain. I find companies’ negligence in this area mind-boggling when you consider the massive costs to any organization of hiring someone who turns out to be a mediocre fit for the position, not to mention the opportunity costs of letting a better candidate walk away.

So how do you know if someone is a good interviewer? I’m sure this is a question for someone much more knowledgeable about Human Resources Management than I. It seems to me that track record would be an obvious indicator, however I’ve never heard of a company that puts measures in place to track people’s success in hiring. For example, if an employee routinely receives poor performance reviews at his/her job, have you ever heard of that tracing back and reflecting on the hiring performance of the person who hired that employee? I haven’t. And yet it stands to reason that the interviewer responsible for choosing to hire that employee probably didn’t do a stellar job in that instance. However in every company I’ve ever worked at nobody remembers who hired anybody, and as a result somebody who is being ineffective as an interviewer will probably continue to be asked to do interviews, inviting more poor hiring decisions for the company, and compounding costs.

The reality is that hiring is an art and a science, and it takes an individual with knowledge, technique, empathy and judgement to do a really great job at it. In addition to this laundry list of qualities, which is a big ask to begin with, tack on an in-depth domain knowledge related to the position as well. So it should be clear that many, many factors need to come together to make someone an effective interviewer, and the chances that this will be the case for random team member X, regardless of whether he/she is a strong technical asset, are not great.

It seems to me that companies should be getting much more serious about finding ways to identify this skill set and leverage it, since any effort to do so would undoubtedly have a huge effect on….everything! Investing in the quality of your team members has to be one of those fundamental business decisions that would ripple quality throughout your organization.

But despite my feeling that is shouldn’t be so, clearly it is the industry norm to treat the role of interviewer with nonchalance. As a consequence when you walk into a room to do an interview, you never know who’s going to be sitting across from you. Chances are their only qualification is that they have some technical proficiency at a similar job for which they are hiring. If you’re lucky, it’ll be someone more senior who has performed many interviews in the past and has managed to pick up a bit of skill through experience and repetition. Almost certainly the person will have received almost no formal training in how to conduct an effective interview.

If you are unlucky enough to get an interviewer who has little to no hiring experience, then how the interview will transpire is anyone’s guess and, in my experience, tends to seem pretty random. For instance, if the interviewer is failing to effectively assess you with their questions, then the onus is on you as the candidate to try and guess what they’re looking for and present them with the best information about yourself that you hope will address those requirements, and keep your fingers crossed that they will listen to what you’re telling them. If you guess wrong about what they’re looking for then your candidacy will likely be dismissed out of hand. Actually, because of the power imbalance issues discussed in the previous section, there can even be an incentive among inexperienced interviewers to dismiss your candidacy out of hand in many cases, because to do so implies that you “weren’t good enough” in their assessment (corollary: they are better than you at your job). So that could very probably happen unless you manage to figure out what they’re looking for and really impress them.

Perhaps some people think that managing to get past the interview is your first test as a candidate – in other words, that success in charming and convincing your interviewer will somehow be an indicator of your superior job ability. As with testing you on your ability to public speak (as discussed in the last post), this is a red herring. These two skills, especially for most technical jobs, are unrelated, and therefore allowing this “test” to determine the outcome of the interview is a poor (and usually unintentional) technique for effectively assessing a candidate’s fit for the position. In fact, relying on this test is probably a sign that the interviewer doesn’t have any other tools for assessing the candidate. And it’s in part because I have seen this way too often that I have attempted to lay out some such tools in this series of posts.

Without Further Ado…

So now that I’ve gone over some of my thinking on some of the general problems that serve to interfere with employers doing effective interviews, and hopefully as my way of thinking about hiring is becoming more evident, I’d like to take the next several posts to present my own solutions for these problems, by going into the details of my Interview template.

The Problem With Interviews – Part I

The Problem With Interviews
This article is a part of Steve’s Guide to Conducting Software Interviews.

So what’s the problem with interviews? The problem is….it’s HARD to do them well!!

Before I get into the explanations of the hiring template from my previous post, I want to point out some general dynamics that are present in any interview, and which make the interviewer’s job even harder.

Assessing A Candidate in an Interview is Impossible!

Let’s get right into it, shall we? The number one reason why doing good hiring is difficult is that as human beings we have no tools that we can use to accurately assess a candidate’s ability. They just don’t exist! If you believe that it is possible to accurately assess a candidate’s ability on the basis of an interview than in my view you are already proceeding on bad assumptions!

How can I justify this? Let me start by trying to define the purpose of the hiring process:

"The hiring process attempts to identify the candidate from a pool of available candidates who, after serving in a role within the company environment over an arbitrary period, will be deemed to have produced the best work."

This is my best attempt at stating the ostensible purpose of the hiring process, and hopefully from this statement the problem is already pretty clear. There are so many variables in this statement that it almost sounds ludicrous.

First of all, both “the role” and “the company environment” refer to concepts that are not only nebulous to begin with, but also guaranteed to change over time. Who is the arbiter who deems the value of the person’s work, and over what period is the assessment made? And how on earth could you possibly measure that work in any meaningful way against the work that would have been performed by one of the other candidates in the same environment over the same period?? And consequently, in what possible way could we design a process which can effectively identify this candidate in advance of any of these events transpiring??!!

The clear answer is that it is impossible to design such a process, and it is impossible to know who the “best” candidate is, especially on the basis of a half hour interview! Anyone who has confidence that their hiring process is infallible, and puts complete faith in their own interviewing skills, is probably doing a bad job, because they clearly don’t understand some basic realities around hiring. By contrast, to my mind a good interviewer should have some doubts about his/her choice of candidate, and whether he/she might be overlooking superior candidates, because those doubts reflect a more accurate picture of reality!

So why bother interviewing at all then? Well it’s not all bad news…Interviewing is an opportunity to try and improve your chances of picking this “best” candidate (if you do accept the terms that there is theoretically one candidate that owns this designation). One of the main functions of an interview, in my view, is to eliminate candidates who exhibit some kind of “show-stopping” characteristic that would prevent them from doing a good job – for example, having a history of creating negative conflict with their co-workers. Also it is an opportunity to get more information to flesh out the items in the hiring template. More on that in the posts to follow.


So in addition to starting from the premise of doing the impossible, there are a plethora of factors that additionally complicate and obscure the process of trying to assess candidates for a job. One of the most prevalent, to my mind, is the candidates’ nerves.

I included the image at the top of this post because it reflects a stereotypical interview scenario, and also because in my view it illustrates a bad approach to interviewing! Look at that guy being interviewed – how do you think he feels right now? If he isn’t breaking a serious sweat then he is a better man than I.

Any candidate coming in for an interview is at a serious disadvantage in relation to the interviewers, and is keenly aware of it. Candidates naturally react to this situation by experiencing stress, and becoming nervous.

So what benefits do these nerves create for the employer? In the majority of interviews for software jobs, I would argue that the answer is: none at all! A nervous candidate is not going to represent themselves effectively, and so they are going to obfuscate the interviewer’s job of assessing them. Candidates’ nerves have the very counter-productive consequence of concealing the truth about the candidate from the employer.

It seems to me that many, many interviewers out there seem to be completely oblivious to this important dynamic that’s present in any interview situation. I wonder at why that is, and I think that maybe some people are thinking something similar to the following: “We want someone who is going to continue to perform well in a high-stress environment, because our job involves many different stressors that a successful candidate will need to contend with.”

In my opinion, for most software jobs this justification for allowing a candidate to stress out is flat out fallacious! It makes the incorrect association between the stress of needing to perform under time pressures, for example, with the ability to remain calm when being scrutinized by a room full of strangers. It seems obvious to me that someone’s ability to excel in one of these situations has absolutely nothing to do with their ability to cope with the other.

We’ve all heard that public speaking is the #1 most prevalent human fear, above even death! Interviews where you have to sit in front of a panel of strangers and present yourself are a form of public speaking. I personally have seen many examples of people with an excellent ability to pull the situation out of the bag under time pressures who completely lose their marbles when faced with the need to do public speaking on any scale whatsoever. The two abilities are completely orthogonal and do not relate to each other. So if you are intentionally trying to make your candidates nervous, you are testing them on the wrong criteria. This does nothing but create a lot of negative vibes, leads to poor hiring decisions, and is, in short, bad interviewing technique.

I recently applied for a job online where, as a condition of submitting my resume, the employer’s website suddenly powered up my webcam with a directive similar to “Tell us what makes you special in 30 seconds!!! GO!!” with my recorded answer getting submitted to the employer as some kind of artifact alongside my resume that’s supposed to indicate….what? I’m not sure. The experience was highly unsettling – I blurted out some silly response (to what is IMO a useless interview question) and felt embarrassed. Not only did the employer learn nothing useful about me with that exercise, but they instilled in me a very negative feeling about their company as my first impression. But seriously….Don’t DO that!! (Interestingly in this case I pointed out in my recorded response that I didn’t like their application format, and ended up getting called for an interview anyway…go figure!)

To the contrary, employers should be seeking to settle a candidate’s nerves as much as possible, because it is in their best interest. By making a candidate feel relaxed they are much more likely to be able to get an accurate read on the candidate, unencumbered by the random effects of a fear response. Given the basic difficulties covered in the last section around hiring in general, it is completely beyond me why employers would seek to complicate their own lives by exacerbating confounding situational factors in the interview. And yet it happens as a matter of course in many interviews, and is not the exception to the rule.

Additionally, note that nerves are such a big factor in an interview that even the most enlightened of interviewers needs to keep them in mind at all times. Any interaction you have in an interview, even if you’ve sought to relax your candidate, is going to be influenced in some way by their nerves. Chances are the same candidate is going to look very different sitting in the interview chair than they will sitting in their office chair, on the job. This is just a basic imperfection of interviews as a tool for candidate assessment.

So why don’t many interviewers understand and try hard to mitigate the effect of candidates’ nerves in an interview? In my view, it is often a consequence of an inherent power imbalance, which I’ll explore in the next post.

Steve’s Guide To Conducting Software Interviews: An Interview Template

Interview in progress
This article is a part of Steve’s Guide to Conducting Software Interviews.

For the past several weeks I’ve been engaged in a full-time job hunt and have been attending many interviews for Software development positions at various companies. Job interviewing in any industry is stressful, I’m sure, and software is no different. It adds to the stress when I am sometimes surprised at encountering interview approaches which are ineffective, missing the point of the interview process, and sometimes downright dysfunctional, in my opinion. So I thought I’d weigh in here with some of my own thoughts on how to conduct an interview which has the best possible chance of resulting in a quality outcome – that is, optimally matching a candidate to the advertised position, on the off-chance that my thoughts on the subject can benefit someone out there.

What the @*!#$ do I know?

Am I an experienced HR manager? No. I’m simply a guy with opinions who has attended a fair number of interviews. I’ve also conducted many interviews throughout my career and probably hired ten or so people. Looking back on those experiences my track record seems pretty good. Many of the people I hired went on to become highly valued team members and have long productive careers at the company (BlackBerry).

So I don’t have specialized skills in this area, only a bit of experience. However I have found that most of the tech interviews I attend are conducted by people like me – developers without any specialized HR training and often no hiring experience. So it is for that audience that I write my thoughts here, as a member of this community with a decent track record. In short: I’m not an expert, and if you disagree with my thoughts here feel free to comment and give me an alternate point of view.

Type of Job and Hiring Approach

I should also note that any thoughts I share here are with respect to the type of interview and position with which I am most intimately acquainted, that is to say, development jobs from junior to senior level, and low-level management jobs in Software Development. Human Resources Management is a huge field spanning all industries and sectors and situations, and I would never hope to make general statements that apply to all interviews. Rather, my advice is geared, like I said, to people like me interviewing within the Software business.

Also, I assume here that the goal of anyone’s hiring process is to build a highly effective development team that will grow and flourish over time. I understand that companies at times hire for very specific reasons and for very specific short-term goals, and for example may not care about aspects of an applicant’s candidacy other than a very narrow skill set. Still, I would tend to think that such an approach to hiring is ill-advised if the person you hire is going to remain on as a permanent team member following the completion of whatever project necessitated the hiring.

Looking back on my own experiences, there is only one hiring decision I made that in retrospect probably was not the best one. The individual I hired was a nice guy who got on well with the rest of the team, but was not a strong producer and in fact ended up requiring a lot of oversight by me. In that case, my reasons for hiring were based almost purely on Technology Fit (which as you will see shortly, now rates as my least compelling reason to hire someone), because at the time our project immediately required a resource with a specific skill set which this person possessed. So now I am a strong advocate of building great teams, and I think there is no hiring situation where the goal of fulfilling a short-term resource need should trump the goal of finding quality individuals who will add long-term value to the team and organization.

A Template for Interviews

So with my disclaimers out of the way, allow me to present here a general template that I would follow for most interviews.

The following tools are the ones I rely on when choosing a candidate for a position, in order of importance (NOTE: not in the order that they’d necessarily appear in during the hiring process):

  1. Gut Feeling
  2. The Resume
  3. References
  4. Examples of Previous Work
  5. Toy Coding Problems
  6. On-the-Spot Thought Exploration Problems
  7. Interview Questions
  8. Technology Fit

In subsequent posts I’ll go deeper into my reasons for each of the items on this list.

Mars Rovers: A Coding Problem Solved in Python

Lately I have been interviewing for jobs, and was sent a coding problem by one of my interviewers to solve. I thought I’d post my solution here, since it illustrates some aspects of my approach to coding.

The problem involves reading in a text file containing remote instructions for Rovers that are landing on Plateaus on Mars.

You can see my solution in Python 3, done with BDD using Mamba, on my public GitHub profile here: Mars Rovers Solution

I should probably mention that this is the first thing I’ve written in Python 3.x, and my first time using python at all in a couple of years. Writing this little app has reminded me how much I love python! What a language! 🙂

Kicking Off the Healthizer – User Stories

To get the ball rolling on the development of the Healthizer app, I should start improving my own understanding of what it is exactly that I think I want to build. So, here is my first attempt at brainstorming some User stories to capture what I think the end user would want to see from this app, in the order in which I thought of them!

# User Stories
As a(n)… Grocery Shopper
I want to… easily scan the published ingredient list on any consumer product
So that… I will find out immediately whether the product contains any known carcinogens
As a(n)… Grocery Shopper
I want to… scan many products in rapid succession
So that… I can scan items as I pick them off the shelf, without slowing down my weekly shop
As a(n)… Grocery Shopper
I want to… quickly and clearly see whether the last-scanned product contains a known carcinogen
So that… I can determine which products are potentially dangerous without slowing down my weekly shop
As a(n)… Grocery Shopper
I want to… be able to scan items effectively regardless of the current strength of my Internet connectivity
So that… my weekly shop is not slowed down due to poor connectivity
As a(n)… Grocery Shopper
I want to… be able to see the names of the ingredients that were read by the app
So that… I can verify that the app correctly read the last-scanned ingredient list
As a(n)… Grocery Shopper
I want to… be able to see which specific ingredients were recognized as carcinogens by the app
So that… I can become better aware of which ingredient names in the last-scanned product are potentially dangerous
As a(n)… Grocery Shopper
I want to… receive some indication of how dangerous a recognized carcinogen might be
So that… I can make a judgement about whether I’d like to purchase the product or not
As a(n)… Grocery Shopper
I want to… See the source of the information which led the app to flag a given ingredient as a carcinogen
So that… I can satisfy myself that the app is flagging ingredients according to information provided by trustworthy authorities that is both accurate and unbiased
As a(n)… Grocery Shopper
I want to… be able to visit the original source of the information used to identify an ingredient as potentially dangerous
So that… I can verify the accuracy of the information and learn more about the ingredient from a source that I trust
As a(n)… Grocery Shopper
I want to… get a sense of how probable it is that a given ingredient is dangerous
So that… I can make a decision about whether or not I want to purchase the product
As a(n)… Grocery Shopper
I want to… quickly get a sense of how potentially dangerous the last-scanned product is, given the whole ingredient list
So that… I can determine whether I should read more about the product before deciding whether or not to purchase it
As a(n)… Grocery Shopper
I want to… scan ingredient lists according to the most recently published information on carcinogens
So that… I am able to assess my grocery choices according to the best possible information
As a(n)… Grocery Shopper
I want to… update my application data using the cheapest method possible
So that… I keep my data charges low
As a(n)… Grocery Shopper
I want to… be able to access the application quickly at all times
So that… I can scan my grocery list at any time, without slowing down my weekly shop

Trot With Spot – The Mobile App for Dog Walkers!

Lady dog walkerLast year I took on the role of Chief Technology Officer for Trot With Spot Inc., a fledgling start-up company based in Toronto, Canada, where I live.

I’m happy to announce that this weekend we reached a major milestone when we released the first versions of our apps! One is a free native app for iPhone, available on the Apple App Store, the other is a web app, available at

The apps working together allow dog owners to participate in their dogs’ daily walks no matter where they may be…for example, at work! They also provide an important business tool to walkers, adding value to their businesses with a competitive new feature and solidifying their trust relationships with clients, which in a reputation-driven industry goes a long way.

Get It!

Download the Trot With Spot Walker app for iPhone here:

How It Works
  1. A walker downloads and installs the Walker app, and creates an account in one easy step.
  2. Dog owners (the walker’s clients) visit the Owner app at and create their accounts.
  3. Once logged in, the owners can create profiles for each of their dogs.
  4. Then the owners can search the database of registered walkers, and add their walker to their accounts.

Now the walker can see all their clients’ dogs listed within their app. Whenever they pick up a dog, they can use the app to indicate the walk has started, and a notification email is automatically sent to the dog’s owner.

While a walk is in progress, owners can use the Owner app to:

  • watch live map updates
  • see the locations of pictures and poops taken on the walk, and
  • exchange messages with their walker

Owners can also use their existing account to log into the Walker app and record a history of walks with their own dogs.

It’s a free app, so go ahead – download it at the above link and check it out! There is an option to send us feedback in the Settings menu, or contact me via the link on the left to let me know what you think!

Ingredient List Scanning – A new idea?

Well it’s certainly been awhile since my last post announcing my intention to build the Healthizer app. I’ve been coding my little butt off for my startup company for several months, and as it turns out have had little time left in my schedule for anything else! However with me once I’m interested in something it never quite dies, it just goes on the back burner for a little while…

So now that our startup has published its app (I’ll post that link soon) I finally want to dig in and get on with this plan. Also I need a vehicle to mess around with some new development technologies I’m interested in.

Since I posted the app concept there have been quite a few apps cropping up containing similar functionality to the concept of Healthizer:

Don’t you hate it when you get an idea, and then find out someone else has already run out and done it way better than you ever could have?! Curse this manic business of high tech and all its brilliant people and wonderful apps! However, I believe there is still hope for the Healthizer.

  1. None of the existing apps use OCR technology (Optical Character Recognition – ie. computer reading) to parse ingredient lists. The preferred method out there for product lookup seems to be to scan UPC codes (ie. bar codes) and look up the associated ids in product databases. This method has a few drawbacks that I think would be avoided with my method:
    • it incurs a cost for accessing product databases through services such as Scandit.
    • a successful scan requires that the scanned product be registered in such a database and that the ingredient list in the database is accurate
    • it requires a working Internet connection, which has its own set of issues. For one, while the Internet is ubiquitous, having a good connection to it is still not a guarantee at all times (let me tell you), even in this day and age. Also, accessing the Internet in itself increases the cost of using the app, and slows it down.
  2. Most of these apps are not specifically geared at cancer prevention, with the exception of Think Dirty. Many of the apps are intended to assist shoppers make healthier decisions for weight-loss or lifestyle reasons, which means that the apps rate the healthiness of products based on some criteria. Therefore there is some subjectivity being introduced in their recommendations, and there is a question as to whether the user agrees with the criteria being applied – certainly not a straightforward question. Instead, I’d like to make an app that doesn’t recommend, it only points out to users the existence of a known carcinogen in the product they are considering buying, according to the product’s own manufacturer and lists of known chemicals published by mainstream authorities.
  3. Finally, it’s unclear whether the companies that produce these apps are for-profit companies. If so, there may be commercial motivations inherent in their recommendations. I feel that to gain users’ trust within the highly political fields of food manufacturing and cancer treatment, it’s important for the app to be strictly non-commercial, with a simple, straightforward algorithm, and transparent sources.

So I think there’s still room out there for a very simple, single-purpose app with a slick user experience that can be used very quickly and easily to flag a carcinogen-containing product with next to no fuss or fumbling or having to interpret the results. The main use case would be to scan products as you pick them off the shelf during your weekly shopping trip, so it has to be a streamlined experience.

A New Project – Healthizer

It’s been awhile since my last post on this blog for the simple reason that I’ve joined a start-up company ( as CTO, and life is busy again!

Things are ticking along happily on that project, and now I’m feeling the desire to kick-off another project that’s interested me for some time. In addition I want to make more use of this blog, and see how well I can develop a new idea using this as a public forum. In this age of the Internet everyone’s doing it, so let’s give ‘er a go, eh?

A Big Problem

I’m concerned about the rate of cancer. A number of years ago I had a brush with cancer when a spot was discovered on my thyroid. Needless to say, it was a scary experience, and a few weeks later when I found myself sans-thyroid and cancer-free, I couldn’t quite believe that I had escaped so easily. A good friend of mine around the same time was engaged in a protracted battle with Hodgkin’s lymphoma (a battle he won after several grueling years), and when I was diagnosed I naturally assumed that a similar ordeal was in store for me. As it turns out, my experience was relatively painless, and was more or less a thing of the past within a few months, aside from my life-long dependence on synthetic thyroid hormone.

As you would expect that experience ignited my interest in cancer in general, and the modern state of cancer-related medicine. Since that time a couple of things have become evident to me:

  1. The rate of cancer is still increasing
  2. Treatment for cancer is better than ever, and survival rates are also increasing.

So this is mixed news, but even taken together it seems clear to me that we are experiencing a cancer epidemic. The Canadian Cancer society estimates suggest that about a quarter of all people currently alive in Canada will die from cancer (source)! That in my book qualifies as a crisis.

Around the time when my cancer was discovered, I watched a segment on the CBC’s consumer watchdog program Marketplace that has stuck with me over the years. You can see it here – I encourage anyone to spend some time with it:
CBC Marketplace: Chasing the Cancer Answer

In my view it is as relevant today as when it was aired almost a decade ago, and points to a bias in cancer circles towards a focus on treatment rather than prevention. All this got me thinking – what can I and my family possibly do to help reduce our chances of developing cancer?

Low-Hanging Fruit

One of the points highlighted in the Marketplace segment is that scads of consumer products found in your local grocery store have known carcinogens as ingredients! How is this possible? Whatever the reason, it’s happening in every store right now. This seems like some low-hanging cancer-prevention fruit – just avoid products containing these ingredients whenever possible.

That’s the thought that gave rise to my app idea – a simple mobile app that will scan the ingredient list (a legal requirement on any consumer product in Canada) and match them against lists of known carcinogens. This seems like a fairly straightforward app that could serve as a tool for anyone wanting to improve their cancer-savvy grocery choices. I’ve done some preliminary checking around the web to see if this has been done, and so far I haven’t found anything exactly like this – more on that later.

What’s In a Name?

So this app concept needs a name. Here are some candidates, off the top of my head:

  • ShopScan
  • Grocery Inspector
  • Health Guard
  • Healthalizer
  • Healthizer
  • Stop Cancer
  • CancerBuster

Personally, I like “Healthizer”. It’s memorable, easy to understand, and doesn’t limit the future scope of the app. I feel the grocery-related suggestions are kindof boring and forgettable, and the cancer-related ones are too grandiose (like, I don’t actually think that this app will “bust” cancer).

So for now, Healthizer it is. I’d love to hear more suggestions if people have them! Check back for more posts on the development of this new app!