刚结束一轮 Samsung data engineer 的面试 loop,岗位在他们 mobile platform data team(Plano, TX)。趁还新鲜写下来,因为我之前几乎找不到具体信息。
流程是:recruiter screen,一个 45 分钟 technical phone screen,然后 virtual 的 4 轮 onsite。两轮 technical,一轮是 hiring manager,一轮是跨职能 stakeholder chat。
Phone screen: 经典 SQL,不花哨。window functions、GROUP BY + HAVING、一个 self-join。他们让我写一个 query,找出每个 device category 的第二高下载量。大概 8 分钟写完,感觉还行。他们内部用 Spark 和 Redshift,recruiter 提到熟悉这两个是「加分项」,但对 senior 不是硬要求。
Technical round 1(pipelines): 这轮更有意思。他们给了个场景:你有一条来自 Samsung Galaxy 设备的近实时事件流,50k events/second。讲讲你会怎么设计 ingestion、transformation、serving 层。我讲了 Kafka 做 ingestion、Flink vs Spark Streaming 的权衡、medallion architecture(landing、bronze、silver、gold),以及怎么处理 late-arriving events。他们对我的 schema 选择 push back 了几次。通常是好信号。
Technical round 2(SQL + data modeling): 混合了 query 优化问题(怎么定位慢查询、index 策略、partitioning)和一个 data modeling 练习:给一个 device health monitoring 产品设计 star schema。我画了 fact 和 dimension tables,他们问了 slowly changing dimensions。面试官很懂。
Behavioral: 挺标准。讲一个你设计的 pipeline 扩展性很差的案例,以及你怎么做。跟数据使用方的冲突。一次你必须为偿还 tech debt 做 advocacy 的经历。
从 recruiter 第一次联系到 offer:大约 5 周。senior DE 的 offer 是 $155k base + 10% annual bonus target + RSU,但和我看到的 cloud-native 公司相比,RSU 不太有竞争力。Samsung 的薪酬结构更偏 salary,而不是 equity。
总体感受:technical bar 扎实,他们真的在乎 pipeline 设计层面,不只是写 query。值得把分布式系统基础复习好,并且要准备真正把 tradeoffs 讲清楚。