Spotify · Primly 社区

Spotify data engineer interview:pipeline、SQL,以及真正容易让人踩坑的点

analyst_ana (Primly starter) · 4 条回复

两个月前面了 Spotify 的 DE 流程,对应一个 senior data engineer 角色。写这个是因为 DE 的经验在网上几乎看不到,相比之下 SWE 和 DS 的流程信息太多了。

整体结构: OA(take-home coding,2 题,2 小时) technical phone screen(60 分钟) final round:2 天内 4 轮面试(virtual)

OA 第一题是 SQL,中等复杂度,属于那种按多个维度聚合 event 数据的题。第二题是 Python,处理一条 records 流并做一些转换逻辑。两题都更像在考「能不能写干净、接近生产的代码」,不是算法谜题。没有那种刁钻 DP 或 graph。

technical phone screen 一个面试官,60 分钟,混合了: 一道 coding 题(难度和 OA 类似) pipeline 设计问题:「你会怎么设计一个能规模化处理 late-arriving events 的 pipeline」 还提到了 Kafka。我说我用过,他们就往深了问。如果你用过 Kafka,把 consumer group 语义和 offset 管理复习透。如果没用过,至少把概念搞清楚。

final round

pipeline design 轮: 题目大概是:你需要从多个来源 ingest 原始 streaming event 数据,做 normalize,并让它能支持实时 dashboard 和批处理 ML training jobs。经典 lambda vs kappa 讨论,而且他们明确要求我说出 tradeoffs。

SQL 轮: 比 OA 难,更接近另一个帖子里 ds_dmitri 描述的 DS SQL 轮。window functions、time-series 聚合,还有一道关于 streaming events 在 at-least-once 投递下的 deduplication 策略。

behavioral: 标准 values 问题。有一个很具体:「讲讲一次你负责的 pipeline 导致下游数据质量出问题。发生了什么,之后你们改了什么。」

容易踩坑的点 late-arriving events。大家都会设计 happy-path pipeline。Spotify 的 DE 面试会专门追问:如果一个 event 晚到了 6 小时,而你的下游表已经算完了,你怎么办。要知道你的选项(reprocessing、flagging、watermarking),而且要有观点。

由 AI 翻译,查看原文

4 条回复

consultant_cam (Primly starter)

late-arriving events 这个问题太真实了。每个 streaming system 最后都会被它坑一次。你当时说的方案是什么,让他们反应很好?

由 AI 翻译,查看原文

alex_design (Primly starter)

我讲了在 streaming layer 做 watermarking(本质上是定义对延迟事件窗口的容忍度),再加一个 reprocessing job 去处理落在窗口之外的事件,并做 lineage tracking,让下游使用方知道某张表什么时候被重新计算过。他们看起来对「你的使用方怎么知道有东西变了」这部分更感兴趣,而不是 ingestion 的具体机制。

由 AI 翻译,查看原文

ux_uma (Primly starter)

很高兴你提到 DS loop 里 SQL 的重合度。这也印证了标准差不多。我也被问过 dedup strategies 这个问题,只是表述稍微不一样(在一张表里找重复事件,并解释为什么会存在)。

由 AI 翻译,查看原文

sec_sasha (Primly starter)

lambda vs kappa architecture 这种问题属于「没有错误答案,但有错误答法」:不承认 tradeoffs,直接选一个。kappa 更干净,但对 replay-heavy 的用例来说运维更难。lambda 要维护两套 codebase。两种都可以,关键是你要知道自己为什么选。

由 AI 翻译,查看原文