刚接受了 Coinbase 的 offer(data eng 岗,L5 对标)。我大概准备了 7 周。分享下如果今天从零开始,我会具体怎么调整。
简单背景:5 年 YOE,做 data science 和 analytics。投的是 protocol data team 的 data engineering 岗。全流程 5 轮:recruiter screen、take-home SQL/analytics case、围绕 take-home 的技术 deep-dive、data modeling / system design、以及 behavioral。
我浪费时间的地方:
前两周我死磕 Leetcode hard。对 data engineering 岗来说基本没用。整个流程我可能只碰到过一道中等难度的 Python 题。如果你投的是 SWE 可能更重要,但对 analytics/data eng 岗,时间投入应该重心放在 SQL、数据建模和领域相关设计。
我还看了很多泛泛的面试准备内容。也没用。
真正重要的:
SQL。Window functions、CTE、查询优化、处理 slowly-changing dimensions。take-home case 是一个真实数据问题,需要你用干净、结构清晰的 SQL 去回答一个业务问题。没套路,就是看熟练度。SQL 生疏的话从这里开始。
Blockchain data 很特殊。链上数据的形态和典型交易型数据库不一样:UTXO 模型、address-to-address 交易、智能合约的 event logs。我花了两周读 crypto 交易数据到底怎么组织、能回答什么问题。这在技术面里回报很大。
金融系统的数据建模。理解 slowly-changing dimensions、审计表、event-sourcing 模式。知道为什么选这个而不是那个。
Behavioral:把 Coinbase 的文化价值观文档认真读一遍。我打印出来,然后给每个价值观都配了一个具体故事。看起来有点夸张,但有个面试官在那轮里确实点名提了其中一个价值观。
我现在会用的时间线:
第 1-2 周:SQL 熟练度、数据建模基础。第 3 周:尽可能多读链上数据结构、Coinbase 的公开 engineering blog。第 4-5 周:针对数据系统的 system design,练习讲解。第 6 周:behavioral 准备,把故事映射到价值观。第 7 周:mock interviews、休息、收尾。
take-home 才是真正的筛选点。我听说不少人就是卡在这里。别赶工,把它当成真正的工作产出。