Frontend Interview at Airbnb Experience

I have been working in the Bay Area for exactly ten years now, currently at a top-tier company as an L6 full stack engineer, but I have been leaning towards frontend in recent years. This job change also focuses on finding frontend positions, which align with my interests.

All the coding below is implemented using JavaScript.

Phone Interview: Implement a Promise. The task only required implementing a simple then(resolve, reject). The bonus was to implement abort(). Due to my previous experience with frameworks, I was quite confident about this task and ended up implementing promise chaining when I had too much time left. In the end, I had half an hour left and discussed life and ideals with the interviewing manager.

Onsite: Overall, the difficulty of the Airbnb interview was not as tough as I had imagined, but it was very innovative, and the overall impression was excellent!

The two rounds of a half-hour cross-functional interviews were mainly about assessing whether the personality fits the company culture. The most challenging question was: Give an example from your life where you entered an uncomfortable environment and how you overcame it. The interviewer seemed to want to hear a very interesting story, but as someone with 10 years of experience, even giving an example from right after graduation didn’t sound good.

Coding 1 Algorithm:
Implement a simple FileSystem API. The specific requirements were to implement create(path), get(path), set(path). The paths are similar to a/b/c. Initially, I was cautious and asked about many corner cases, such as what happens if the path does not exist or is invalid, but the interviewer seemed not to emphasize it much. I quickly completed it, and a few new APIs were requested, but the patterns were similar. We chatted for the last 20 minutes.

Coding 2 Frontend:
Implement dealing poker cards. A classic problem, I used to often ask this question when interviewing others, although I hadn’t done it myself, it was not very difficult. For someone slightly familiar with CSS, rendering poker cards is straightforward.

Coding 3 Frontend:
Implement a rating component with several stars. The basic CSS for stars and the form for submission were provided, and the task was to add functionality in the subsequent code. The basic difficulty was not very high, but I was too accustomed to using XHR, while the interviewer wanted the rating to be submitted through an HTML form. The last time I submitted using an HTML form was when I used JSP 10 years ago, so I was a bit rusty. I found the answer by checking MDN and with a simple reminder from the interviewing manager. The key was to use HTML radio inputs styled with CSS to replace the default appearance of checkboxes.

Project:
Because the frontend systems I previously worked on were very complex and flashy, they could handle complex data visualization, linear algebra, WebGL, and high traffic. I basically confused the interviewer for half an hour, and then we chatted for the remaining time.

Overall, the office environment is very good, and everyone I met was friendly and enthusiastic. The interview difficulty was lower than I expected, especially compared to other startup companies I interviewed with at the same time. Particularly, there was no tension during the process.

The final package was basically as expected, and I saw on Blind that there were 1.2 million shares, so it wasn’t the top offer. I can still negotiate further, but overall, there was no exciting increase compared to my current package (already completed four years, relying on refresher to get by). However, the office environment is excellent, which is probably the most appealing aspect to me.

Was it for G9 position?