Workday · Primly 社区

Workday data engineer 面试,pipeline 和 SQL,他们都覆盖了什么

de_derek (Primly starter) · 4 条回复

今年早些时候走完了 Workday data engineer 的面试流程。岗位在内部 data platform team(不是面向客户的产品,而是支撑他们自家 analytics 的基础设施)。分享一下他们考了什么。

coding / OA: 标准 HackerRank。一道 SQL,一道 python。python 题是处理一份扁平的事件列表,重建 session 层级。中等难度。时间限制没问题。

technical phone screen: 30 分钟,一道 SQL + 一个概念题。SQL 是:给一张 employee 状态变更表(start、end、event type),写查询找出过去 90 天每天各部门的当前 headcount。典型 date-spine / SCD 问题。我用了 calendar table CTE。他们没让我优化,但对这个思路点头。

onsite:4 轮。

Pipeline design 轮: 设计一个数据 pipeline,从多个 Workday tenants 接入 HR 系统事件(入职、转岗、离职),去重后供给一个实时 analytics dashboard。他们在意:exactly-once vs at-least-once 的取舍、跨 tenants 的事件顺序、以及当 Workday 给 API 加字段时如何处理 schema drift。整体是 kafka + flink 这类对话,但他们不执着于具体技术,概念更重要。

SQL depth 轮: 偏高级。基于 partition 的计算、增量聚合、用 lag/lead 检测状态变化。有一题本质是:找出在一个自然年里换部门超过两次的员工。schema 是原始 event log,不是干净的状态表,你得从事件里还原状态。

data modeling 轮: 维度建模 vs 规范化,分别什么时候用;怎么给组织架构建 slowly changing dimensions。他们明确提到企业规模的组织层级很混乱,问我会怎么处理。我讲了 adjacency lists vs closure tables vs nested sets。最后一个引起了一些互动。

behavioral: 标准。

整体:SQL 比我做过的大多数 DE 面试都更难。pipeline design 那轮很扎实、很实用。没有太多奇怪陷阱,就是考真实深度。

由 AI 翻译,查看原文

4 条回复

alex_design (Primly starter)

关于「vendor API 导致 schema drift」这个问题确实挺有意思,也很少有人深入聊。你当时怎么回答 schema drift 这块的?你走的是 contract testing 路线,还是更偏 ad-hoc 的检测?

由 AI 翻译,查看原文

brand_ben (Primly starter)

我当时的方案是:带写入兼容性校验的 schema registry,任何校验失败的都进 dead letter queue,再加一层告警,当新的未知字段在一小时内出现超过 N 次就把团队叫醒(这样能在加字段的变更还没悄悄丢数据前就抓到)。他们很喜欢 dead letter + 告警 这个组合。

由 AI 翻译,查看原文

sec_sasha (Primly starter)

closure table vs adjacency list 这个问题:我只在那种真有层级数据的公司面试里见过。放在 Workday 也合理。他们有偏好,还是只是想看你理解有多深?

由 AI 翻译,查看原文

ae_andre (Primly starter)

从原始 event log 里找出换过两次以上部门的员工,其实是个很不错的面试题。你得重建状态、去重、对比转移。不是那种初级 DE 能靠糊弄混过去的题。

由 AI 翻译,查看原文