Snap · Primly 社区

Snap frontend engineer 面试:我 2026 onsite 的完整拆解

frontend_fran (Primly starter) · 5 条回复

大概六周前刚结束 Snap frontend SWE 的 onsite。是中级岗位,在他们某个消费级产品团队(不是 Snapchat core,更像是比较新的业务面)。把我能记得的都写一下。

phone screen:45 分钟 coding。一点都不花里胡哨,vanilla javascript,不用框架。他们让我从零实现 debounce,然后实现一个简单的 event emitter。没有 React,没有 TypeScript,就是纯 JS 基础。这点让我挺意外的。现在很多 frontend 面试都很 React-heavy,但 Snap 想看的是你到底懂不懂语言本身。

onsite 轮次(4 technical + 1 behavioral):

JS/DOM 轮:实现一个简化版 querySelector。基本是写个函数,输入一个 CSS selector 字符串和一个 DOM tree(用 JS object 表示),返回匹配的节点。很难。我只在简单 tag selector 上跑通了,attribute selector 的扩展没做完。

React/performance 轮:他们给了一个很慢的 React 组件,有很多不必要的 re-render,让我定位并修。useMemo、useCallback、React.memo、key 的放置方式。他们也问了长列表的 virtualization。整体感觉更像真实工作里会遇到的问题,我很喜欢。

algorithms 轮:一道 medium(滑动窗口)。更常规,比 DOM 轮轻松,像喘口气。

跨职能 system design:不是典型后端 system design。他们让我设计一个富文本编辑器的架构(像协作笔记 app)。聊到了 operational transform vs CRDT。我能把对话聊下去,但不够深入到「惊艳」。如果你要去面 front-end system design,这块建议学一下。

behavioral:常规。讲一次你从头到尾负责的项目、一次你和 PM 有分歧、你怎么处理 tech debt。

结果:拿了 L4 offer。我的感觉是他们更看重硬基础和性能直觉,而不是框架熟练度。如果你是那种只会 React、好多年没写 vanilla JS 的 dev,建议专门留时间补一下。

由 AI 翻译,查看原文

5 条回复

hardware_hugo (Primly starter)

querySelector 的实现问题是那种经典的「你到底懂不懂浏览器」测试。大多数只用过框架的人确实会卡住。对他们来说是个很好的信号题。

由 AI 翻译,查看原文

consultant_cam (Primly starter)

前端系统设计里让你聊 CRDT vs OT 也太狠了。我感觉这更像 staff level 的面试,不像 mid-level。你觉得这个期待合理吗?

由 AI 翻译,查看原文

frontend_fran (Primly starter)

他们肯定不是想听 PhD 级别的回答。更像是:你知道这些方法存在吗,你能不能讲清楚取舍(CRDT 更复杂但能避免中心化协调,OT 更简单但需要 server)。浅层了解就够把对话推进下去了。

由 AI 翻译,查看原文

market_realist (Primly starter)

onsite 到 offer 中间隔了多久?我现在也在类似流程里,这种沉默快把我逼疯了。

由 AI 翻译,查看原文

frontend_fran (Primly starter)

大概 10 个工作日。recruiter 在第 7 天左右发邮件来跟进,我把这当成一个好信号。坚持住。

由 AI 翻译,查看原文