Path to System Design
SNAKE TEMPLATE FOR REQUIREMENT #
Scenario: use-case (if system is big) / interface (if sys is small).
Necessary: constrain/hypothesis.
Application: service/algorithm, e.g. MVC etc.
Kilobit: data.
Evolve: agile spring plan, inc. performance.
Example of recommender sys for personal radio station.
S: recommend a song for a user; like; dislike; skip.
N: 5 Millon users online » about 50k qps (quests per sec) » need 1~2 servers only (cuz we can optimize, e.g. by giving 100 songs per time).
A: alpha, online & offline.
K: size & how to choose, which subset to use: not too big (algorithm performance), not too small (data quality).
E: analyze & go back.
PATH TO SV (Silicon Valley) ENGINEER #
(1~2 weeks for each step, full time)
Step 1: CS Fundamentals (Knowledge Input)
- Computer architecture
- Operating system
- Computer network
- Software engineering
Step 2: System Design (Knowledge Output)
- Design by yourself
- (and tell friends, answer their questions and get feedback)
Step 3: Open Source Project
- Kafka
- Spark
- MongoDb
- Redis
Step 4: Hands on Own Project
- Code by yourself
Things and questions to think: short-url/sv-engineer.
ref: bit tiger.