今年早些时候走了 eBay data engineer 的全套流程,面的是 San Jose 办公室的 senior DE。总共四轮:一轮 recruiter phone screen、一轮 technical screen,然后两轮 onsite(一个 data/SQL,一个 system design + behavioral)。可以远程,但我选了线下。
Technical screen 是 Coderpad 上的 SQL 轮。他们给了一个很乱的 schema,像真实的电商 orders/items/sellers 结构,说实话感觉跟真实 eBay 数据很像。题目包括:window functions、一个多步骤聚合题,还有一道需要你推理数据质量的(null 处理、去重)。没有 LeetCode,没有算法,就 SQL。SQL 难度中等偏难,不是那种随便写写。
Onsite 的 SQL 轮类似,但更深入。要能聊 query 优化、索引策略,而且他们问到如果某个 pipeline 在 100 亿行数据时变慢了你会怎么重构。我讲了分区、增量加载、materialized views。他们点头但没表态。
System design 轮是 pipeline 架构。我抽到的是:为 eBay listings 设计一个实时 search indexing pipeline。卖家发一个 item 后 60 秒内可搜索。我讲了 Kafka 做事件流、Flink 做转换/富化、写入 Elasticsearch,以及如何处理 schema evolution。面试官在这轮很投入,追问了 backfill 策略和 delete 怎么处理。
Behavioral 比较标准:讲一次你在 prod 里处理坏数据的经历、一次你如何在没有职权的情况下推动影响。两题,合计大概 30 分钟。
他们提到的内部技术栈:Spark、Airflow、Kafka、Hive,还有一些我不认识的内部工具。他们看起来正在做 Hadoop 到云(AWS)的迁移,所以可能会问这类转型问题。
从 recruiter 联系到 offer:大概 6 周。offer 是 L5 对标。准备的话,把 SQL window functions 练到闭眼能写,并且准备一个真实的 pipeline design 故事。