DJI Early Admission Front-end Interview

I almost had no interviews during the autumn admissions, so I am very grateful to any company that gave me the opportunity to interview. It's been tough. I submitted my resume on the afternoon of 2022.07.30, directly through the official website, without any referral code. Then the written test was on 2022.08.07 19:00.

First Round

After almost a month of waiting, I finally got an interview opportunity. I scheduled the interview for around 2022.08.24 16:30 and the interview took place on 2022.08.27 17:30. The interview was scheduled for ten hours in the meeting room, so it seems that multiple interviews were conducted simultaneously. The interview was conducted by three experts, with two of them being the main interviewers, and the interview lasted for 44 minutes.

  • Some methods of Array and examples of their use.
  • How to search for a value in an array and the methods to do so.
  • Handling cross-origin requests.
  • What are macro tasks and micro tasks in JavaScript.
  • Characteristics of arrow functions and why they don't have their own this and arguments.
  • The specific process of compiling arrow functions from ES6 to ES5.
  • Methods that can trigger micro tasks.
  • How Vue and React handle micro tasks differently.
  • Comparison of the advantages and disadvantages of JSONP and CORS, and their use cases.
  • Differentiating simple requests from complex requests.
  • Multi-thread processing solutions for Web worker and the scenarios where worker is required.
  • How does postMessage in Web worker facilitate communication.
  • How is XSS executed, and its prevention, as well as browser CSP policy.
  • How is CSRF carried out, and its prevention methods.
  • How does Monorepo improve efficiency.
  • The selection of solutions for Monorepo and why not to use yarn.
  • When did you start writing your blog and why.
  • Optimization work on the pipeline.
  • Elaborating on the main workflow of the pipeline.
  • What are your strengths in the front-end field.
  • Static checking in TS, and preventing the submission of non-standard code.
  • Difference between interface and type.
  • How to obtain types in TS, key terms, and generics.
  • Narrate the inference of TS {a:1, b:2} -> Record<"a", 1> | Record<"b", 2>.
  • How to perform testing, unit testing, and E2E testing.
  • How to Mock time and asynchronous requests.
  • Transition from Class components to Hooks components.
  • Comparison between React Hooks and React Class components.
  • Advantages of React Hooks and their separation.
  • Dealing with the closure issue of React Hooks.
  • How to handle an excessive number of states in React Hooks.
  • Comparison of Redux and Mobx and the problems they solve.
  • Encapsulation, polymorphism, and inheritance are relatively weak in which area of Js.
  • How to achieve function overloading in Js.
  • Are private variables in Js and private in TS effective at runtime?

After the technical questions, I asked the two interviewers about the business they are involved in and areas I need to improve. It's the same old story. The business areas include e-commerce, official website, and low-code platform, and DJI does have a wide range of businesses. As for my personal improvement, it is essential to expand my technical expertise based on business requirements, such as technology selection and similar aspects. Both of these interviewers turned on their cameras and the interview was conducted in a conversational and pleasant manner, providing a very good interview experience.

Second Round

The second interview was scheduled for around 2022.08.29 15:40, and the interview time was set for 2022.09.01 17:45. The interview time was quite extreme. This time, there were still four experts, but only one of them talked to me, and the interview lasted only 28 minutes. It seems that I didn't pass, as even the second interviewer wasn't interested in talking to me.

  • Which Github projects are currently being maintained?
  • What are the challenges encountered while working on these projects?
  • Recent problems encountered and their solutions.
  • There are many similar products in the market, so why create a resume editor from scratch?
  • The difficulties encountered while developing this resume editor.
  • The recent challenges faced at Byte and how the work was divided.
  • Primary responsibilities at Byte.
  • How to address a situation where a colleague mishandles the work previously assigned to you.
  • Research on unit testing strategies at Tencent.
  • The rationale behind conducting unit testing and how you promoted this initiative.
  • The percentage of completed unit testing.
  • Any areas for improvement in your previous work?
  • What books have you been reading recently?
  • Why choose to read the book on JavaScript frameworks?
  • What did you learn from this book?
  • Why choose to read about jQuery instead of exploring new frameworks?
  • Do you have knowledge of new front-end technologies?
  • The problems solved by the TailwindCSS framework.
  • How to apply this framework.

This time, the conversation didn't follow a rigid format. We discussed various topics, as in a previous interview, I was asked about my opinions on new front-end technologies. In turn, I asked for the interviewers' thoughts on the future development direction of front-end technologies. Although one of the interviewers shared a lot, my internet suddenly lagged, and I missed out on much of the discussion. I only caught the part about cross-platform development and the future development of Node, unfortunately, that's when the connection dropped.

HR Interview

Since previous interviews involved HR representatives, there wasn't a separate HR interview. Essentially, the recent phone call was more of a courtesy call, which came around 2022.10.09 16:00, where the HR wanted to know about my current offer situation and added me on WeChat. After that, I continued to wait for the next update.

Follow-up

Around 2022.09.28 12:00, I received an email, stating that I had entered the comprehensive evaluation phase, indicating that I successfully passed all the interviews and entered the final selection phase. Subsequently, I had the aforementioned HR interview and added the interviewer on WeChat. Unfortunately, around 2022.10.11 15:30, I was informed that although I passed all interview stages for the position, my name was not on the offer list due to the limited recruitment quota. They asked if I was willing to consider a position on the client-side. I agreed to the transfer, but sadly, around 2022.11.01 19:30, I received a thank-you note from DJI. This time, it's a definitive end. I hope to have another opportunity to join DJI in the future.