OfferForge 导师 Dr. W. — 博士毕业,前 FAANG Senior MLE。研究方向为大规模分布式机器学习系统,曾在顶级国际学术会议发表多篇论文。负责团队学术方向把控与 MLE 面试辅导。
OfferForge 导师 Dr. S. — 前大厂 Senior SDE,精通分布式系统与大规模数据处理。曾在顶级技术会议发表多篇技术报告,专注于系统可扩展性与可靠性。负责课程体系设计与 System Design 面试辅导。
OfferForge 导师 Dr. L. — 前大厂 Senior SDE,深耕分布式系统与微服务架构。在服务治理、事件驱动架构方面有丰富实战经验。负责求职策略制定与 SDE 面试辅导,已帮助多位候选人斩获 Senior 级别 Offer。
Pinterest 的 onsite 面试一共是四轮 back to back,每轮 45 分钟,中间有 15 分钟休息时间。整体安排是三轮 coding + 一轮 project discussion。整体节奏比较紧凑,但面试官都比较友好,没有特别强的压迫感。以下是真实case分享。(尽管有layoff,但是pinterest仍然是目前市场上不错的选择之一)
第一轮的面试官是一位 SDE II 华裔小哥。candidate 用了两分钟快速自我介绍,尽量留多点时间做题。题目是计算给定一批 intervals,合并所有重叠的区间,并返回合并后的结果。candidate 先讲了暴力思路,然后写了排序 + linear scan 的解法,时间复杂度 O(n log n),实现很快就跑通。最后还补充了一个 edge case:如果输入是空数组,返回空列表。面试官说这正是他想看到的。
第二轮是一位 MLE II 印度大姐,开场时先聊了她自己在做的推荐系统,然后直接进入题目。题目要求实现一个 LRU Cache,支持 get 和 put 操作。candidate 写了 hashmap + doubly linked list 的标准解法,时间复杂度 O(1)。跑 test case 时修了一个小 bug,很快就全通过了。follow up 是如果 cache 要支持批量删除怎么办,candidate 说可以扩展接口,并在 linked list 上做 batch eviction。写完之后 candidate 主动解释了时间和空间复杂度。
第三轮是 hiring manager 面试,对方是一位印度裔的 Sr. Engineering Manager,但其实这个岗位并不是他们组在招。他从 candidate 的简历里挑了两个项目做 deep dive,一个是分布式任务调度的优化,一个是在线服务的降级策略。整体上是技术探讨,没有问太多套路化的 BQ。聊到一半他还举了一个自己团队的例子,感觉更像是 peer to peer 的交流。最后提前三分钟结束,他说要赶去开会。
最后一轮是 coding。题目是实现一个 median finder,支持不断插入数据,并且能够在任意时刻返回当前所有数的中位数。candidate 写了用两个 heap 的解法,一个 max-heap 存左半部分,一个 min-heap 存右半部分,每次插入保持平衡。时间复杂度 O(log n),取中位数是 O(1)。follow up 是如果数据流非常大怎么办,candidate 说可以考虑做分布式 median 计算,用分桶加近似统计。面试官明显对结果很满意。剩下的十分钟基本就是闲聊。