上个月我在在职状态下做了 Plaid 的 technical screen(所以:午休时间发帖)。我把 coding 面试到底长什么样写清楚,因为我到处都找不到明确答案。
第一步技术关是 60 分钟的 CodeSignal OA。两道题。标准的时间压力。我看到大家描述的难度跨度很大,但以我目标的 senior SWE level 来说,是一题 medium 一题 medium 偏 hard。没有那种深水区的动态规划,但 medium-hard 那题有图的成分加了个 twist,如果你太快按套路 pattern-match 会看不到。题要读仔细。
OA 之后:45 分钟的 live coding screen,和一个工程师。一道题,带 follow-up。基础题很常规(大概 BST 或 sliding window 级别),但 follow-up 会往 edge case 和时间复杂度优化推。他们明确让我分析 space complexity,有些面试官会跳过,但别跳。
语言:最常见接受 Python 和 Java。我用 Python,没问题。
难度的真实感受:比 Stripe 的初筛难,接近一场扎实的 LeetCode medium,而且很看 test coverage 意识。不是 Codeforces 那种难,也不是能靠背模板混过去的那种简单。你得真的想,同时还要解释清楚。
一个感觉不一样的点:live coding 的面试官明显在读你的思考过程,不只是等你写出对的代码。我在动手前先讲了为什么我会排除一个 naive 的 O(n^2) 思路,感觉这点被认可了。最近面过的几家公司面试官就坐那儿不说话。Plaid 这边会参与,会在你解题过程中插入澄清问题。
从 OA 邀请到完成 live screen 总共大概 2 周。他们推进速度挺合理。没有那种轮次之间 3 周 ghosting(目前为止)。
我现在已经进入完整的 onsite 流程了。之后再来汇报。