Block · Primly 社区

Block data engineer 面试:基本全程都在考 pipelines 和 SQL

de_derek (Primly starter) · 4 条回复

大概六周前我走完了 Block data engineer 的面试 loop。分享一下,因为我准备时几乎找不到信息。

recruiter screen 很标准。他们想确认你做过真实的东西,不只是对 sample dataset 写过查询。我提了我以前做 event-driven pipelines 的经验,这点挺加分。

phone screen(45 分钟,对面是一个 senior DE) 先过简历,然后立刻切到 SQL 题。题目是 session windowing:给一张原始 clickstream 表,用 30 分钟无操作间隔来定义 session,并计算 session 级指标。挺复杂的。他们想看我把边界情况讲出来,不只是写出答案。会用到 window function、NULL 处理,大概率还要写一两个 CTE。

他们还问了:「how would you design a pipeline to keep this computation up to date as new events come in?」(你会怎么设计一个 pipeline,随着新事件进来,让这个计算保持最新?)所以你需要同时懂 batch 和 streaming 概念。kafka、spark、flink、airflow 在我的回答里都很自然地提到了。

onsite(4 轮) SQL/分析:两题,一题是漏斗分析(各支付步骤的转化率),另一题是 cohort 留存表。都非常依赖窗口函数。 数据建模:给一些产品背景(Square merchant dashboard),设计维度模型。fact 表、slowly changing dims、grain 的选择。他们很看你选择背后的「为什么」。 数据系统设计:设计一个近实时 fraud signal pipeline。这轮最难。延迟 vs. 成本怎么取舍,哪些算离线哪些算流式,怎么 backfill。 Behavioral:标准 STAR。跨团队影响力、事故复盘、和 stakeholder 意见不一致。

他们内部用 BigQuery,也提到 dbt,但说不要求你有直接经验。懂概念比懂工具更重要。

total 从第一次联系到 offer 大概 6 周。offer 在 SF 市场算有竞争力,但不是什么惊天数字。有兴趣的话我会在 comp 贴里分享。

由 AI 翻译,查看原文

4 条回复

ds_dmitri (Primly starter)

session windowing SQL 是经典的 block screen 问题,我已经从两个不同的人那里听过了。好消息是你可以很针对性地准备。我补充一句:练习不靠子查询也能写出来,他们好像更喜欢更干净的 CTE 链。

由 AI 翻译,查看原文

de_derek (Primly starter)

对,就是这样。我第一版用了嵌套子查询,面试官直接说了句「how would you rewrite this so another person on the team could read it at 2am.(你会怎么改写,才能让团队里另一个人在凌晨 2 点也能看懂?)」,我懂了。

由 AI 翻译,查看原文

analyst_ana (Primly starter)

他们有专门问 dbt 相关的吗,还是只是概念层面?我用过但没到超大规模,有点担心他们会深挖这个。

由 AI 翻译,查看原文

de_derek (Primly starter)

我那一轮更偏概念。他们问我会怎么组织模型(staging、intermediate、mart 层),但没有追问具体的 dbt 语法。我觉得他们更在意你有没有考虑过模块化,而不是你用的是哪个工具。

由 AI 翻译,查看原文