最近刚面完 TikTok VO,流程已经走完,目前在等后续结果。面试前在 一亩三分地 翻了不少帖子,对整体流程和侧重点心里有了个大概,所以面完也顺手把自己的经历记一下,算是补一篇 TikTok 一亩三分地 面经。
下面内容基本是按时间线写的,主要记录每一轮问了什么、问到什么程度,以及现场出现的代码题,偏事实记录,给后面准备的同学一个参考。

TikTok VO 时间线节奏安排参考
- 2025年12月上旬:内推/投递简历
- 2025年12月中旬:收到电面通知
- 2025年12月18日:一面(电面)
- 2025年12月20日:二面
- 2025年12月23日:三面
- 2025年12月24日:已约HR面,等待结果
TikTok VO 面试流程
一面
一面整体节奏比较平,时长大概 50 分钟,结构也很清楚,基本就两部分:项目 + 算法题。
前 30 分钟主要是项目介绍。我先整体讲了一下当前在做的项目,面试官围绕项目背景、我负责的部分以及一些实现细节追问了几轮,没有太刁钻的问题,更多是在确认我对项目的理解深度。
项目聊完之后进入算法环节,刷了一道比较经典的题目:
Three Sum(三数之和),难度中等,主要考察思路是否清晰以及边界处理。
二面
二面整体 50 多分钟,明显感觉侧重点和一面不太一样。
这轮基本没有继续深挖我现在做的中间件项目,推测一面已经覆盖得差不多了,更多转向我在 字节实习期间 做过的项目。问题问得很偏“工程量”:
- 项目大概做了多久
- 代码量规模
- 是否有设计文档,文档大概多少页
接着聊到了我简历里提到的 性能调优 相关工作,背景是对组内中间件做性能测试,并尝试提升网络吞吐量。
我主要讲了几条思路:
- 通过 批量网络 IO 减少系统调用次数
- 将同步模型改为 异步并发
- 删除部分 go-mysql 中的重复操作
面试官顺着这一点追问得比较深,问我:
read 网络系统调用中,最耗时的地方在哪里?
我主要从下面几个角度回答:
- 系统调用涉及用户态到内核态的切换开销
- 数据从 网卡 → 内核 → 用户态 的两次拷贝
- 如果发生进程切换,会带来 TLB 失效 的额外影响
- 顺带提到 x86 的 PCID 技术,以及在多处理器场景下的一些取舍
后面话题转向数据库和一致性相关内容:
- 是否了解 TiKV
- 我提到之前在做 binlog server 规划时,研究过 TiKV 的协议部分
- TiKV 如何实现多行语句事务(这块我没有看过源码,如实回答)
- 一些偏概念的问题:
- 什么是事务
- MySQL 的事务隔离级别
- 事务一致性、强一致性 / 弱一致性 / 最终一致性
- 是否了解 CAP 理论(这部分我有点模糊,也直接说明了)
最后是一道算法题,二分相关,难度在 mid 偏 easy。
三面
三面一上来聊得比较“熟”,面试官先问了一些 Shopee Infra 的情况,甚至能直接说出我们 database 组的一些人,看得出来对团队背景是有了解的。
接下来问题明显偏向 系统 + OS + 架构理解:
- 你自我介绍里提到网络和操作系统,理解到什么程度?
- 看过操作系统哪些模块的源码?一般是怎么读的?
- 像 iostat 这类文件系统 / 性能相关命令,内核层面是怎么实现的?
然后又回到我在字节实习时的项目,主要确认:
- 工作量
- 哪些模块是我自己主导完成的
中间还穿插了一些偏个人和动机的问题,比如:
- 为什么热爱技术却选择去新加坡
- 平时主要在做什么、关注什么方向
技术问题方面还包括:
- 是否了解 CRDT
- 让我整体讲一下组内中间件的架构和部署方式
- 在了解到是单进程部署后,让我现场设计一个 分布式系统 来统一管理(偏系统设计题)
- 是否了解 TiDB(我提到看过部分代码,也 debug 过)
- Linux 是如何实现 debug 的
这一轮没有算法题,整体更偏理解深度和系统思维。
名企Offer,不再遥不可及!
ProgramHelp 专注于全方位面试支持服务,涵盖OA代写、VO辅助助攻及专业代面服务。我们自主研发的语音与音频转接技术,助您在远程面试中自信应答、游刃有余。众多学员成功斩获国内外顶尖企业Offer,验证了我们的专业与实力。现在就加入我们,向理想岗位迈进!