目录
正在加载目录...

Pinterest Interview Process 全解析|加拿大 IC 顶包,五轮全通关记录

八月份 Pinterest 的 recruiter 主动 reachout,说有个数据方向的 Staff SDE 挺适合我。说实话我好多年不做 data engineer 了,第一反应是凶多吉少,但对方给的包裹实在诱人——可以说是我在加拿大遇到的 IC 顶包了。本着不能对不起钱的精神,面!

结局先剧透:五轮全过,offer 到手。但过程绝不轻松,尤其最后一轮差点翻车,OA 和每轮的题目细节都记下来了,给后面的人铺路。

Pinterest Interview Process 全解析|加拿大 IC 顶包,五轮全通关记录

流程和时间线

整体流程:OA → recruiter call → 5 轮 virtual onsite。OA 是 HackerRank 平台 90 分钟 3 题,通过后两个工作日内收到 recruiter 电话,onsite 集中在一周内面完,从 OA 到 offer 大概四五周。

OA:90 分钟 3 题

三道题都很有 Pinterest 特色——题面全是他家的真实业务场景。

第一题:Top K Frequent Boards in Stream(Medium)

给一个事件流 (board_id, engagement_score),实时返回当前 top K 个 board 的总 engagement,带 5 分钟滑动窗口。核心是 heap 的 topK 问题套一层滑动窗口:哈希表维护每个 board 的窗口内总分,队列维护窗口内事件按时间过期,topK 用堆或者直接排序取。

第二题:Deduplicate Near-Identical Pin Titles(Hard)

给 n 个 pin title,把”大小写不敏感 + 去标点后互为 anagram”的标题分到一组。思路是规范化 + 哈希分组:每个标题转小写、去标点、字符排序,得到的规范形作为 key 分组——等价类问题转规范形计数的经典套路。

第三题:Sessionize User Actions(Medium)

按时间戳排序的用户行为列表,gap 超过 30 分钟就切一个新 session,返回每个 user 的 session 数量。按 user 分组后线性扫一遍数时间差就行,是三道里最送分的。

另外提一句我自己 OA 撞到的:白人小哥出的表达式求值 backtrack 题。虽然是常见题,但题干和地里面经不太一样,导致解法也不同——所以面经只能参考,不能太依赖,基本功才是底气。follow-up 不用写代码,口述解法,就是经典 LC calculator 的 stack 思路。

Onsite 五轮实录

第一轮:Coding

华人小哥。面经题但不常见,题干略有改动,本体是 heap 的 topK,难度不大。follow-up 加了 timestamp 维度,变成 sliding window 类型——和 OA 第一题一个血统,看来这是他家的招牌题型。我最后没时间 run test,好在思路表达得清楚,这轮还是过了,大家注意控制节奏。

顺带一提,其他轮次还有 Merge Overlapping Campaign Windows(合并区间的业务皮)和 Search Suggestions System(前缀匹配/Trie)这类高频题,Pinterest 的 coding 题库整体不深,但都套着广告、搜索这些业务场景。

第二轮:System Design

华人大叔,题目是设计典型的 analytics 系统,属于 derived data 场景。深挖点在 partitioning 和 consistent hashing,尤其是 hot spot 问题——某个爆款 board 的流量倾斜怎么处理。这轮准备时建议把 DDIA 里 derived data 那几章过一遍,Pinterest 的业务性质决定了他家 SD 必考数据管道。

另一个高频 SD 题是设计 Personalized Home Feed 服务,feed 流 + 个性化排序,准备一个也能覆盖。

第三、四轮:BQ

分别和 HM、PM 聊。因为是 Staff 级别,BQ 占比明显比 Senior 以下重。问题围绕 Pinterest 的 values 展开,比如”讲一个你简化复杂系统的经历””当业务指标和用户利益冲突时你怎么 put Pinners first”。Staff 级别的 BQ 要往影响力、跨团队推动这个层面答,纯执行者视角撑不起来。

第五轮:技术深挖 + BQ

笑面虎华人大哥,开场像聊天,聊着聊着开始问很深的 Kafka 和 Spark 内部实现机制。我六七年没碰 Spark 了,好几个问题记忆已经模糊。救回来靠两点:一是提前一周押中了这个方向,把 Kafka 的 consumer group rebalance、Spark 的 shuffle 和内存管理这些核心机制突击复习了一遍;二是记不清的地方不硬编,坦白说这块细节需要查证,然后从原理层面推演给他看。面完自我感觉五五开,最后居然过了——事后琢磨,Staff 级别他考的可能不是你背得多熟,而是知识断层时的诚实度和推理能力。

复盘几句

给后来者三条建议:一、面经题干经常有变体,背题不如练基本功;二、Pinterest 的 coding 招牌是流式 topK、近似去重、session 切分这三板斧,SD 招牌是 derived data 和 feed,针对性准备收益很高;三、数据方向的高级别岗位,中间件内部机制不能只停在”用过”的层面,Kafka/Spark 的核心实现提前过一遍,这轮救了我的命。

备考路上我找了 InterviewShow 做备考规划,Pinterest 的题库专题和 SD 模拟面试都做了,从 OA 刷题规划到 VO 模拟他们全流程都有对应服务,有需要的可以去看看。

END