Han-Shen (Han) Yuan

Han-Shen (Han) Yuan

Published Feb 10, 2015

When interviewing for a managerial position, one of the most common questions you will be asked is "What do you look for in a new hire?" When I am hiring managers, this is one of the very first questions I ask. So, for my inaugural LinkedIn post I thought I'd share with you my own responses regarding what I look for in software development engineers and software development engineers in test (SDET).

Possession of self awareness: What are your strengths and weaknesses?

I don't expect every person I hire to match my job description precisely because in time roles and responsibilities invariably change. What is important to me, however, is how self-aware the candidate is with respect to their strengths and weaknesses. To assess this, I'll ask the candidate to identify something they know well and identify something they are familiar with but not an expert in. For a software engineering position, I'll often ask them what is an example of a programming language they are most comfortable in and what is an example of a programming language they are familiar with but not comfortable in. I'll then ask them a specific but basic question against their strengths and their weakness. Depending on the response, I'll receive a very basic signal according to the chart below:

No alt text provided for this image

Over-confident employees may wreak havoc on schedules due to their optimism. In contrast, under-confident employees may lack proactivity.

Evidence of deliberate practice: Do you invest time and energy in practicing what you are not good at?

The concept of deliberate practice refers to people who practice a skill specifically to improve performance, often with a coach's help, and often repeatedly. In fact studies have shown, practicing deliberately is often times a precondition for becoming an expert. Specifically, Dr. K. Anders Ericsson writes in his journal article titled The role of deliberate practice in the acquisition of expert performance:

...However, we deny that these differences are immutable, that is, due to innate talent. Only a few exceptions, most notably height, are genetically prescribed. Instead, we argue that the differences between expert performers and normal adults reflect a life-long period of deliberate effort to improve performance in a specific domain.

My theory is that if a candidate is self-aware enough to know what they are good at and what they are not good at, and if they have the habit of practicing in a deliberate way to improve what they are not good at, then they will eventually be able to master anything they need to get the job done. In software, this is especially important since the field is constantly evolving. Standard technical questions measure the acumen of the individual on a particular topic and not how effective they will be as the work of the team and the business evolves over time. To assess this trait, I try to get to understand the candidate on a number of levels by probing into their professional and academic interests with the goal of trying to understand how they developed mastery.

Possession of grit: How do you respond when things do not go well?

My final assessment always involves a work simulation that is time-bound and is either fundamentally impossible to complete in the time allotted or has a twist that would force the candidate to seek help. Depending on the role, the task varies. For software engineers, the task involves either building a specific website or building a specific app from scratch using a pre-configured computer that the candidate requests or using their own machine. For SDETs, the work simulation could involve using homegrown tools or testing problematic builds that are known to have specific defects. Either way, the exercises are designed to simulate real work that is not straight forward.

The reason I design these challenges this way as part of the interview is to assess a candidate's grit. Ira Glass once said:

Nobody tells this to people who are beginners, I wish someone told me. All of us who do creative work, we get into it because we have good taste. But there is this gap. For the first couple years you make stuff, it’s just not that good. It’s trying to be good, it has potential, but it’s not. But your taste, the thing that got you into the game, is still killer. And your taste is why your work disappoints you. A lot of people never get past this phase, they quit. Most people I know who do interesting, creative work went through years of this. We know our work doesn’t have this special thing that we want it to have. We all go through this. And if you are just starting out or you are still in this phase, you gotta know its normal and the most important thing you can do is do a lot of work. Put yourself on a deadline so that every week you will finish one story. It is only by going through a volume of work that you will close that gap, and your work will be as good as your ambitions. And I took longer to figure out how to do this than anyone I’ve ever met. It’s gonna take awhile. It’s normal to take awhile. You’ve just gotta fight your way through.

At its core, I believe that software engineering is creative work but by its nature achieving great work doesn't come naturally. Great work is hard work and it requires grit like Ira Glass describes above. The candidate who is self-aware, who practices what they are not good at deliberately, and who is never deterred by failure has always proven to be an amazing hire for me.

I cannot say that I've never made a bad hire in my career, in fact, I've made many. However, I can say that I have never made a bad hire when I have used this formula to interview candidates.

Never tell me the odds! Han runs Post-PC Labs, LLC with a band of freelancers. If you enjoyed this article you can subscribe to his regular musings here: https://h6y3.substack.com

More articles by Han-Shen (Han) Yuan

Others also viewed

Explore content categories