Intro/interviews Flashcards

1
Q

What is system design?

A

System design is the process of designing components and its integration, APIs and data models into a large scale system that meets a specified set of functional and non-functional requirements.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What are the three main domains of system design

A
  1. Computer networking
  2. Parallel computing
  3. Distributed systems
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

How many building blocks for system design are there?

A

16

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

How should you cover a system design interview?

A
  1. Ask refining questions to understand direct and indirect requirements
  2. Scope to be able to cover in 30-40mins, including data (size/rate/consistency/privacy) and discuss components
  3. Discuss all the trade offs in the system and engage the interviewer
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Why do we not design systems capable of handling more work?

A

Cost, we want to efficiently utilize resources

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are the system designers responsibility?

A
  1. Provide fault tolerance (ability to operate when 1+ components fail) at design level as almost all modern systems use off-the-shelf components.
  2. Use mature SW principals: 1/ robustness (maintain ops during crisis), 2/ scalability 3/ availability 4/ performance 5/ extensibility 6/ resilience (return to normal)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

How to learn system design?

A
  1. Learn how popular apps work
  2. Understand and ask why a component was used vs another
  3. Build serious projects
  4. Get familiar with processes and details
    Less about mechanics and more about trade offs
How well did you know this?
1
Not at all
2
3
4
5
Perfectly