My software engineer hiring philosophy

Discovering candidates

I have never attempted to discover potential candidates so I do not know how to do this. I will update this post when I find out.

Identifying candidates

Identify which of the discovered candidates could be a good fit for the position. Here are some considerations when deciding who should move on to the interview:

Technology knowledge is not important

The difference between a new hire who is familiar with 75% of your technologies or 25% of your technologies is not very big. Either way, their success will be determined by how effectively they can learn and apply knowledge.

Software engineering experience is valuable

Experienced software engineers have opinions on what works and what doesn’t. Experienced engineers can find problems before they happen because they have seen similar scenarios before.

Team sports experience is valuable

Team sports train individuals to sacrifice for the team. A good team player will play whatever role is needed to give the team the best chance at success.

Someone who performs their work with the goal of benefiting the team will have a bigger impact than someone who performs their work with the goal of demonstrating personal efficacy.

Domain knowledge is valuable

Business domains can be very complicated. An engineer with experience in the domain will be able to contribute in more ways than an engineer without that experience.

Extensive domain knowledge can also reduce innovation. Engineers who have already done something will likely do it better the second time but in a similar way. If you don’t want to do things in a similar way, hire engineers without domain knowledge.

Interviewing Candidates

When the candidates have been identified you will need to interview them to reach a final conclusion.

Solve novel and collaborative problems in the interview process

The most important skill an engineer can have is the ability and will to solve new problems. That skill is not very useful if the engineer is unable to collaborate effectively, so collaboration is the second most important skill.

Set up your interviews such that they present a new problem to the candidate. Work with them on the problem collaboratively to evaluate if you could effectively work with them in the future.

Make interviews as similar to normal work as possible

If you will be working remotely with someone, interview them remotely. If you will be working onsite with someone, interview them in person.

Use whatever communication medium is preferred at work to interact with them during the interview. This means you might need to interview someone via text chat.

Engineers should be interviewing the candidates for positions they will interact with

Although this is not required, it is much easier to motivate people to do an effective and thorough job at hiring when they will be impacted by the consequences. Have teams hire their own headcount.

Selecting Candidates

Decide which candidate should receive an offer. Interviewers should meet as a group to achieve consensus on which candidates were the best.

Focus on key skills

Engineers must be driven to solve new problems. They must collaborate effectively. They must be adaptable and selfless. Does the candidate embody those traits?

Consider biases

Different people are biased in different ways. Center discussion about candidates on specific traits. Try to avoid generalizations. If you have a gut reaction to a candidate consider it, but do not accept that feeling as your final decision without considering other factors.

Diversity is great

Diversity can have a positive impact on an organization. Do not lower the hiring bar to achieve higher levels of diversity.

If a company is seriously committed to diversity, the company should open offices in diverse locations. The full responsibility for diversity should not land on the hiring process.

Leave a Reply

Up ↑

Discover more from Max Blog

Subscribe now to keep reading and get access to the full archive.

Continue reading