大概六周前在 Ramp 面了一个 data engineering 岗。没拿到 offer(我觉得是 system design 那轮炸了),但这个流程挺有意思,值得记录一下。
Ramp 的 data platform 据说主要是 Snowflake 和 dbt。这些背景会影响很多面试内容。
SQL 轮: 这轮是真的,而且很难。不是「write a basic JOIN(写一个基础的 JOIN)」那种难,更像是:在交易 schema 上写多步骤分析 query,需要 window function,还要考虑性能。我拿到的题大概是:对每张 corporate card,按类别计算滚动 30 天的消费额,并标记在窗口内至少 3 天超过该类别额度上限的类别。这是一个真实 fintech 业务问题,不是 leetcode 式的 SQL 小谜题。
你需要现场写,讲清假设,并处理追问:如果数据集很大(几十亿行,分区、聚簇策略),你会怎么优化。
Pipeline 设计: 我在这轮翻车了。他们让我设计一个 merchant 交易数据的 ingestion pipeline,数据来自 card networks,需要处理 late-arriving events、幂等性要求,还得能回填历史数据。我知道组件(Kafka 做流,dbt 做 transform,Snowflake 做存储),但我没把去重逻辑讲清楚,他们在这点上追得很紧。
如果你只准备一件事,就准备流式 pipeline 里的幂等性。尤其在 fintech。一定会问。
Behavioral / culture: 对 data 岗更短,大概 30 分钟。他们问了我一次我如何 owner 一个数据质量事故。准备一个具体故事。
总体:门槛很高。SQL 要熟,dbt pattern 要熟,知道怎么针对 late-arriving data 做设计。