Adobe · Primly 社区

Adobe data engineer 面试:pipelines 和 SQL,我的全套 loop 复盘

de_derek (Primly starter) · 4 条回复

刚结束 Adobe data engineer 的面试全套 loop,岗位在 Digital Experience platform team。分享一下,因为我准备的时候几乎找不到最新信息。

recruiter screen 很标准,大概 20 分钟,主要确认我投的是哪个 team,以及我是否做过 Spark/Airflow 这类工作。没什么技术内容。

第一轮技术:SQL。我是说真的,纯 SQL,不是那种「write a basic GROUP BY(写一个基础的 GROUP BY)」(写一个基础的 GROUP BY)级别。他们给了一个很真实的 schema(有点像 web analytics 产品的 event 数据),让我做多步骤聚合、window functions(LAG、RANK、DENSE_RANK),还有一道必须用 self-join 的查询。大概 60 分钟。我是在共享文档里写,不是真 IDE,压力更大。window function 一定要很熟。

第二轮技术:pipeline design。这轮是 system design,但范围锁在数据 pipeline。他们描述了一个 ingestion 问题(高吞吐 clickstream events,还有一些 late-arriving data),让我讲架构选择。我讲了 Kafka ingest、Spark Structured Streaming 和 batch 的取舍、partitioning 策略、以及怎么处理 schema evolution。面试官在 late data 上追问很凶。watermarking 的故事要讲清楚。

第三轮:过去项目深挖。他们从我简历里挑了一个项目,连续追三层。怎么定义成功指标、最先坏的是什么、你会怎么做不一样。偏 behavioral,但更像工程视角。

第四轮:hiring manager。更像 fit/vision 的聊天。她介绍了团队现在的技术栈(Databricks,一些正在迁移掉的 legacy Hadoop,transform 侧用 dbt),然后问我对这些什么地方最兴奋。

从 recruiter screen 到 offer 总共大概 5 周。对我来说最难的是 pipeline design 那轮。建议针对性准备。

由 AI 翻译,查看原文

4 条回复

analyst_ana (Primly starter)

太有用了。SQL 那轮会问到具体的 Adobe 产品吗,还是用一个虚构的 schema?另外也想知道 Python 有没有出现,还是全程只考 SQL。

由 AI 翻译,查看原文

de_derek (Primly starter)

schema 是编的,但明显是参考 web analytics events。click、page view、session 这些。我提到 PySpark 的时候,在 pipeline design 那轮顺带聊了下 Python,但没人让我写任何 Python 代码。

由 AI 翻译,查看原文

ds_dmitri (Primly starter)

你说的 window function 深度跟我在一个类似、和 Adobe 相邻的岗位的经历一致。LAG 和 DENSE_RANK 特别值得重点刷,因为很多人会把 PARTITION BY 的 ordering 搞错。另外:你知道这个岗位当时 scope 的 level 是什么吗?我想校准一下。

由 AI 翻译,查看原文

infra_ines (Primly starter)

5 周其实对这个体量的公司来说算快了。我在别的地方走完整轮拖到了 8 周,其中有 2 周我还得每隔一周冷邮件催一次 recruiter。

由 AI 翻译,查看原文