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.