Airbnb · Primly 社区

Airbnb frontend engineer 面试:他们测的不只是「你会不会写 UI」

frontend_fran (Primly starter) · 5 条回复

大概两周前刚结束我的 airbnb frontend engineer 面试全流程。现在正在推进 offer 流程,趁记忆还新鲜赶紧发一帖,因为我准备的时候几乎找不到最近的经验分享。

简单背景:~4 年 YOE,主要做 React,也写过一些 Vue,CSS 很强。投的是大概对应 L4/mid-level 的岗位。

轮次结构: 初轮 recruiter screen(30 分钟,没有技术内容) OA:一道前端 coding 题(下面会细说) Onsite:两天共 4 轮

OA:是一个组件搭建题。做一个带防抖的自动补全搜索输入框。可以用 vanilla JS,也可以用 React,随你选。他们看重的点:边界情况(空查询、快速连续输入、处理他们给的 mock API 的网络错误)、键盘无障碍(方向键、回车选择)、以及代码干净可读。不能用外部库。我用的是 React + hooks。防抖这块很多人应该会翻车,确保你的实现真的会取消上一次还没触发的调用。

Onsite 各轮:

Frontend systems:做一个简化版组件,要求看起来像是可能存在于 airbnb.com 的。我抽到的是 date range picker。面试官一直在加范围:「现在支持多个月」,「现在处理 disabled dates」。典型的需求扩展模式。CSS grid/flexbox 要非常熟,状态管理要干净,而且全程要边做边讲思路。

Performance + browser fundamentals:这轮很多人不会准备,但其实应该准备。问题比如:如果一个 listing 页面有 50+ 张照片,首屏加载很慢,你会怎么排查?paint timeline 大概是什么样?我们聊了 LCP、CLS、图片懒加载、字体加载策略、以及 bundle splitting。如果你从来没真正用过 Chrome Performance tab 去认真排问题,现在就去。

Behavioral:标准的 airbnb core values 模式。

Cross-functional collaboration:偏场景题,关于和设计师合作。他们给了一个很真实的情况:设计稿在技术上很贵,但时间线又很紧。你怎么谈,既不直接说不,又能把事情推向可落地的方案。

整体感受:如果你是纯刷算法那种人,前端面试流程可能会让你有点意外。他们更看重产品 sense 和 web fundamentals,而不是数据结构。

由 AI 翻译,查看原文

5 条回复

mobile_mara (Primly starter)

autocomplete 这个 OA 现在算经典题了。大家老是忘的一点是,在 useEffect 里要用 cleanup function 去取消上一次请求,或者在组件卸载时清掉 debounce 定时器。经典的内存泄漏、stale closure 陷阱。

由 AI 翻译,查看原文

infra_ines (Primly starter)

前端面试里问 LCP 和 CLS 以前还挺意外的,现在基本属于必备项了。如果你在意 web perf,Lighthouse 分数和 Web Vitals 的文档其实很值得前一晚读一下。

由 AI 翻译,查看原文

brand_ben (Primly starter)

听到 designer negotiation 的场景很有意思。他们看起来是希望候选人对设计 spec 进行反驳,还是找一个折中方案?我这么问是因为我是 designer,也在这些对话的另一边待过。

由 AI 翻译,查看原文

frontend_fran (Primly starter)

他们想要的是带具体方案的中间路线。不是「这个太贵了」,也不是「行我们就完全按你说的做」。他们看起来满意的回答是:这一轮 sprint 我们能交付哪些东西可以拿到 80% 的用户价值,哪些先 defer,我们怎么把缺口记录下来让它留在 roadmap 上。

由 AI 翻译,查看原文

returner_ren (Primly starter)

那个 date range picker 练习听起来很容易暴露出你如果离开前端一段时间的空档。知道 onsite 的 component-build 大概长这样挺有帮助的,让我有个明确的练习目标。

由 AI 翻译,查看原文