View on GitHub

essay

All about my technical essays and practicals

What I learned from interviews

In the past months, I attended about 15 rounds of interviews and got 2 of 3 offers from them. It is a trek. I feel it is meaningful to record something that I experienced and learned.

I applied for three companies, including a Chinese giant, a leading fintech company in Japan, and a US-style startup.

My preparation began with the algorithm coding interview. I started to practice the Leetcode problem one and a half month ago before I applied for the position. As a frontend engineer, the Leetcode medium level is sufficient. Here I must recommend a book, 剑指offer专项训练版. It provides quick warming up, especially for candidates who aren’t familiar with tricky data structures, such as the monotonic stack, segment tree, Trie, etc.

After feeling that I can tackle most of the medium-level problems, I started to conduct mock interviews with foreigners. It is useful because then I realized the algorithm coding interview is not only about solving the problem, but explaining your idea to the interviewer and getting his/her agreement.

It is worth mentioning that my speaking English is not good enough to conduct an English interview at the beginning. Thus, I tried hard to improve it in a short time. And it means that I must practice my speaking English and interview skills simultaneously.

The regular speaking English training is unsuitable for me, in fact, it is too slow. After doing word remember and listening practice for a few weeks, I feel it is seldom to use these words and sentences in a technical interview. I must find out an efficient way.

I turned to reading technical blogs loudly, watching the technical youtube video, and reciting the technical article. It really worked. After one month of practice, I can easily use technical terminology to express my idea and understand what is the interviewer talking about.

And another barrier is the pronunciation, in fact, it is not the accent. Most Chinese can not pronounce English correctly. Foreigners always have no idea what are you talking about. To ace the interview, pronunciation is important. I suggest that the candidate must correct the pronunciation. There are handly materials on the internet. For example, 美语从头学·赖世雄美语音标 may be one of the good choices.

Besides, a pronunciation coach is necessary as well. Thanks to the development of AI and NLP, we can easily use real-time transcription software as the pronunciation coach. Here I strongly recommend the google meeting real-time transcription or the ‘live transcribe APP’. You can read loudly and check it by yourself to whether your pronunciation can be recognized by the AI. This approach saved me a lot of money and I can practice whenever I want.

The correct pronunciation is not enough to conduct the interview. Expression is the essence. To preciously express my thinking, I realized that I must be well prepared. Thus, I wrote down the answer and organized some good stories in advance. For example, I well organized my work experiences, the tech details, some high-frequency quiz answers, etc. Then in the following interviews, I can fluently use these sentences to express my mind.

I feel the algorithm interview would not be a great challenge for most well-prepared front-end candidates, but the system design round may be more difficult. The reason is that there is rare material for the frontend-specific system design interview. Luckily, I was able to find some on Youtube. [Front End System Design] and [Front End Jirachi] are the best of them.

However, even though I have some preparation materials, the FE system design is still a tricky issue. Because I knew some interviewers may even ask you to design a Codepen-like website, or design a diagram whiteboard. It is really not easy for the one who didn’t develop it before.

On the other hand, some companies may suppose to hire a full-stack engineer, then I may need to prepare some BE-specific system designs, such as designing a news feed service, and dealing with scalability and availability. It is hard for a front-end engineer because the front-end engineers seldom care about the server side in their daily work.

After the long difficult trip, I survived the technical rounds. However, the bigger problem is waiting for me. Most software engineers neglect the behavior interview, and so did I. I failed one of the companies because of my poor preparation. They remarked that I am not a teamwork person. Joking, I’ve been in giant companies for many years and worked tightly with my teammates.

Anyway, after this failure, I realized that the behavior interview is also worth preparing. Casual talking would be a red flag. I must use the example to demonstrate the teamwork spirit. What I need is to organize my daily work experiences and adapt to different kinds of behavioral interview questions.

Show the interviewer that you are an easy-going person, who can cooperate with your teammates.