Whatnot 面经|Whatnot 面试注意事项|Whatnot Karat 面经

顶级技术积累,独家导师资源,面试实战演示(FREE!)

anthony
Joseph C
Senior @ Meta

CMU 博士毕业,前Meta Senior RS。长期从事 LLM 和 AI Agent 技术研发,研究方向涵盖 Agentic AI、Reasoning Models 以及 Multi-Agent Systems,曾主导多个生产级 AI Agent 项目的设计与落地。对MLE的面试技巧和得分点了如指掌,培训了团队内的数十名新同事。

Luke P

Staff @ 谷歌

前谷歌 staff 软件开发工程师,精通分布式系统、云计算和大规模数据处理。在顶级技术会议KubeCon和Google Cloud Next上发表多篇技术报告。专注于提升系统的可扩展性和可靠性。在Github上发布了System Design面试手册,收获上千 🌟

samuel
Samuel
Nick L
L7 @ Amazon

前 Amazon 工程老兵,长期深耕SDN核心系统研发。专注于提高系统的可扩展性、可靠性和成本效率。在服务治理、网络系统、事件驱动架构方面有丰富的实战经验。专做 Amazon 和 Meta 的 SDE 面试辅助,一年内帮助候选人成功斩获超过 30 个 L5和 L6 offer。

Whatnot 面经|Whatnot 面试注意事项|Whatnot Karat 面经


想要和我们的面试辅助团队进行一次免费的沟通?

当然可以!
我们会直击要点,回答你的所有疑问,并介绍我们的服务。
还有顾虑?
我们可以提供免费的面试实战展示。我们团队到底有多少水平,你说了算。


Whatnot 的基本入场券就是第一轮 Karat 面试。主要考 Coding、算法思维、代码正确性和沟通能力。题目通常有很很很长的业务背景,需要candidate快速理解需求、选择合适的数据结构和算法,并在有限时间内写出正确的代码。

一、时间怎么选?

Karat 的预约时间自由度很高,可以根据自己的状态选择合适的时间段。个人建议尽量避开美国时间晚上,因为这个时间段更容易匹配到印度面试官。

二、Coding 环境与注意事项

面试过程中可以查询编程语言的官方语法文档,但是不能使用 AI 工具辅助解题。通常不需要共享整个屏幕,主要通过 Karat 提供的在线 Editor 完成 Coding。Karat interviewer 对作弊行为非常敏感,感觉是特意训练过的那种。如果面试过程中频繁眼神移动,或者出现其他异常行为,可能会被flag。即使面试官怀疑存在作弊行为,也不会当场提醒或者中断面试,而是在面试结束后向 Recruiter 反馈。


三、挺标准的面试流程

一轮面试没有固定的题目数量,通常是连续完成多道独立的 Coding 题。根据我们接触到的大部分case,完整解决两道题通常是比较积极的信号,大概率进入下一轮。当然最终结果还取决于代码质量、沟通表现以及面试评价。


每道题目的流程基本一致:首先,Interviewer 会将题目粘贴到 Editor 中,并口头解释题目要求。Karat 的题目通常有非常长的业务背景,包含详细的规则、输入输出说明以及 Test Cases,因此理解题目本身就需要花费一定时间。正式写代码之前,candidate需要先讲清楚解题思路,包括使用什么数据结构、为什么选择这个算法,以及预期的时间复杂度。Coding 过程中,Interviewer 可能随时追问某个实现细节,比如为什么使用 HashMap、如何处理 Edge Cases,或者当前算法是否存在性能bottleneck。写完代码后,需要运行测试并修复 Bug,尽可能通过全部 Test Cases。有时还会要求手动 Dry Run,解释关键变量如何变化。


不同题目之间通常没有直接关联,并不是一道主问题搭配多个 Follow-up 的形式。整体难度往往逐渐上升,第一题相对基础,第二题开始增加算法复杂度,第三题通常更加考验综合能力。

四、完整 Coding 面经

以下三道题是客户遇到的 Whatnot 原题。同样的题目不一定会遇到,但是题目的形式和难度极具参考价值。

1. Live Auction Bid Processing

题目要求:给定一个直播拍卖平台的出价记录,每条记录包含用户 ID、商品 ID、出价金额和时间戳。平台规定,同一商品只有高于当前最高有效出价的报价才能被接受,并且同一用户在指定时间窗口内不能重复提交相同金额的出价。要求按照时间顺序处理所有记录,返回每件商品最终的最高有效出价及对应的用户。如果多条记录具有相同时间戳,需要按照原始输入顺序处理。

聊聊思路:使用 HashMap 维护每件商品的当前最高出价和领先用户,再使用另一个 HashMap 记录每个 (userId, itemId, amount) 最近一次被接受的时间戳。遍历出价记录时,先检查是否违反重复出价限制,再判断金额是否高于当前最高价。只有有效且被接受的出价才更新对应状态。


2. Order Fulfillment with Limited Inventory

题目要求:给定一个电商平台的商品库存,以及一组按照提交时间排序的订单。每个订单可能包含多种商品及对应数量,只有当所有商品库存都足够时,订单才能成功处理,否则整个订单失败,不允许部分发货。另外,每个订单都具有优先级。当多个订单具有相同提交时间时,需要优先处理优先级更高的订单;如果优先级也相同,则按照订单 ID 的字典序处理。要求返回所有成功处理的订单 ID,以及处理结束后的剩余库存。


聊聊思路:首先按照提交时间升序、优先级降序、订单 ID 字典序升序对订单进行排序。

然后使用 HashMap 维护实时库存,依次检查每个订单的全部商品是否满足需求。只有全部满足时才统一扣减库存,确保订单处理的原子性。


3. Fraud Detection in Transaction Streams

题目要求:给定一个支付平台的交易记录,每条记录包含用户 ID、交易金额和时间戳,所有记录已经按照时间排序。如果某个用户在任意连续 10 分钟内的累计交易金额超过指定阈值,就需要将该用户标记为高风险用户。要求返回所有高风险用户,以及每个用户第一次触发风险规则的时间戳。同一用户可能有大量交易,因此需要避免反复扫描历史记录。


聊聊思路:使用 HashMap 为每个用户维护独立的 Sliding Window,其中包含一个 Deque 和当前窗口内的交易金额总和。每次处理新交易时,先将超出 10 分钟窗口的旧交易从队列头部移除,并同步更新累计金额,然后加入当前交易。如果窗口总金额超过阈值,就记录该用户第一次触发规则的时间。由于每条交易最多入队和出队一次,整体可以在线性时间内完成。

求职辅助服务,是关于时间和品质的较量。咨询 Alpha 小助手,获取最专业的Tech求职辅助。

客户怎么评价我们