抖音电商 - 研发工程师(终面)

  1. 项目拷打与深挖(面试通过,高管复核挂)

米哈游 - 平台研发-golang开发工程师

  1. 手撕算法:二分查找
  2. Go 语言八股考查
  3. 数据库八股考查
  4. 实习经历与项目深挖

bilibili - 服务端开发工程师

  1. 请先做一下自我介绍。
  2. 你的论文是什么时候开始做的?现在是什么状态?
  3. 你的论文具体解决什么问题?
  4. 你的方法具体是怎么做的?
  5. 你的方案为什么可以说和 Agent 有关系?
  6. 如果换一个能力比较弱的大模型,你这套方法还能工作吗?
  7. 大模型生成的算法不合法怎么办?会修复吗?
  8. 你怎么保证换模型以后整个 Workflow 还能运行?
  9. 介绍一下你接触 AI / 大模型以来的发展过程。
  10. 你最近有没有关注 Agent 方向的论文或者技术?
  11. 为什么 Go 适合高并发?
  12. Go 里面有没有遇到并发安全问题?怎么处理?
  13. 你了解 sync.Map 的底层实现吗?
  14. 你了解操作系统的内存管理吗?
  15. 常见的内存分配策略有哪些?
  16. 怎么判断一个内存分配算法好不好?
  17. 如果让你实现空闲内存管理,你会怎么做?
  18. 介绍一下你实习期间主要做了什么。
  19. 实习中做过什么性能优化?
  20. 为什么当时不通过加索引解决?
  21. 你们 EXPLAIN 看过吗?查询有没有走索引?
  22. MySQL 有哪些索引?
  23. 索引是不是越多越好?加太多索引有什么问题?
  24. 设计索引时有哪些原则?
  25. MySQL 除了 B+ 树索引,还有什么索引结构?
  26. Hash 索引和 B+ 树索引有什么区别?
  27. 讲一下 MySQL B+ 树索引。
  28. 为什么不用普通二叉搜索树,而使用 B+ 树?
  29. 如果让你设计短链接系统,你会怎么做?
  30. 短链接和长链接应该是什么关系?
  31. 怎么进一步缩短 URL?
  32. 手撕算法:链表反转。
  33. 你刚才这个链表反转代码有什么问题?

百度 - 北京后端

  1. 请做一下自我介绍。
  2. 平时刷算法题和做项目分别使用什么语言?为什么项目更倾向使用 Go?
  3. Go 中 make 和 new 有什么区别?make 可以初始化哪些类型?
  4. Go 中数组和切片有什么区别?
  5. Slice(切片)的底层结构是什么?len 和 cap 分别表示什么?append 时容量不足会发生什么?Go Slice 的扩容机制是怎样的?
  6. 什么是 Goroutine(协程)?为什么 Goroutine 比操作系统线程更轻量?Go 的 GMP 调度模型是什么?Goroutine 和线程的上下文切换有什么区别?
  7. 进程、线程和协程三者有什么区别和联系?
  8. 线程之间有哪些同步或通信方式?
  9. 操作系统如何管理物理内存?为什么需要虚拟内存?虚拟地址如何通过页表转换为物理地址?页和页框分别是什么?
  10. 什么是生产者—消费者模型?多线程下如何保证生产者和消费者访问共享数据的并发安全?
  11. 什么是读写锁?它相比普通互斥锁有什么优势?
  12. HTTP 和 HTTPS 有什么区别?HTTPS 如何实现防窃听、防篡改和身份认证?数字证书在 HTTPS 中有什么作用?TLS 握手的大致流程是什么?
  13. DNS 中的 A 记录和 CNAME 记录分别是什么,有什么区别?
  14. TCP 连接建立后如果一端突然断网,另一端继续发送数据会发生什么?TCP 一直收不到 ACK 时会如何处理?TCP 的超时重传和滑动窗口机制是什么?TIME_WAIT 状态有什么作用?
  15. Redis 有哪些常见数据结构?Redis 为什么快?
  16. 多个客户端并发操作 Redis 时如何保证安全?Redis Lua 脚本为什么可以保证多个操作的原子执行?
  17. 什么是缓存穿透?会带来什么问题?如何解决?
  18. Redis 事务的 MULTI/EXEC 是如何工作的?Redis 事务是否支持回滚?它和传统数据库事务有什么区别?
  19. 什么是 Redis 分布式锁?如何使用 SET NX EX 实现?释放分布式锁时为什么通常需要 Lua 脚本?
  20. 算法题:小于 n 的最大数。

字节跳动 - 飞书/飞书云文档后端开发(一面)

  1. 请做一下自我介绍。
  2. 竞赛项目中 Redis Lua 的作用是什么,为什么要用(原子性)?原子性如何理解和保证,失败是否会回退?为什么不回退?
  3. 实习时 SQL 优化是怎么做的?讲讲索引,讲讲为什么要用 B+ 树,索引越多越好吗?为什么?
  4. 讲讲 TCP 3/4 次握手,目的是什么?
  5. 一次 URL 到返回渲染全过程。
  6. DNS 解析如何做(顶级域名服务器、逐级查询)?每次都要访问流程吗?缓存怎么实现?
  7. HTTPS 怎么实现安全?数字证书怎么实现?如果伪造(如声称是百度)怎么处理?
  8. 线上告警 CPU 满了怎么办(火焰图、top 命令)?了解 load 吗?
  9. 内存满了怎么办(检查 GC,检查临时变量溢出),怎么检测?
  10. 算法题:缺失的第一个正数。
  11. 场景题:几十 TB 数据用户 ID,内存 4G,如何找出最高 Top 10 频率 ID(哈希分堆 + Top 10 小根堆过滤;哈希函数设计、空间预留、过滤前统计闭环思考)。

字节跳动 - 飞书/飞书云文档后端开发(二面)

  1. 请做一下自我介绍。
  2. 实习项目拷打(AI 搜索/搜索引擎相关)。
  3. 拷打 MySQL 架构与数据库架构。
  4. 拷打 Redis 集群哨兵及各种 Redis 架构。
  5. Go 语言 GC 机制与 STW(Stop The World)。
  6. AI 方面:RAG 架构与应用。
  7. 场景题:黑产灰产打击、秒杀系统设计。
  8. 手撕算法:无重复字符的最长子串。

字节跳动 - 生态Agent后端开发工程师 - 火山引擎

  1. 请做一下自我介绍。
  2. 你最有代表性的项目是什么?介绍一下这个 AI 全栈挑战赛项目。
  3. 你在项目里主要负责什么?这个项目最大的难点与亮点是什么?
  4. 整体系统架构是怎样的?权限系统怎么设计?
  5. 为什么使用 WebSocket,而不是普通 HTTP?WebSocket 房间是怎么设计的?
  6. 一次用户加价请求是怎么走的?为什么竞拍裁决不直接操作 MySQL?
  7. 为什么要使用 Redis Lua?Lua 脚本里主要做哪些事情?Lua 中操作顺序为什么重要?为什么不直接在 Lua 里写 MySQL?
  8. 为什么用 Redis Stream,而不是 Kafka、RocketMQ?Redis Stream 后面的数据怎么落库?
  9. 这里的 Room 是一个真实实体吗?
  10. WebSocket 断线以后怎么恢复?怎么保证重连后还是进入原来的房间?
  11. Redis 中这些数据怎么组织?为什么参与用户适合用 Set?为什么排行榜使用 ZSet?Redis ZSet 底层是什么数据结构?
  12. WebSocket 是怎么建立连接的?WebSocket 属于哪一层协议?什么时候创建 WebSocket Room?
  13. 算法题:给定整数 N 和一组允许使用的数字,如何找到不超过 N 的最大整数?代码逻辑与边界校验。
  14. 一个经常按 create_at 和 user_id 查询的表,你怎么优化?索引有什么优点和缺点?
  15. TCP 和 UDP 有什么区别?TCP 的“有连接”是什么意思?一个 TCP 连接怎么唯一标识?TCP 和 UDP 分别适合什么场景?UDP 不可靠,怎么实现可靠传输?
  16. 你们项目里的 AI 功能是什么?为什么传统关键词搜索不够?AI 找拍品具体怎么实现?使用了什么模型和技术栈?
  17. 这个功能算 Agent 吗?你怎么理解 Agent 的设计?
  18. 你论文里的 Agent / Workflow 是怎么设计的?为什么需要 LLM 来设计启发式算法?一轮迭代具体是怎么进行的?下一轮一定会比上一轮好吗?谁负责选择最好的策略,是 Agent 吗?为什么这种 Agent 需要保存上一轮结果?
  19. ReAct 模式有什么优点和缺点?ReAct 和 Plan-and-Execute 怎么选?你怎么定义“复杂任务”?
  20. 你科研里的大模型 API 从哪里来?为什么你觉得 LLM 适合做算法设计?你说的“不同环境”具体指什么?你的论文做的是实际地图路径规划吗?这种算法能落地到真实路径规划吗?真实约束能直接加入你的求解框架吗?

字节跳动 - 后端开发工程师(字节云) - AI算力基础设施(一面)

  1. 进程和线程有什么区别?线程之间共享哪些资源、哪些资源是私有的?
  2. 协程和线程有什么区别?详细讲一下 Go 的 GMP 调度模型。
  3. 用户态和内核态有什么区别?从用户态切换到内核态有哪些方式?
  4. 详细讲一下虚拟内存机制;一个程序使用内存的完整过程是什么?缺页中断的处理流程是什么?
  5. 网络协议栈了解多少?OSI 七层模型分别是什么?
  6. UDP 为什么不可靠?TCP 为什么可靠?TCP 快速重传机制是什么?
  7. Cookie 和 Session 分别是什么、两者有什么关系?RESTful 是什么?
  8. MySQL 常用索引有哪些?MySQL/InnoDB 的索引是怎么实现的?B+ 树有什么特点?数据库/DBMS 的主要特点是什么?
  9. LangGraph 是什么样的框架?
  10. 如果设计一个安全系统,核心安全模块有哪些?
  11. 大模型如何与传统算法/领域工具结合并进行迭代?
  12. 复杂 Agent 流程能否直接封装成 Skill?
  13. 是否了解 Kubernetes/K8s?是否了解 Agent Sandbox?是否了解 DeepSeek 开源的 Harness 项目?
  14. 算法题:设计一个带统一 TTL 的 LRU Cache(容量为 n,超过容量时优先淘汰已过期 KV,如果没有过期 KV 则淘汰最近最少使用的数据,查询到过期 KV 时返回空)。

字节跳动 - 后端开发工程师(字节云) - AI算力基础设施(二面)

  1. 请做一下自我介绍。
  2. 介绍一个你认为做得比较好的项目。
  3. 高并发场景下,多个用户同时操作时,核心业务逻辑是怎么裁决的?「读取当前值 → 判断 → 写入」不是原子操作,并发情况下怎么避免竞态?
  4. 两个请求同时基于旧数据进行判断,怎么防止后写入的低值覆盖先写入的高值?
  5. Redis Lua 是怎么实现「判断 + 更新」原子操作的?Lua 脚本内部具体做了哪些校验和状态更新?
  6. Redis 操作成功以后,什么时候把数据写入 MySQL?
  7. Redis 到 MySQL 采用异步落库时,怎么保证数据最终一定能写入数据库?异步消费者挂掉、重启后,怎么保证消息不丢?
  8. 消息重复消费时,怎么保证 MySQL 写入幂等?
  9. 最终结算时,应该以 Redis 还是 MySQL 中的数据为准?Redis 和 MySQL 存在延迟时,怎么保证最终结果一致?
  10. 结算与最后一次并发操作同时发生时,怎么保证拿到的是最终状态?如何通过状态机/状态转换阻止结算之后的新请求?
  11. Redis Stream 或 Redis 出现异常、数据丢失时怎么办?
  12. 为什么采用 Redis + Lua,而不是 Redis 分布式锁 + MySQL?在这个架构中使用 Redis,核心目的是抗并发、低延迟,还是保证原子性?为什么要把实时热路径和 MySQL 写路径解耦?
  13. 幂等键是怎么设计的?在哪里生成?服务端拿到幂等键后,怎么判断这个请求之前是否已经处理过?
  14. 幂等键应该在请求处理的哪个阶段写入 Redis?幂等键写入时,怎么区分业务处理成功、失败、处理中等状态?如果业务请求被拒绝,失败结果需不需要也做幂等缓存?
  15. 幂等键应该放在 Lua 脚本内部一起写,还是 Lua 返回以后再写?如果 Lua 已执行成功,但幂等键还没写入,此时客户端重试怎么办?
  16. 如果重新设计一套幂等机制,你会怎么实现?SETNX 能不能直接解决幂等问题?它和业务处理结果之间如何保证一致性?
  17. 你平时是怎么使用 AI Coding 的?使用 AI Coding 和传统开发相比,项目开发流程有什么区别?用过哪些 Skill?Skill 是怎么工作的?
  18. 与 AI Coding 工具交互时,你一般怎么提供上下文、描述需求?你通常会让 AI 帮你完成哪些工作?哪些内容由人设计,哪些内容交给 Agent 生成?
  19. 项目的功能优先级/任务拆分是人定义的还是 Agent 自动定义的?使用过哪些 AI Coding 工具?能否现场演示一次完整的 AI Coding 开发流程?
  20. 编程题:启动三个线程,分别只打印 1、2、3,如何让它们循环输出 123123123…?可以使用什么同步机制实现线程之间的顺序协作?
  21. 代码中的 flag 状态变量有什么作用?多个线程是在「竞争资源」还是在「协作」?两者怎么理解?线程抢到锁后发现还没轮到自己,应该怎么办?wait 被唤醒返回以后,为什么还要重新判断 flag?什么是虚假唤醒?为什么条件判断通常要写在 while 中?
  22. 算法题:设计一个支持 get/set 的 LRU Cache。
  23. LRU 的核心数据结构应该怎么设计?为什么通常使用 HashMap + 双向链表?
  24. 如果要求某个 Key 在 X 秒内没有被访问就自动过期,应该怎么实现?过期数据采用惰性删除、后台定时清理,还是两者结合?写出 LRU Cache 的核心数据结构和伪代码。
  25. 如何严格保证缓存中的对象数量最多为 N?Cache 已满时,是应该先插入再淘汰,还是先淘汰再插入?更新一个已经存在的 Key 时,需要触发容量淘汰吗?
  26. 过期时间应该在什么时机设置?get 时发现 Key 已过期应该怎么处理?get 操作是否应该刷新过期时间?set 操作是否应该刷新过期时间?
  27. 并发执行 get/set 时,如何保证 HashMap、链表和容量的一致性?
  28. LRU(Least Recently Used)具体是什么意思?get 为什么也算一次「最近使用」?set 是否也应该改变节点在 LRU 链表中的位置?
  29. LRU 中的 Node 应该包含哪些字段?双向链表具体是怎么组织的?prev/next 如何维护?
  30. 删除节点时,如何保证 HashMap 与链表中的节点同步删除?节点删除不彻底可能产生什么内存/引用问题?
  31. 如果使用 C++ list,是否可以直接把它作为 LRU 的双向链表?

美团 - 财务平台-财务科技-全栈

  1. 请做一下自我介绍。
  2. 算法题:K 个一组翻转链表。
  3. 讲一下 K 个一组翻转链表的代码逻辑。
  4. 如何把题目通过自然语言或结构化 Prompt 描述给 AI,让 AI 自动生成代码?
  5. 这道 AI Coding 题的 Prompt 设计思路是什么?怎么保证 Prompt 能覆盖输入输出、边界条件和核心逻辑?
  6. 这道 AI Coding 题整体实现思路是什么?
  7. 从简历里挑一个最有意义或复杂度最高的项目讲一下(背景、目标、具体做法、过程中的问题与解决方法)。
  8. 为什么在竞拍系统里使用 Redis Lua 脚本?Lua 脚本操作了多少个 Redis Key?每个 Key 分别是干什么的?
  9. 竞拍实时状态的 Redis Key 里具体存了哪些数据?
  10. 竞拍排行榜是怎么实现的?排行榜的数据存在哪个 Key?排行榜使用什么 Redis 数据结构?排行榜具体怎么排序和维护?
  11. Lua、SETNX、WATCH 等方案有没有做过对比?为什么最终选择 Lua?
  12. 什么是 RAG?RAG 主要用来解决什么问题?你的项目里为什么使用 RAG?RAG 在项目里具体用在什么场景?
  13. 你对 DeepSeek Harness 了解多少?
  14. 你了解 LangChain 吗?LangChain 和 LangGraph 是什么关系?为什么会从 LangChain 发展到 LangGraph / Workflow?
  15. 你实际使用过哪些大模型?你还了解哪些大模型?哪些大模型的编程能力比较强?智谱、Kimi 这些模型了解吗?豆包了解或使用过吗?
  16. 有了 AI Coding 工具之后,你和 AI 分别扮演什么角色?相比没有 AI Coding 的传统开发方式,开发者的角色发生了什么变化?
  17. 测试驱动开发(TDD)是什么?规范驱动开发(Spec-Driven Development / Spec Coding)是什么?TDD 和 Spec-Driven Development / Spec Coding 怎么理解?
  18. 你用过业界的 Spec Coding 工具吗?亚马逊的相关 AI Coding / Spec Coding 工具了解或用过吗?你用过字节的 AI Coding 工具吗?

智驾新程 - 云平台后端研发工程师

  1. 实习经历与比赛项目深挖(纯项目与实战,无八股)