Recently quite a few teammates have left, and we are fairly short-staffed. I have interviewed nearly ten candidates one after another; the first-round pass rate is around 50%, and there is still no confirmed HC.
1. Preparation
Collecting resumes. Posts, email announcements, WeChat Moments, and job boards are all sources of resumes. People leave for all kinds of reasons — poor pay, a work style they dislike, unhappiness, not feeling valued — and of course all kinds of people want to come in. It is like a besieged fortress: those inside think it is better outside and want to leave; those outside think it is better inside and want to get in. I believe it is necessary for an internet team to maintain long-term active recruiting channels. On one hand, recruiting people takes a fairly long cycle; on the other, it is a warning, avoiding project risk caused by people leaving, and it also keeps an open line of communication with the outside world at all times.
This time the resumes were mainly provided by HR. HR talks with the candidate, confirms the basic situation, schedules an interview time with me, and then sends me a formal interview invitation email along with the resume.
Usually the interview is held on the next day during non-working hours. This is to avoid time conflicts and to allow preparation for the interview.
Preparing for the interview mainly means printing the resume and picking out some key information from it. This key information includes skills and projects relevant to the position. Some candidates may use special fonts in their resume to highlight certain keywords and guide the interviewer. That is also quite good, provided they are genuinely very familiar with them; otherwise it may backfire.
2. The Interview Process
The interview is divided into the following stages:
- Self-introduction
If the candidate has prepared a different kind of self-introduction, I will give them a chance to show it. If it is just the resume content, I will have them skip it.
- Algorithms
One medium Leetcode problem. The algorithm question does not require writing code on paper; giving the correct data structures, approach, and boundary conditions is enough. Proactively communicating with the interviewer and expressing your thought process are both pluses.
- Basic skills
This assesses tool usage, component usage, programming languages, and so on. For example, basic Git commands, some features of Golang, Docker principles, etc.
- Projects
Mainly focuses on projects relevant to the position, and also assesses expression and communication skills. Based on what they say, I will raise some challenges and ask about low-level implementation details. For example, why use B instead of A, and what is the difference between them; the difference between multi-process and multi-threading; if it crashes, what do you do; whether they follow similar star projects in the industry, etc.
- Team introduction
I will briefly introduce the team’s situation and what projects it is mainly responsible for, to spark the candidate’s interest. If I think the candidate is doing fairly well in the interview, I may say a bit more.
- Candidate questions
Finally, I hand the initiative to the candidate and answer their questions.
3. Interview Feedback
An interview has roughly 8 questions and lasts 30 to 40 minutes. After the interview, I need to give HR feedback on how it went. Below is my feedback format:
| |
If the candidate answers the questions with no obvious flaws, has one or two highlights, and there is no sense of discomfort in interacting with them, I will pass the candidate on the interview.
