几周前我刚结束 Okta frontend engineer 面试 loop。趁还记得清楚写一下,因为我花了很多时间搜,几乎找不到任何具体信息。
背景:我目标是 mid-level(大概 IC3/IC4),React 为主,可 remote。是朋友内推的,他在那边干了一年左右。
Recruiter screen(30 分钟): 标准问题。为什么 Okta,你现在在做什么,薪资范围。Recruiter 人很好,推进很快,当天就发了 prep 材料,我很感谢。
Technical phone screen(60 分钟): 和 Identity Engine team 的工程师。前半段是 live coding,偏 JavaScript。类似 DOM manipulation、事件处理,不靠框架。题目大概是:实现一个 multi-step wizard 组件,state 自己管理。后半段聊你过去的项目,特别追问我做过的 accessibility 和 performance 决策。
Onsite loop(virtual,一天 4 轮): Coding round 1:更原生的 JS,从零实现 debounce/throttle,然后 follow-up 讨论 async patterns。没有 React。他们看起来想确认你理解库下面的基础。 Coding round 2:真正的 React component。做一个支持排序和过滤的表格。他们很在意你怎么思考 state,而不只是能不能跑起来。 System design:偏前端。设计一个 single sign-on widget(你能理解为什么 Okta 会问这个)。iframe/popup 流程怎么走,安全模型是什么,token storage 怎么处理。这轮让我有点措手不及,因为我前端 system design 准备得没有 LC 那么多。 Behavioral:四个 STAR 问题。和 stakeholder 的冲突、一次你不得不交付但不同意的东西、一次 mentoring、你最大的技术失误。问得挺彻底。
有两点很突出。第一,他们非常看重 security awareness,因为他们的产品就是 identity,所以「what's wrong with storing tokens in localStorage(把 token 存在 localStorage 里有什么问题。)」这种问题会很自然地出现。第二,behavioral 这一轮感觉权重不低,不是走流程。
从 referral 到 offer 总共大概 5 周。我还在考虑中。他们的 base 很有竞争力,但 RSU refresh 相比我现在其他公司的 offer 感觉偏轻。