趣谈这几个月找 remote 的 Senior 工程师工作经历 - (3 - System Design)
跳槽
上两章
https://www.1point3acres.com/bbs/thread-1134701-1-1.html
https://www.1point3acres.com/bbs/thread-1134743-1-1.html
补充上一章
楼主还遇到好几次一个月经八股题:“What happens after you enter a URL on the browser?”
在 HR 或 HM 面试中被问到, 如果事先没复习挺难答全。当然,一般问这个问题的也不是什么特别好的公司,哈哈。
这章聊System Design
个人感受
这是过去几年面试中门槛提升最大的一部分.
现在基本上是:
现在和几年前最大的区别,或者说最大的特点,
除了大家都知道的 DDIA, Alex Xu 那些经典资源之外,推荐几个 YouTube 频道:
Hello Interview — ⭐⭐⭐⭐⭐
15 Minute System Design — ⭐⭐ 适合快速熟悉一个系统的结构。
使用 AI 辅助准备
现在比较幸福的一点AI 确实能帮不少忙。
楼主主要用 ChatGPT、Claude 和 Grok。最后的感觉是:
Prompts,
This is done before, please come up a new system design question and answer it in flow of:
1. functional requirements
2. non-functional requirements
3. core entities
4. simple API endpoints
5. high level ASCII diagram (critical workflow explain)
6. deep dive of non-functional requirements
知识点
✅ 1. 数据库与存储系统
✅ 2. 后端架构与性能
✅ 3. 系统交互与 API 通信
✅ 4. 消息队列与异步处理
✅ 5. 文件上传与分发
✅ 6. 协议与通信方式
✅ 7. Python 并发模型
✅ 8. 工具与序列化技术
BQ
BQ轮一般都还好,有几个ask back questions 可以share一下
Company red flags
Sum up
诚然在这个惨淡就业的时代,面试bar全面提高,但总是有机会的。放平心态,坚持下去。大家加油~
诚然,在这个惨淡的就业时代,面试的各个环节几乎都是high bar,从八股算法题到系统设计,从沟通表达到临场应变,每一步都比以往更具挑战。但也正因如此,我们更需要保持冷静和耐心,逐步打磨自己的能力和表达方式。
无论是在不断失败中汲取经验,还是在枯燥的准备中积累底气,慢慢做好每一天的准备,只要坚持下去,总有机会。
大家加油,与君共勉!
很多时候你会发现面试官水平未必有你高。所以不要高高在上掉书袋,讲些接地气的话。比如我有次回答如何upload video 不同码率,讲了HLS, segments,不同码率file放S3不同文件之类的。最后挂了说我没有提到chunk, 无语。
遇到做过的题,甚至你做过的项目不要太得意。还是要搞清楚functional requirement先。中间还是先易后难的讲。因为面试官心里还是有个标答的,他们只懂套路。如果你眉飞色舞的讲你做过出彩的地方,但最后没有答完八股还是挂。
最后的确的确还是东亚和东欧人最hash,从来没变过。也可能因为水平高吧。Hash就Hash吧,起码带点职业假笑啊,却又没有。所以我一般看到三个面试官都不笑,很累,就不看好这公司了,感觉要么太卷,要么有毒。所以面试官们啊,多笑笑,面试者一般已经很紧张了,多鼓励他们。
https://www.notion.so/Coding-round-2215647d2c1880939c4ef9eb4462ab03
https://www.1point3acres.com/bbs/thread-1134701-1-1.html
https://www.1point3acres.com/bbs/thread-1134743-1-1.html
补充上一章
楼主还遇到好几次一个月经八股题:“What happens after you enter a URL on the browser?”
在 HR 或 HM 面试中被问到, 如果事先没复习挺难答全。当然,一般问这个问题的也不是什么特别好的公司,哈哈。
这章聊System Design
个人感受
这是过去几年面试中门槛提升最大的一部分.
现在基本上是:
- Junior 要掌握 Senior 的知识;
- Senior 要理解 Staff 的能力;
- Staff 基本得是“百晓通”;
- 至于 Principle,楼主已经不敢想了,估计得和 AI 一样博学才行。
现在和几年前最大的区别,或者说最大的特点,
- 题目与公司业务强相关
- Crypto 公司: design exchange, design Etherscan contract address page, design event indexer.
- 电商公司: design query product based on catagery, design live product review count
- AI 公司:design ChatGPT like personalized product recommendation
- 传统题目也仍存在: 比如 design a Netflix clone, design rate limiter。
- 八股化
- 整个流程非常固定,面试官只看你有没有遵循标准流程:
- Requirement settle down
- Traffic / Throughput calculation
- High-level diagram
- Scale / Fault Tolerance / Monitoring discussion
- Wrap-up
- 只要跳过某一环节,面试官可能就不高兴了,哈哈,真是让人梦回高考。
- 楼主有几次挂了之后让 AI 来答,发现 High-Level, database schema 设计思路几乎一样。所以很可能是因为遗漏了某些步骤导致被刷。
- 面试官和公司心里有“标准答案”
- 虽然系统设计理论上是一个Open question,但如果面试者偏离太远就可能被挂掉。
- 这让现在的面试变得非常困难。
- Shadow Interviewer
- 很多公司这一轮都有shadow。
- 但他们从来不shadow,一般都是混合双打,shadow那个人最后会忍不住问很多deep dive的题. 基本上都要舌战群儒
除了大家都知道的 DDIA, Alex Xu 那些经典资源之外,推荐几个 YouTube 频道:
Hello Interview — ⭐⭐⭐⭐⭐
- 他的网站也非常不错:Hello Interview 网站
- 特别赞同他一个观点:Traffic / Throughput Calculation 实用价值不大,因为得出的基本结论永远是 "要做horizontally scale",而反正最后都会讲scale。而往往这一步会浪费大量时间。
- 楼主作为面试官也 host 了 近150场左右的面试,我自己从不强求候选人做精确计算(当然各公司要求不同,大厂尤其爱这个步骤)。
- 赞同这个标准流程:
- Functional Requirement
- Non-Functional Requirement(可跳过)
- Core Entity / API Endpoint(可以和面试官确认是否需要展开)
- High-Level Diagram
- DB Schema / API(视情况讨论)
- Non-Functional Requirement / Deep Dive(Scale、容错、监控)
- 其实这些你不提,面试官也会主动问的。
我强烈推荐这个博主!其实把这个网站上所有免费内容 + YouTube 视频全部看完,再结合平时积累,可以面 Senior 岗位了。
15 Minute System Design — ⭐⭐ 适合快速熟悉一个系统的结构。
使用 AI 辅助准备
现在比较幸福的一点AI 确实能帮不少忙。
楼主主要用 ChatGPT、Claude 和 Grok。最后的感觉是:
- ChatGPT:回答速度快,结构清晰,适合快速学习和验证思路;
- Grok:回答质量非常高,尤其在细节部分;
- Claude:反而有点尴尬,用得越来越少。
Prompts,
This is done before, please come up a new system design question and answer it in flow of:
1. functional requirements
2. non-functional requirements
3. core entities
4. simple API endpoints
5. high level ASCII diagram (critical workflow explain)
6. deep dive of non-functional requirements
知识点
✅ 1. 数据库与存储系统
数据模型与性能优化 | - Query Optimization / Denormalization / Partition / Sharding - N+1 Query - primary index vs secondary index vs global index |
并发与一致性 | - How to prevent race Condition - How to prevent transaction overwrite (locking / lock-free approaches) - ACID / row lock / distributed lock |
数据库类型对比 | - MySQL vs NoSQL vs TimeSeries DB |
分布式一致性机制 | - Consistent Hashing |
存储系统概念 | - OLAP vs OLTP - ElasticSearch - ELK |
✅ 2. 后端架构与性能
性能优化 | - Speed up on Read Path - Speed up on Write Path |
缓存策略 | - Caching Strategies - Cache Warm-Up |
热点与广播 | - Sharing: Push vs Pull - Fanout vs Hotspot(名人效应) |
高可用设计 | - Usage Too High issues (connection count, CPU, memory, disk, storage, cache) - CP vs AP |
Pagination | - Pagination(Cursor vs Offset) |
✅ 3. 系统交互与 API 通信
API 设计 | - RESTful API vs GraphQL API vs gRPC - API Gateway |
与第三方通信 | - Talk to 3rd Party API(Backoff, Retry, Timeout, Circuit Breaker, Random Select, Local Fallback) |
✅ 4. 消息队列与异步处理
消息中间件 | - Kafka vs AWS SQS vs Redis + Celery |
流/批处理 | - Stream Processing(Flink) - Batch Processing(Spark) |
事件驱动模型 | - Event Loop |
✅ 5. 文件上传与分发
文件上传 | - Client Upload vs Server Upload - Pre-signed URL / Multipart Upload on client |
✅ 6. 协议与通信方式
持久连接方案 | - WebSocket vs Long Polling vs Server-Sent Events (SSE) |
Cookie 与存储 | - Cookie vs Local Storage |
✅ 7. Python 并发模型
多任务模型 | - Process vs Thread vs Coroutine - Python, when to use multiprocessing / threading / asyncio |
应用框架接口 | - ASGI vs WSGI |
✅ 8. 工具与序列化技术
序列化工具 | - SerDes(Serialization/Deserialization) |
数据结构 | - BloomFilter |
BQ
BQ轮一般都还好,有几个ask back questions 可以share一下
- 对于EM
- What’s the pros and cons compared to the competitors?
- What's one challenge the team is currently facing that I could help address in this role?
- What are the main challenges people have faced in this role in the past, and what a new hire could do differently to avoid or overcome those issues?
- How do you use AI in daily work and in product?
- 对于Cofounder, C level
- What is your long-term vision for this company?
- What are the company’s biggest risks in the near future and how to mitigate it ?
Company red flags
- 融资困难,run way < 2 years — ⭐⭐⭐⭐⭐
- Couples of rounds of Debt financing — ⭐⭐⭐⭐
- 增长乏力,Competitors增多,以至于要专门hire Growth Engineers, 向AI转型乏力 — ⭐⭐⭐⭐
- C level 离职 — ⭐⭐⭐⭐
- 组织混乱,多次收购合并 — ⭐⭐⭐
- 多个面试官苦瓜脸,或者很疲倦 — ⭐⭐⭐
- 题型陈腐 — ⭐⭐⭐
Sum up
诚然在这个惨淡就业的时代,面试bar全面提高,但总是有机会的。放平心态,坚持下去。大家加油~
诚然,在这个惨淡的就业时代,面试的各个环节几乎都是high bar,从八股算法题到系统设计,从沟通表达到临场应变,每一步都比以往更具挑战。但也正因如此,我们更需要保持冷静和耐心,逐步打磨自己的能力和表达方式。
无论是在不断失败中汲取经验,还是在枯燥的准备中积累底气,慢慢做好每一天的准备,只要坚持下去,总有机会。
大家加油,与君共勉!
补充内容
还有要补充几点。很多时候你会发现面试官水平未必有你高。所以不要高高在上掉书袋,讲些接地气的话。比如我有次回答如何upload video 不同码率,讲了HLS, segments,不同码率file放S3不同文件之类的。最后挂了说我没有提到chunk, 无语。
遇到做过的题,甚至你做过的项目不要太得意。还是要搞清楚functional requirement先。中间还是先易后难的讲。因为面试官心里还是有个标答的,他们只懂套路。如果你眉飞色舞的讲你做过出彩的地方,但最后没有答完八股还是挂。
最后的确的确还是东亚和东欧人最hash,从来没变过。也可能因为水平高吧。Hash就Hash吧,起码带点职业假笑啊,却又没有。所以我一般看到三个面试官都不笑,很累,就不看好这公司了,感觉要么太卷,要么有毒。所以面试官们啊,多笑笑,面试者一般已经很紧张了,多鼓励他们。
补充内容
第二篇开放在https://www.notion.so/Coding-round-2215647d2c1880939c4ef9eb4462ab03
已获得 215 大米


+2
共19条回复
✨ 您正在体验新版论坛UI

