-
Notifications
You must be signed in to change notification settings - Fork 41
/
Copy pathsystems.tex
340 lines (272 loc) · 9.12 KB
/
systems.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
\documentclass{article}
\usepackage[table]{xcolor}
\usepackage[paperwidth=800mm, paperheight=500mm]{geometry}
% Don't show page numbers.
\pagenumbering{gobble}
% Column settings for skills able.
\newcolumntype{C}{p{18em}}
\begin{document}
% Title of matrix.
\begin{center}
\begin{huge}
Systems Engineering
\end{huge}
\end{center}
\bigbreak
% Alternating row colors.
\rowcolors{2}{gray!80!gray!50}{gray!50!gray!20}
% Padding for each cell.
{\renewcommand{\arraystretch}{2}
% Skills table.
\begin{tabular}{|C|C|C|C|C|C|C|C|C|}
\hline
\rowcolor{blue!60!black!10}
\textbf{Level/Skill}
&
\cellcolor{blue!25}
\textbf{Product Output}
&
\textbf{Decision Making/Supervision}
&
\textbf{Communication/Writing}
&
\textbf{Data structures/Performance}
&
\textbf{Security}
&
\textbf{Networking}
&
\textbf{Systems Engineering}
&
\textbf{Tooling}
\\
\hline
% Level
1
&
% Product Output
\cellcolor{blue!25}
Creates a design document based on well-defined scoped requirements and
implements it.
&
% Decision Making/Supervision
Normally receives general instruction on work and new assignments.
&
% Communication/Writing
Reports progress on a regular basis as required by the team's operational
requirements. Actively solicits feedback. Participates on interview panels.
&
% Data structures/Performance
Demonstrates good understanding of basic data structures like hash tables,
linked lists, and trees. Can reason about algorithm complexity. Applies relevant
data structures in day to day activity.
\bigbreak
Can implement a production quality software - it might be not the most
efficient or secure, but correct.
&
% Security
Applies basic security principles to program design. For example, can set
up HTTPS and password based auth.
&
% Networking
Understands and reasons about networking concepts. Understands and can
write production quality web servers. Understands common networking issues and
troubleshooting techniques.
&
% Systems Engineering
Understands the usage of POSIX and other APIs for Linux systems.
Understands synchronization primitives and their application, including
reasoning about deadlocks and data races. Can write basic system-level code
using the different types of memory and allocation. Understands inter process
communication and can build systems leveraging it. Can implement data race and
deadlock free code using basic production guidelines - using synchronization
primitives and properly sharing state between components of the system.
&
% Tooling
Understands the usage of compilers, interpreters, build tools at the organization.
\\ [13em]
\hline
% Level
2
&
% Product Output
\cellcolor{blue!25}
Can write high quality user and product focused documentation.
&
% Decision Making/Supervision
Normally receives little instruction on day-to-day work, general instructions
on new assignments.
&
% Communication/Writing
Provides constructive review on peers' code and design. Helps new team
members during their first weeks.
&
% Data structures/Performance
&
% Security
Applies industry best practices and security guidelines, like setting up
strong TLS, can pick strong authentication and authorization mechanisms.
&
% Networking
Has more granular understanding of the networking design, for example can
reason about using GRPC vs HTTPS-JSON and their networking and scalability
trade-offs. Can do the same for UDP vs TCP and lower level protocols.
&
% Systems Engineering
Can reason about performance implications and risks of using
synchronization primitives, understands granularity of locking, can debug and
troubleshoot memory and synchronization issues.
&
% Tooling
Understands tools and compilers as an advanced user - for example, can
refactor Makefiles to make them more efficient and parallel execution friendly
or select the optimal set of compiler flags for Linux and macOS.
\\ [13em]
\hline
% Level
3
&
% Product Output
\cellcolor{blue!25}
Collaborates with the team to scope requirements, based on good
understanding of existing longer term product vision and estimates of the
system design of a feature of a product.
&
% Decision Making/Supervision
Work is done independently and is reviewed at critical points.
&
% Communication/Writing
Supports less experienced peers' technical skills, answering questions and
being a resource. Documents and improves team practices.
&
% Data structures/Performance
Uses advanced data structures and algorithms, such as consensus, gossip
protocols to implement key product features.
&
% Security
Understands security aspects of protocols on a deeper level, for example
can explain differences between TLS 1.2 and 1.3 and security implications.
Understands common attack vectors for server side or client side applications.
\bigbreak
Can build secure systems that will pass quality security audit that will
uncover few to no critical system design errors.
&
% Networking
Understands scalability and resilience aspects of practical implementation
of systems leveraging networking.
\bigbreak
Can write fast, scalable servers and troubleshoot common networking issues
such as connection lifecycle, pooling, backpressure and other aspects of the
application design.
&
% Systems Engineering
Not only can write data-race and deadlock free code, but implements safe
and concurrent and/or parallel systems using minimum amount of shared state,
granular locking - systems that are easy to read, extend and troubleshoot.
\bigbreak
Writes high quality design documents with few to no critical system design
errors.
&
% Tooling
\\ [13em]
\hline
% Level
4
&
% Product Output
\cellcolor{blue!25}
Leads the implementation of the isolated feature/improvement that
measurably and significantly impacts business outcomes from gathering
requirements to getting to the market stage.
&
% Decision Making/Supervision
Work is reviewed upon completion and is consistent with departmental
objectives.
&
% Communication/Writing
Writes technical articles/blog posts, delivers tech and lightning talks
representing the company's technical vision.
&
% Data structures/Performance
Leads implementation of products and standalone systems using advanced data
structures and algorithms, such as upgrade/install distributed framework.
&
% Security
Can apply production quality novel cryptographic to build security systems.
For example, can implement strong security support for the system with eBPF
from scratch.
&
% Networking
&
% Systems Engineering
Can implement production grade systems leveraging advanced low-level and
novel components of the Linux design like BPF, control groups.
&
% Tooling
\\ [13em]
\hline
% Level
5
&
% Product Output
\cellcolor{blue!25}
Leads the implementation of a new product line or significant part of the
product to deliver it to the market in collaboration with all other teams.
&
% Decision Making/Supervision
Focuses on providing thought leadership and works on broader organization
projects, which requires understanding of wider business. Recognized
internally as a subject matter expert. May direct the activities of others.
&
% Communication/Writing
Writes advanced technical articles/blog posts, gaining significant industry
traction or delivers technical talks on major conferences representing the
company's vision.
&
% Data structures/Performance
Implements customer facing features and systems using advanced data
structures and algorithms.
&
% Security
Writes technical articles on security aspects of the system, implements
significant security product innovations in the area delivered to customers.
&
% Networking
&
% Systems Engineering
Applies system level design to deliver new products or significant new
components of an existing product to the market.
&
% Tooling
\\ [13em]
\hline
% Level
6
&
% Product Output
\cellcolor{blue!25}
Designs new data structures and algorithms solving relevant business
problems and creating competitive advantage for the company.
&
% Decision Making/Supervision
Exercises wide latitude in determining objectives and approaches to critical
assignments.
&
% Communication/Writing
Produces peer-reviewed research papers or patent applications.
&
% Data structures/Performance
&
% Security
Researches and designs new security systems, cryptography and protocols.
&
% Networking
&
% Systems Engineering
&
% Tooling
\\ [12em]
\end{tabular}
% End renewcommand wrapping.
}
\end{document}