
Intuit 的 SWE 流程里,写对主逻辑只是起点。Build Challenge 要交出能跑的代码,后面的现场会沿着接口、异常处理和项目决策一路追问。准备时别把 API 题当成纯 CRUD;测试、日志和边界处理都会被拿出来讨论。
这篇按四段技术环节拆开:先把小系统做出来,再把为什么这么做说清楚。
第一面:Build Challenge 的并发数据处理
題目:实现一个事件统计模块:事件按用户和时间写入,查询要返回指定窗口内的聚合结果;同一用户的重复事件不能重复计数。类似的 Build Challenge 会把并发和数据分析放在同一道任务里。
解答思路:先把事件键定义成 userId + eventId,去重表写入成功后才更新聚合桶。桶按时间片分片,查询只扫描覆盖窗口的分片。并发写入时,以用户分片锁缩小竞争范围;聚合值用原子累加,过期分片异步回收。测试至少覆盖重复投递、跨窗口边界和并发写同一个键。
第二面:在现有仓库新增 POST API
題目:在已有服务中新增一个创建资源的 POST 接口,要求校验请求体、写入数据库、返回规范错误码,并保留可检索日志。
解答思路:先读现有路由、DTO 和异常处理链,避免绕开项目约定。参数校验放在入口,业务层只接收已合法化的数据;写入前检查幂等键,写入失败时把数据库异常映射为稳定的 HTTP 响应。日志记录请求标识、资源标识和失败原因,不把敏感字段写进去。写完后用集成测试覆盖重复提交、空字段、冲突和数据库超时。LeetCode 上一份 Intuit SDE 2 记录里也出现了在既有代码库中补 POST 接口并演示的环节,可参考其代码库任务描述把准备重点放到交付细节。
第三面:GET 接口的分页与一致性
題目:为列表接口补分页,接口既要支持稳定翻页,也要在数据持续写入时避免重复或漏读。
解答思路:不用可变的 offset 做主路径,返回由排序字段和唯一 ID 组成的 cursor。查询条件固定排序方向,下一页只取严格大于 cursor 的记录。响应里返回 nextCursor,并对非法 cursor 返回 400。数据量大时让索引覆盖筛选字段和排序字段;测试把新数据插入两页之间,确认第二页不会把第一页内容再带回来。
第四面:项目深挖与工程取舍
題目:选一个你主导过的服务改动,解释为什么选当前数据模型、失败后怎么恢复,以及上线后用什么指标判断结果。
解答思路:先用两句话交代用户问题和约束,再讲一项你亲手推动的决定。结构可以是:原方案的瓶颈、备选方案、取舍理由、上线后的观察指标。遇到追问时别只报结果,说明哪次告警或回滚让你改了实现。Intuit 的流程还会结合 Build Challenge、技术编码和项目讨论;流程概覽适合用来排演衔接节奏。
准备时先做这几件事
- 找一个熟悉的后端仓库,限时实现一条带校验、持久化和测试的接口。
- 练习用五分钟讲清一个项目决策,再用十分钟接住异常、指标和扩容追问。
- 对并发题先写数据归属、幂等键和失败路径,代码才不会在补边界时失控。
FAQ
Build Challenge 交付到什么程度才够?
先保证主流程能运行,再补测试和错误处理。面试里最容易被追到的不是功能清单,而是重复请求、异常响应和恢复路径。
项目深挖该准备几段经历?
准备两段即可:一段偏技术决策,一段偏协作和推进。每段都要能落到你的具体动作和一个可验证结果。
参考来源
- Intuit SDE 2 的 OA、代码库任务与分页经历
- Intuit SE-1 的 SQL、Bash、JavaScript OA 与 Build Challenge 记录
- Intuit Software Engineer 流程与题目方向
关于 CSOFFERPREP
进 VO 之前,可以找 CSOFFERPREP 做实时面试助攻和备考辅导。CSOFFERPREP 深耕北美 IT 行业多年,已帮助万余名学生进入全球 500 强企业。导师来自一线大厂资深工程师和面试官,对 Intuit 这类注重工程文化的公司的面试套路很熟悉。无论是 OA辅助、OA 辅导、VO 辅助、VO 模拟面试、VO 辅助还是系统设计辅助,都可以获得更有针对性的准备方案:CSOFFERPREP · 服务详情



