Some thought about software engineer interview

I can’t stop thinking about how to interview a suitable software engineer for my team, because a graduate is fired only after joining my team for three months. There are some points to figure the reasons about the story:

  • Low learning efficiency, can not figure out what is supposed to be known, for example, basic git usage to submit a patch, learn it over month.
  • Bad code kills, code is not good and can not comprehen the code even after your explaination and testing.
  • Bad manners, diss the colleague to explain why he didn’t do his work as expected.

Notice: I’m not sure if those requests are only requested in my country, but actually his buddy and colleague cost a lot of energy to solve his own problems.

Fortunately, I am very sharp to colleague’s work so that guy didn’t disturb me very much. But after that I start thinking about is there any way to get a more suitable devloper to avoid this situation from happening again. (Maybe for undergraduate, our the interview is too easy)

Details about current interview

Introduction for current interview

Typically, every interviewee need to intend two or three around technical interview.

  1. interview for basic skills, like code skills or knowledges we required
  2. interview for project engineering, explain technical view of experinenced project and know a big picture of a project.
  3. interview for code reading/writing and math problem capability (but not always used)

But many teams only interview their own candidate, the skills maybe not well interviewed or not executed as expected, because we do not have any objective test to get the result of every interview. Only perspective point is used so when try to scale a team or required more developers the period is more longer than we expected.

Requirements

From last failure, some basic requirements need to be recorded.

  • Learning skiils. Self-driving is essential for a developer
  • Code skills. Typlically not read code but comprehend the code
  • Good manners. May be a optional quality but it is important for teamwork

Except those requrements more basic requirements is involved in current list:

  • System knownledge, operation system usage, architecture and so on.
  • Code skills, code usage (including useful lib, programming language implementation)
  • Communication skills, throught interview not actually maybe pretended
  • Teamwork skills, for those who have work experience

So more personal skills need to be involved in interview in my expectation. But in my opinion, it’s not a good thing for devloper as a interviewer need to judge interviewee’s those aspects directly.

Well formed questions need to be collected for all those aspects we required for a “suitable developer”.

Research before planning

More research need to be done before we get some solutions.

When I search “how to interview software engineers”. I got this page:

https://arc.dev/employer-blog/software-engineer-interview-questions/

There are some interesting questions:

  1. Discuss one of your previous projects and explain how you completed it successfully.
  2. When you ran into an obstacle with your project, how did you handle the issue?
  3. What are your thoughts on unit testing?
  4. What is your process for finding a bug in an application?

Combine with experience and actual works, the debug skills and project skills can be easily tested.

So those kind of open questions seems a good way for a interview.

Besides those questions, knowledge test should also be used for graduate, but this is quite easy.

Plan

According to below discuss, we decide to make a plan to help us feel easy with interviews.

  • Change seperated interview for the whole backend team.
  • Use prepared questions to interview in order to get objective result from different interviewers.
  • Add more tests for graduate
  • Logic analysis test should be involved in the interview questions