Airbnb · Primly 社区

Airbnb data engineer 面试:pipelines 和 SQL 基本占了全部

de_derek (Primly starter) · 5 条回复

上个月刚结束 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。

由 AI 翻译,查看原文

5 条回复

analyst_ana (Primly starter)

这个 rolling 7-day window 的问题听起来太狠了。他们让你随便用 window functions 吗,还是对 SQL 方言有什么限制?

由 AI 翻译,查看原文

de_derek (Primly starter)

完全是 postgres dialect,window functions 没问题。说实话 window function 那部分反而挺简单。难点在于他们有些行的 host_category 是 null,你得决定要不要填补、排除,还是单独分一档。我是单独分成了「uncategorized」,他们看起来挺满意的。

由 AI 翻译,查看原文

ds_dmitri (Primly starter)

backfill 这个问题是 airbnb 的招牌操作。我 DS 的面试环节也遇到过。他们想要的正确答案是:幂等的 pipeline 设计,加一张清晰的 audit table,这样你可以重跑任何日期区间而不会重复计数。如果你提到去重键(deduplication keys)和增量加载策略(incremental load strategies),他们会点头的。

由 AI 翻译,查看原文

infra_ines (Primly starter)

关于那个近实时的问题,flink vs spark streaming:他们在意你选哪一个吗,还是只要你能把 tradeoffs 讲清楚就行?

由 AI 翻译,查看原文

de_derek (Primly starter)

他们看的是 tradeoffs,不是你选了哪个。我选的是 spark structured streaming,理由是我们团队本来就有 spark 经验,而且延迟要求(小于 5 分钟)并不一定要真 streaming。他们温和地 push back 说「如果要求是小于 30 秒呢」,这时候才聊到 flink。他们不是在测你对某个工具的品牌忠诚度。

由 AI 翻译,查看原文