| Languages | English | 中文版 | 
|---|---|---|
| Communities | Telegram: 1.8k members | 多个微信群 (ID: onetptp) 电报群 | 
| Websites | TianPan.co (English) | 硅谷io (中文) | 
| Mobile Apps |   iOS / Android / APK  | 
![]() iOS / Android / APK  | 
- Designing instagram or newsfeed APIs
 - Designing Yelp / Finding nearest K POIs
 - Designing trending topics / top K exceptions in the system
 - Designing distributed web crawler
 - Designing i18n service
 - Designing ads bidding system
 - Designing a dropbox or a file-sharing system
 - Designing a calendar system
 - Designing an instant chat system / Facebook Messenger / WeChat
 - Designing a ticketing system or Ticketmaster
 - Designing a voice assistant or Siri
 
- Introduction to Architecture
 - How to scale a web service?
 - ACID vs BASE
 - Data Partition and Routing
 - Replica, Consistency, and CAP theorem
 - Load Balancer Types
 - Concurrency Model
 - Improving availability with failover
 - Bloom Filter
 - Skiplist
 - B tree vs. B+ tree
 - Intro to Relational Database
 - 4 Kinds of No-SQL
 - Key value cache
 - Stream and Batch Processing Frameworks
 - Cloud Design Patterns
 - Public API Choices
 - Lambda Architecture
 - iOS Architecture Patterns Revisited
 - What can we communicate in soft skills interview?
 - Experience Deep Dive
 - 3 Programming Paradigms
 - SOLID Design Principles
 
- 设计一个短网址系统
 - 设计优步打车服务
 - Facebook如何存储大规模社交图谱(graph)?TAO
 - 什么是 Apache Kafka?
 - 设计Facebook图片存储系统
 - 如何使用HTTP协议向移动设备传输视频? HTTP Live Streaming (HLS)
 - Lyft 的营销自动化平台 Symphony
 - 设计负载均衡器
 - 设计以人为本的国际化(i18n) 工程方案
 - 如何设计区块链服务端的架构?
 
- 构架入门
 - 软技能面试可以谈点什么?
 - 键值缓存有哪些用法?
 - 如何构建大规模的网站服务?
 - 如何使用幂等性设计出高可靠的API?
 - 过往工作经验面试
 - 跳跃表
 - 布隆过滤器
 - Lambda 架构
 - 4种非关系型数据库(No-SQL)
 - 通过失效转移提高系统可用性
 - 再窥iOS架构模式
 - 流处理和批处理框架
 - 谷歌的软件工程:软件开发
 - 谷歌的软件工程:项目管理
 
GPL v3
Contributions welcome!
If you found this resource helpful, give it a 🌟 otherwise contribute to it and give it a ⭐️.

















