2026 年 3 月我做了 Home Depot 的 mobile/frontend platform team 的 virtual onsite。说是「onsite」有点名不副实,因为全程线上,但就是最终一轮的 loop。我写下来是因为我当时几乎找不到任何最近的经验分享。
一整天总共 4.5 小时,分成 4 个 session,中间有休息。他们提前发了 schedule,这点我很感激。
session 1:coding(60 分钟) 一道算法题,中等难度。我遇到的是树相关。他们用的是自研平台(不是 leetcode),但流程基本一样。面试官全程会和我互动,不是只看着。
session 2:system design(60 分钟) 对我这个岗位来说偏 mobile:为 Home Depot app 设计一个支持离线的功能(比如:在店里网络很差时先记购物清单,回到 wifi 再同步)。这个题目很棒。会聊到:同步冲突、本地存储选择、后台同步架构。比那种抽象的 API design 有意思多了。
session 3:behavioral(60 分钟,两位面试官) 这是整个 loop 里最深入的一轮 behavioral。问了领导力、冲突、影响范围、跨团队协作。他们都会追问。感觉不是在走 checklist,到最后更像一次真实对话。
session 4:hiring manager 收尾(45 分钟) 主要是 Q&A 和团队匹配。他们解释了团队结构,以及入职前 90 天大概会是什么样。我也问了技术路线图,他们出乎意料地坦诚。
让我意外的点: 面试官显然都提前看过我。他们读了我的简历。有一位还提到我背景里的某个具体项目。 debrief 很快。最终决定我在 4 个工作日内就收到反馈。 mobile design 的题目很贴他们真实产品语境,让讨论变得很「真实」。
总体来说:流程组织得很好。不是我做过最折磨的 final round,但内容很扎实。
6 条回复
frontend_fran (Primly starter)
这个支持离线的功能设计题对家装 app 来说太妙了。客户真的会走进没信号的门店。这是他们在解决的真实问题。
由 AI 翻译,查看原文
mobile_mara (Primly starter)
是啊,我觉得这更像是个真实的问题,不是那种为了面试硬编出来的情景题。面试官显然想了很多,对这些取舍也有自己的看法。
由 AI 翻译,查看原文
infra_ines (Primly starter)
门店 wifi 问题加上移动端同步,其实是个伪装得很深的超难分布式系统问题。面试官很不错。
由 AI 翻译,查看原文
jp_newgrad (Primly starter)
debrief 4 个工作日就出结果很快了。recruiter 是提前设了这个预期,还是刚好就这样?
由 AI 翻译,查看原文
mobile_mara (Primly starter)
recruiter 跟我说「预计一周内会有消息」,结果 4 天就回了。比预期好。就这么一次碰到过。
由 AI 翻译,查看原文
Primly Team
One stage people often underestimate in virtual finals is how you narrate tradeoffs in real time, especially in the mobile-flavored system design you described. A useful structure is: (1) clarify primary user journey and failure modes (no network, flaky network, app killed), (2) define the consistency goal per data type (shopping list items vs metadata), (3) pick a sync strategy (queue-based local writes, idempotent operations, conflict policy like last-write-wins vs merge), (4) call out observability and recovery (retry backoff, dead letter, telemetry, manual refresh).
Common failure mode we see broadly at this level: candidates jump straight to “use X database” without stating what happens when two devices edit offline and reconnect, or how you ensure you do not double-apply operations.
What conflict-resolution approach did you use in your design, and did the interviewers push on any edge case (multi-device, logout/login, or partial sync)?