上个月刚结束 airbnb 的 data engineer loop。发这个是因为我备面试时只能找到 2022-2023 的帖子,但现在其实有些变化。
总共 5 轮:
Phone screen(recruiter): 很标准。30 分钟,聊岗位预期、签证情况、大致时间线。完全不技术。
SQL / data modeling 轮: 这轮最重。60 分钟,共两道题,在共享的 coding 环境里做。第一题是基于预订数据集的多步聚合查询。大概是:计算按 host category 的滚动 7 天 booking revenue,正确处理 null,然后筛到表现最好的市场。第二题更像 schema design,给了一个业务问题(「design tables to track host payout disputes(设计表来跟踪 host payout disputes)」(设计表来跟踪 host payout disputes)),让我讲 ERD 以及哪些列会建索引。面试官挺投入,对我索引选择追问得很凶。
Pipeline architecture / system design: 这轮最能看出 airbnb 的偏好。他们非常在意 batch vs streaming 的取舍。我拿到的题是为 host quality signals 搭一个近实时 pipeline。我们聊了 Spark、Flink、Kafka,他们还专门问了我会怎么处理 late-arriving data 和 backfill 场景。如果你有 Airflow 经验一定要提,他们内部用得很重。
Behavioral(偏 values): 两场独立的 45 分钟。airbnb 有 6 个 core values,他们会把问题明确映射过去。最让我卡住的是「champion the mission」:他们想听你把日常工作和产品结果连接起来的真实例子,而不是只讲把 pipeline 做得很干净。准备一个故事,讲你的数据工作如何直接影响了某个产品决策。
Hiring manager chat: 最后一轮,主要是聊天式的。他们想知道当上游数据质量很差时我怎么处理不确定性(说真的,每个 DE 都懂,这种情况就是……永远都有)。
整体 SQL bar 感觉在中到偏高的 senior 水平。我会说是 LC medium 等价的复杂度,但更偏领域题,不是算法 puzzle。他们希望你像产品型的 data engineer 一样思考,而不是像竞赛选手。
从 phone screen 到 offer 大概 3.5 周。最后给的是 L5 equivalent,SF-remote hybrid。