分享一下经历,因为关于 Databricks 的 frontend 面试信息几乎没有。大多数面试内容默认你面的是 backend 或 data engineering。这边的 loop 不一样。
背景:我 4 年经验,主要是 React 和 TypeScript,也做过一些 design system。投的是他们 notebooks UI team 的 mid-level FE。
Recruiter screen: 很快,20 分钟。他们提到 Databricks 正在重投入 UI 层,因为他们的产品历史上偏 backend-first,现在想补 UX 的短板。听到这个还挺鼓舞的。
Technical phone screen(45 分钟): 一道 JavaScript/TypeScript 题。不刁钻,是个偏函数式的数组变换问题。干净的解法比聪明的解法更重要。没套路,也没有“陷阱题”。我用 TS 写了类型,面试官似乎挺认可我不是直接写无类型的 JS。
Onsite(4 轮):
Coding: 两轮。一轮是标准算法题(不奇怪,按 LeetCode 算中等),另一轮是 UI 向:给定一个 HTML skeleton 和一些事件处理,让你实现一个功能。他们会看你怎么处理 edge case、无障碍基础,以及你能不能在不用框架的情况下推理组件状态。
System design: 我被要求设计一个实时协作编辑界面。类似 Google Docs-lite。他们更在意你怎么处理冲突解决和延迟,而不是画框图。我简单提了 CRDT(不需要讲很深)和 operational transforms,然后就聊得很顺。
Behavioral: 两个 behavioral 问题。“Tell me about a time you pushed back on a design decision that you thought would hurt users.(讲一次你反对某个你认为会伤害用户的设计决策的经历。)”和“How do you build relationships with design and PM when you're the only frontend engineer on a cross-functional squad?(当你在一个跨职能小队里是唯一的 frontend engineer 时,你如何和 design 以及 PM 建立关系?)”。都跟岗位非常相关。
时间线:onsite 到 verbal offer 是 9 天。他们一旦决定了推进得很快。
如果你是 frontend 来面这里:他们确实在乎前端基本功。复习一下浏览器渲染、CSS-in-JS 的取舍,以及 state management 的模式。他们在做 IDE-like 的产品,性能和交互细节真的很重要。