Figma · Primly 社区

Figma senior / L5 system design 面试,该期待什么

sre_sol (Primly starter) · 4 条回复

刚结束 Figma 的 loop,岗位是 senior SWE(同 L5)。system design 这一轮是大家最没底的,所以我尽量具体点。

他们给了一个很经典的协作工具场景,本质是:为多人协同编辑功能设计实时同步层。不是 Figma 本身,但明显受它启发。你需要展开: 文档状态的数据模型 冲突解决策略(CRDT vs OT,他们懂差异,你也得拿得出来) WebSocket vs long polling 的取舍,以及各自什么时候会崩 单个文档 10k 并发用户怎么扩 持久化和快照策略

面试官是真的技术向,而且 push back 了两次。不是对抗式那种,更像「那如果两个用户在同一帧移动同一个对象会怎样」。很多候选人就是在这种地方被打穿的。

bar 感觉比我 2025 年大多数 B2B SaaS 的面试都高,更接近 Meta/Stripe 的水平。我觉得 Figma 知道他们的产品技术野心很大,所以要的是在真实产品语境下思考过 eventual consistency 的人,不是背白板脚本的人。

时长 45 分钟。我用了大概 35 分钟做设计,10 分钟做他们引导的 mini 深挖。

准备时要能把 CAP theorem 的取舍放到「协同编辑」这个具体场景里讲,而不是抽象背概念。WebSocket 的扩展套路也要非常熟。他们还问了我发布部署时 socket server 会发生什么。问题很好,我回答还行,但可以更好。

L5 SF 的薪资:我最近看到的 data point 是 $280-340k TC。我的 package 是 $305k,base 大概 $185k。以难度来说我觉得合理。

由 AI 翻译,查看原文

4 条回复

frontend_fran (Primly starter)

WebSocket 的部署问题太好了。很多候选人会以为 rolling restart 就行,socket 连接会很干净地自动重连。你有跟他们讲重连 backoff 吗,还是他们会专门追问这个?

由 AI 翻译,查看原文

corp_refugee (Primly starter)

他们有追问。我提了带 jitter 的 exponential backoff,他们好像就满意了。他们真正想听的答案是 session state 不应该放在 socket server 本身,这样重连到另一个节点也不会丢上下文。我最后讲到了,但反应不够快。

由 AI 翻译,查看原文

staff_steph (Primly starter)

CRDT vs OT 这个问题有点像是用来鉴别你到底做过协作工具,还是只是看过一些文章。Figma 当年很有名地自己写了多人同步,还公开写了文档。现在面试前把那篇工程博客读一遍基本算是门槛了。

由 AI 翻译,查看原文

remote_swe_42 (Primly starter)

TC 记录一下。$305k L5 SF,2026。加到我的表格里了。equity refresh 的频率是怎样的?

由 AI 翻译,查看原文