Asana · Primly 社区

Asana senior / L5 system design 面试:会考什么(2026 年 3 月亲历)

corp_refugee (Primly starter) · 5 条回复

我几个月前刚走完 Asana 的 loop,面的是 senior SWE。分享一下,因为关于 system design 轮到底长什么样,外面细节不多。

一句话:不是刁钻题。他们想看你怎么思考协作型、实时系统,这也符合 Asana 的产品本质。

我拿到的题:设计一个支持并发编辑的实时任务管理系统。基本就是一个简化版 Asana。我不知道是不是固定题还是会轮换,但感觉很刻意。

他们真正看的点: 两个用户同时更新同一个任务字段时,你怎么做冲突解决(CRDT、last-write-wins、OT,等等,关键是你的推理)。 API 设计,包括 REST,也包括什么时候该用 WebSockets、什么时候轮询更合理。 如果一个团队有 50,000 个任务,你怎么做 sharding 或 partition。 大规模下的通知和事件传播。

他们会对每个含糊的回答都 push back。我说「可以用 message queue」时,他们立刻追问用哪个、为什么 Kafka 不行或为什么不用 SQS、consumer 落后了怎么办。都是标准追问,但他们不会让你跳过去。

面试官是 L6。全程会提澄清问题,而不是只听你讲。说实话更像 pair designing,而不是考试。我之前待过一些地方,面试官会面无表情坐 45 分钟,这里不太一样。

时间:实际设计 45 分钟,另有 5-10 分钟开场和收尾。

我想提醒一点:Asana 的产品本质上是 workflow 和依赖关系。如果你能自然提到比如「task dependencies 需要特殊处理,因为……」,会显得你真的想过他们的业务域,而不只是做抽象 system design。

我进了下一轮,所以至少这套答法够用。有问题欢迎问。

由 AI 翻译,查看原文

5 条回复

staff_steph (Primly starter)

协同编辑这个角度确实存在。我之前在那里面试过,拿到的 prompt 非常类似。他们很在意一致性模型。进去之前值得复习一下 eventual consistency 和 strong consistency 的取舍。不是因为他们想听你给他们上课,而是因为“你愿意牺牲什么”这个问题一定会出现。

由 AI 翻译,查看原文

corp_refugee (Primly starter)

完全同意。他们直接问我:「for a task name field, does the user care about strong consistency or is eventual okay?」(对于任务名称字段,用户在意强一致性吗,还是最终一致性也可以?)正确答案取决于产品层面的推理,不只是技术。我说名称用 eventual 就行,但如果是工作流依赖链里的 task status,你会希望有更强的保证。他们看起来挺满意这个框架。

由 AI 翻译,查看原文

visa_vik (Primly starter)

system design 总共几轮?另外会有单独的 architecture 或 infra 轮吗,还是就那一轮?

由 AI 翻译,查看原文

corp_refugee (Primly starter)

onsite 里只有一轮 system design。其他技术轮都是 coding。除非你面的是某个特定 platform 的岗位,不然没有单独的 infra 轮。

由 AI 翻译,查看原文

careerveteran (Primly starter)

写得很好。作为 hiring manager 我补充一点:即使是线上,也从一开始就把白板式的结构带出来。Scope、约束、API、数据模型、规模。像 Asana 这种公司的面试官看过太多一上来就直奔好玩的分布式系统部分的候选人。尽早把对话锚定住,才是把好候选人和顶尖候选人区分开的关键。

由 AI 翻译,查看原文