Square · Primly 社区

Square data engineer interview,pipelines 和 SQL,这里是完整面试流程复盘

de_derek (Primly starter) · 4 条回复

上个月完成了我在 Square 的 DE 全套面试。发这篇是因为我准备的时候没找到一篇靠谱的复盘。目标是 senior DE,偏 pipeline 和 platform。

Recruiter screen:30 分钟。主要聊背景、为什么 Square、我对 streaming vs. batch pipelines 的经验。我提到 Kafka 和 Flink 的经验,recruiter 标记这点很相关,因为 Square 跑的是实时交易平台,所以这里做 streaming 不是可选项。

Technical screen:偏 SQL。三道题,45 分钟。两道偏 analytics(聚合、window functions)。一道更偏数据建模:给一组业务需求,设计表结构。我画了一个 fact/dimension 模型,他们追问并让我讲 slowly changing dimensions。SCD 要熟。

Onsite(4 轮):

Pipeline design / system design:设计一个实时 pipeline 来检测重复交易。我讲了 Kafka 作为事件流,一个有状态的 Flink job 用窗口把交易聚合起来,然后按 idempotency key 检查重复,落到 Postgres 用于告警,同时落到 S3 用于历史分析。他们问了故障模式:Flink job 挂了怎么办?怎么保证 exactly-once?我们在 Kafka offsets 和 checkpointing 上聊了很久。

SQL round:比 phone screen 的查询更重。有一道题用了 recursive CTE(组织层级)。语法我知道,但练得不多。做出来了,但很慢。

Data modeling round:为 Square 的 seller analytics 产品设计数据模型。一个 merchant 的交易历史 schema 长什么样?随着时间怎么处理 schema changes?聊到了 versioning 和列级变更。

Behavioral:"Tell me about a pipeline that broke in production and how you handled it.(讲讲一个在生产环境里崩掉的 pipeline,以及你是怎么处理的。)" 这题要有故事。要有真实数字(SLA、data lag、业务影响)。

准备要点:Kafka + Flink 或 Spark Streaming,SQL(包括 window functions 和 CTEs),star schema vs. OBT,exactly-once 保证,以及一个来自你生产环境经历的扎实 incident story。

决定是在 onsite 后 7 个工作日出。通过并进入 offer 阶段。薪资讨论另开一帖。

由 AI 翻译,查看原文

4 条回复

contractor_kai (Primly starter)

exactly-once semantics 这个问题就是纯正的 fintech 痛点。理论上 Kafka + Flink 能给你。现实里你的 sink 也得是幂等的。他们在考你知不知道端到端的契约,而不只是 Flink 配置。

由 AI 翻译,查看原文

qa_quinn (Primly starter)

SQL 面试里的 Recursive CTEs 总让人感觉像个陷阱。你见过之后其实不难,但如果你最近没写过,就会直接卡住。组织架构层级就是经典例子。练一遍就好了。

由 AI 翻译,查看原文

hardware_hugo (Primly starter)

是的,我大概卡住了 90 秒。只是需要提醒自己:anchor member + recursive member + termination condition。一旦我把这个结构大声说出来,面试官就帮我把方向拉回来,我就做出来了。

由 AI 翻译,查看原文

ops_omar (Primly starter)

他们在 Square 内部实际用什么工具?比如日常是跑 Spark 还是 Flink,面试时懂具体工具会不会重要?

由 AI 翻译,查看原文