1
1
---
2
2
title : " System Design Approach"
3
- author : LucidProgramming
4
- date : December 20, 2018
5
3
---
6
4
7
5
# System Design
8
6
9
7
## General Approach and Strategy
10
8
11
- # Goals
9
+ ### Goals
12
10
13
11
- Present general set of tools to tackle system design question.
12
+
13
+ . . .
14
+
14
15
- Tactics to leverage current knowledge and apply to system design.
16
+
17
+ . . .
18
+
15
19
- Provide further resources and information on system design interviews.
16
20
17
21
# Attributions
@@ -24,8 +28,12 @@ date: December 20, 2018
24
28
- You are given a purposefully vague question. Part of the assessment of the
25
29
interviewer is to see how well you handle vague requirements.
26
30
31
+ . . .
32
+
27
33
- Similar to a more standard technical interview question, you should clarify
28
34
ambiguous points with your interviewer.
35
+
36
+ . . .
29
37
30
38
- This gives them a good picture as to how you will deal with these scenarios
31
39
on the job.
@@ -35,12 +43,18 @@ interviewer is to see how well you handle vague requirements.
35
43
- The purpose of asking clarifying questions is to dispel the ambiguity and
36
44
to uncover an actionable piece of the puzzle.
37
45
46
+ . . .
47
+
38
48
- A good question will give direction and determine the needs of the customer.
39
49
50
+ . . .
51
+
40
52
- Implementing something completely different than what the customer wants
41
53
certainly has bad implications for the company. Try to whittle away at
42
54
the problem statement until the scope, motivation, and direction is clear.
43
55
56
+ . . .
57
+
44
58
- It is better to ask a question that seems trivial than to assume the intent
45
59
and as a result implement the wrong solution for the problem statement.
46
60
@@ -49,9 +63,13 @@ interviewer is to see how well you handle vague requirements.
49
63
- Ensure that prior to proposing any solution or code that you understand
50
64
the problem statement and can reiterate it back to the interviewer.
51
65
66
+ . . .
67
+
52
68
- Furthermore, make sure that you have a solid grasp on the constraints,
53
69
bottlenecks, scope, goals, etc. of the problem you are attempting to solve.
54
70
71
+ . . .
72
+
55
73
- Understanding all of these components will make solving the problem itself
56
74
much less daunting.
57
75
@@ -61,11 +79,15 @@ interviewer is to see how well you handle vague requirements.
61
79
like Facebook for instance, your response will most likely be based on
62
80
your area of expertise.
63
81
82
+ . . .
83
+
64
84
- For instance, if you are a front-end developer, you may spend more time
65
85
on designing the user interface and if you are a back-end developer, you
66
86
may decide to speak more on that side. The focus also of course depends
67
87
on the role to which you are applying for.
68
88
89
+ . . .
90
+
69
91
- Since system design interviews are generally given to candidates who have
70
92
had previous experience, you can showcase your specialty and make a strong
71
93
case for what your skills specifically bring to the table.
@@ -76,6 +98,8 @@ interviewer is to see how well you handle vague requirements.
76
98
scope, etc. of the project is, it's time to drill down and be more specific
77
99
with how you will go about solving the problems at hand.
78
100
101
+ . . .
102
+
79
103
- Typically, abstracting certain pieces of functionality into some type
80
104
of high-level API is a way in which to organize the major components of
81
105
the system.
@@ -87,6 +111,8 @@ interviewer is to see how well you handle vague requirements.
87
111
SQL and NoSQL database and why you might want to use either one for the task
88
112
at hand helps guide your design process.
89
113
114
+ . . .
115
+
90
116
- The technologies of SQL and NoSQL in their entirety can be daunting, but for
91
117
the purpose of this interview, unless you're interviewing for a database
92
118
position, it will typically be fine to just have a high-level understanding
0 commit comments