今年春天走完了完整的 Target data engineering 面试 loop。发这个是因为我当时搜到的几乎都不是近期的。下面是完整拆解。
Online Assessment。 标准 HackerRank 形式。两道 SQL(中等复杂度:窗口函数、CTE、self-join 的场景)加一道 Python/pandas,围绕清洗一个格式有问题的数据集。总共 75 分钟。SQL 是那种生产里真会用到的水平,不是课本题。有一道题是「找每个客户第二新的订单」这种结构,如果你对 ROW_NUMBER() 和 partitioning 不熟,会很容易翻车。
Hiring Manager Screen(30 分钟)。 主要是背景和匹配度。他们问了我 batch vs streaming pipeline 的经验、我用过哪些云平台(他们在 Target 很重度用 Azure,值得提前了解),以及我在生产 pipeline 里怎么处理数据质量问题。
Technical Deep-Dive Round(60 分钟)。 两部分。前半是设计:让我讲如果要做一条端到端 pipeline,每天从 2,000 家门店摄取 POS(point of sale)交易数据,做转换,并提供给分析使用,你会怎么搭。聊到了 partitioning 策略、处理 late-arriving data、幂等、schema evolution。都是实战内容。
后半是现场写 SQL:给了一个 schema(orders、products、stores、customers),写 3 个问题的 query。一个带过滤的聚合,一个用窗口函数的排名,一个需要多步 CTE。节奏有压力但算合理。
Behavioral Round。 标准 STAR 问题,重点在你怎么处理数据质量事故、如何和 stakeholder 一起定义数据需求、以及生产环境 pipeline 崩了你怎么应对。
整个流程从 OA 到 offer 大概 5 周。我的 offer 在 Minneapolis 的 senior data engineer 的中高档。不是湾区水平,但在当地很够用。