How to build an excellent software engineer team: the 3 things you should avoid in hiring

Tao-Sheng Chen
ShopBack Tech Blog
5 min readOct 7, 2018

--

Build a software engineer team is pretty easy but to build an excellent team is extremely hard. The first thing in build an excellent team is hiring. A successful hiring: bring best match candidate in is the most critical action in build team. If all team members are best match the team will definitely be easy to lead and delivery amazing result. That is why there are so many articles talk about hiring. So many dazzling tips and yet so many contradict ideas.

Then, why there is another topic join in such world with overwhelmed information? I believe hiring and build a team is a kind of art and might never have best practical at all. However, it is possible to provide real experience for all who want to reach a high goal or make their work better. Good hiring managers are those who made mistakes but figure out how to avoid, however, excellent managers could not only avoid mistakes but also create an uniq framework specific fit the organization to make a uniq successful team. That framework of course could be modified to fit different environment.

Lets start from the easy part: avoid mistakes. Probably, everyone could search interview tips, for example red flags, common questions. So here I’d like to focus on the mistake of your hiring goal. To be honest, in the beginning I have around 10+ critical mistakes to share but I don’t have much time this weekend. So please drop message here if you want to know more. Which might increase my motivation to write:~

The 3 things you should avoid:

(1) Allow none-culture-fit candidate to join just because he/she got amazing skill sets.

Culture-fit is a pretty controversial topic in hiring. There is even an article in Harvard business review specifically said should not hire for culture-fit. But those contradict concepts are mainly cause by the definition of “culture-fit”.

Lets make things easily in software engineer world. Culture-fit means “a person had the same value on how he work inside an engineer team with all other team members”. More clearly, we don’t look for personality, we look for the value of how this candidate see his job.

For example, ShopBack is looking for an engineer who could have the value: “own the change you seek”. If there is a candidate does have great skills and knowledges in CS and can easily manipulate 12 different programming language but he never at least try to own the change in his previous experience. Then this is a kind of red flag to us.

Is it possible to train/coach the candidate after onboard? Of course it is possible. However, training for skill set is not hard but value is really too hard (see here) Even it is possible but not really means you can do or you have time to do. To be honest, in my past 18+ working experience, I did see many engineers could grow their skill sets, level up their communication skill, know better team work method and even could change attitude to face challenges. But I really see not much of engineers really change of how he value his job. Candidates might just have better way to hide after a few years working experience.

Just want to emphasize one thing, how he value his job is not a good or bad judgement. It is way to see if this value match your team. For example, “good salary to feed family”, “career title growth”, “learn more skills from work”, “contribute this company to gain reputation” …are not the value you should judge it as good or bad. You should only identify those as match or not match. Once the evaluation of match not become the judgement of good or bad, then you will be very easy to show disrespect subconsciously, even you actually didn’t want to do and you have no intension. I’ve see some hunters show disrespect subconsciously to candidates via tell them some hard fact which hunters believe is true but can’t actually judged by hunters.

(2) Didn’t check the fact on what in candidate’s experience

Some people believe hire a high potential candidate will be better than hire an experience one. Unfortunately, good engineer can only be reveals his/her potential via demonstrate historical records.

Most of candidates have years working experience can easily describe work, design, scrum, team work and concept very well. But that doesn’t mean he/she can really do. Even really good candidates have the same situation, they could express things that much better then they really did. Why? not because human lies, it is because good engineers tend to move toward to a better approach. Good engineers want to make him self better in skills so once they done a job, they will always have the “improvement idea” in their mind. Therefore, it is not a bad thing. But it is one thing you need to identify during interview process.

For example, few weeks ago I’ve interview an engineer who told me during interview that: one of the most important thing of devops is make transparent of system. Meaning, all technical information could easily to found. However, I simply asked “what and when is the last critical incident which you’ve involved”. Then he of course told me an incident which happened few months ago but when I simply checked “how did you record this incident and when you or your team do retrospective of this incident?” He told me this incident didn’t record due to it fixed soon and didn’t review latter. And of course, he suddenly realized he didn’t actually do what he believe is important.

(3)Didn’t show reality to candidate but show only the wonderful part.

If a candidate match everything without red flag, it is not the end of interview process. We should try to make him join and also make sure he could stay longer in the first place.

The common scenario is hiring manager want this candidate to join so much that makes manager hide something subconsciously. Unfortunately, if candidate onboard and did expect those things, he might leave soon. But even worse is that he did not leave soon but less productive, less motivation and hard to be positive thinking. Because he somehow believed he was cheated.

To make sure that, for high potential and good matching candidate, we should at least spend 10 minutes to speak honest of current bad things in this company. Don’t hide those things or decorate those as “challenges”.

Challenge is a good word what won’t make people uncomfortable. But there will be and there will always be uncomfortable situation in any company. To identify that earlier will also help us filter out people who want to be free-rider.

Another thing to emphasize: I don’t mean you should scare candidates. Of course there will be good thing in your team. Fairly describe team’s current situation, identify good and bad parts, show the goal we could reach together. These could make a transparent conversation starts and actually help candidates make “join” decision.

--

--