-
Notifications
You must be signed in to change notification settings - Fork 0
/
resume.tex
403 lines (323 loc) · 16.8 KB
/
resume.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
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
%---------------------------------------------------------------------------------------------------
%
% Edited by: Copyright (c) 2016 Jakub Kúdela
% Based on: Copyright (c) 2015 Jan Küster
%
% The MIT License (MIT)
%
% Permission is hereby granted, free of charge, to any person obtaining a copy
% of this software and associated documentation files (the "Software"), to deal
% in the Software without restriction, including without limitation the rights
% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
% copies of the Software, and to permit persons to whom the Software is
% furnished to do so, subject to the following conditions:
%
% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
% THE SOFTWARE.
%
%---------------------------------------------------------------------------------------------------
%===================================================================================================
% DOCUMENT DEFINITION
%===================================================================================================
%we use article class because we want to fully customize the page and dont use a cv template
\documentclass[10pt,a4paper]{article}
%---------------------------------------------------------------------------------------------------
% ENCODING
%---------------------------------------------------------------------------------------------------
%we use utf8 since we want to build from any machine
\usepackage[utf8]{inputenc}
%---------------------------------------------------------------------------------------------------
% LOGIC
%---------------------------------------------------------------------------------------------------
% provides \isempty test
\usepackage{xifthen}
%---------------------------------------------------------------------------------------------------
% FONT
%---------------------------------------------------------------------------------------------------
% some tex-live fonts - choose your own
%\usepackage[defaultsans]{droidsans}
%\usepackage[default]{comfortaa}
%\usepackage{cmbright}
\usepackage[default]{raleway}
%\usepackage{fetamont}
%\usepackage[default]{gillius}
%\usepackage[light,math]{iwona}
%\usepackage[thin]{roboto}
\usepackage{hyperref}
% set font default
\renewcommand*\familydefault{\sfdefault}
\usepackage[T1]{fontenc}
% more font size definitions
\usepackage{moresize}
%---------------------------------------------------------------------------------------------------
% PAGE LAYOUT DEFINITIONS
%---------------------------------------------------------------------------------------------------
%debug page outer frames
%\usepackage{showframe}
%define page styles using geometry
\usepackage[a4paper]{geometry}
% for example, change the margins to 2 inches all round
\geometry{top=1.75cm, bottom=-.6cm, left=1.5cm, right=1.5cm}
%use customized header
\usepackage{fancyhdr}
\pagestyle{fancy}
%less space between header and content
\setlength{\headheight}{-5pt}
%customize entries left, center and right
\lhead{}
\chead{\small{
Portland, OR, USA $\cdot$
\textcolor{sectcol}{\textbf{\href
{mailto:patm.mail@gmail.com}
{patm.mail@gmail.com}}} $\cdot$
503 351 8195
}}
\rhead{}
%indentation is zero
\setlength{\parindent}{0mm}
%---------------------------------------------------------------------------------------------------
% TABLE /ARRAY DEFINITIONS
%---------------------------------------------------------------------------------------------------
%for layouting tables
\usepackage{multicol}
\usepackage{multirow}
%extended aligning of tabular cells
\usepackage{array}
\newcolumntype{x}[1]{>{\raggedleft\hspace{0pt}}p{#1}}
%---------------------------------------------------------------------------------------------------
% GRAPHICS DEFINITIONS
%---------------------------------------------------------------------------------------------------
%for header image
\usepackage{graphicx}
%for floating figures
\usepackage{wrapfig}
\usepackage{float}
%\floatstyle{boxed}
%\restylefloat{figure}
%for drawing graphics
\usepackage{tikz}
\usetikzlibrary{shapes, backgrounds,mindmap, trees}
%---------------------------------------------------------------------------------------------------
% Color DEFINITIONS
%---------------------------------------------------------------------------------------------------
\usepackage{color}
%accent color
\definecolor{sectcol}{RGB}{90,90,120}
%dark background color
\definecolor{bgcol}{RGB}{110,110,110}
%light background / accent color
\definecolor{softcol}{RGB}{225,225,225}
%===================================================================================================
% DEFINITIONS
%===================================================================================================
%---------------------------------------------------------------------------------------------------
% HEADER
%---------------------------------------------------------------------------------------------------
% remove top header line
\renewcommand{\headrulewidth}{0pt}
%remove botttom header line
\renewcommand{\footrulewidth}{0pt}
%remove pagenum
\renewcommand{\thepage}{}
%remove section num
\renewcommand{\thesection}{}
%---------------------------------------------------------------------------------------------------
% ARROW GRAPHICS in Tikz
%---------------------------------------------------------------------------------------------------
% a six pointed arrow poiting to the left
\newcommand{\tzlarrow}{(0,0) -- (0.2,0) -- (0.3,0.2) -- (0.2,0.4) -- (0,0.4) -- (0.1,0.2) -- cycle;}
% include the left arrow into a tikz picture
% param1: fill color
%
\newcommand{\larrow}[1]{
\begin{tikzpicture}[scale=0.58]
\filldraw[fill=#1!100,draw=#1!100!black] \tzlarrow
\end{tikzpicture}
}
% a six pointed arrow poiting to the right
\newcommand{\tzrarrow}{ (0,0.2) -- (0.1,0) -- (0.3,0) -- (0.2,0.2) -- (0.3,0.4) -- (0.1,0.4) -- cycle;}
% include the right arrow into a tikz picture
% param1: fill color
%
\newcommand{\rarrow}{
\begin{tikzpicture}[scale=0.7]
\filldraw[fill=sectcol!100,draw=sectcol!100!black] \tzrarrow
\end{tikzpicture}
}
%---------------------------------------------------------------------------------------------------
% custom sections
%---------------------------------------------------------------------------------------------------
% create a coloured box with arrow and title as cv section headline
% param 1: section title
%
\newcommand{\cvsection}[1]{
\vspace{10pt}
\colorbox{sectcol}{\mystrut \makebox[1\linewidth][l]{
\larrow{bgcol} \hspace{-8pt} \larrow{bgcol} \hspace{-8pt}
\larrow{bgcol}\textcolor{white}{\textbf{#1}}\hspace{4pt}
}}\\
}
%create a coloured arrow with title as cv meta section section
% param 1: meta section title
%
\newcommand{\metasection}[2]{
\begin{tabular*}{1\textwidth}{p{2.4cm} p{11cm}}
\larrow{bgcol} \normalsize{\textcolor{sectcol}{#1}}\\[10pt]
\end{tabular*}
}
%---------------------------------------------------------------------------------------------------
% CV EVENT
%---------------------------------------------------------------------------------------------------
% creates a stretched box as cv entry headline followed by two paragraphs
% param 1: event time i.e. 2014 or 2011-2014 etc.
% param 2: event name (what did you do?)
% param 3: institution (where did you work / study)
%
\newcommand{\cvevent}[3]{
\begin{tabular*}{1\textwidth}{p{2.5cm} p{10.5cm} x {4.0cm}}
\textcolor{bgcol}{#1} & \textbf{#2} & \vspace{2.5pt}\textcolor{sectcol}{#3}
\end{tabular*}
\vspace{-10pt}
\textcolor{softcol}{\hrule}
\vspace{10pt}
}
% creates a stretched box as cv entry detail
% param 1: information describing the event
%
\newcommand{\cvdetail}[1]{
\begin{tabular*}{1\textwidth}{p{2.5cm} p{14.5cm}}
& \larrow{bgcol} #1\\ [3pt]
\end{tabular*}
}
%---------------------------------------------------------------------------------------------------
% CUSTOM STRUT FOR EMPTY BOXES
%---------------------------------------------------------------------------------------------------
\newcommand{\mystrut}{\rule[-.3\baselineskip]{0pt}{\baselineskip}}
%===================================================================================================
% DOCUMENT CONTENT
%===================================================================================================
\title{resume}
\begin{document}
% use our custom fancy header definitions
\pagestyle{fancy}
%---------------------------------------------------------------------------------------------------
% TITLE HEADLINE
%---------------------------------------------------------------------------------------------------
\vspace{-20pt}
% use this for single words, e.g. CV or RESUME etc.
\hspace{-0.25\linewidth}\colorbox{bgcol}{
\makebox[1.5\linewidth][c]{
\HUGE{\textcolor{white}{\textsc{Patrick McCormick}}}
\textcolor{sectcol}{\rule[-1mm]{1mm}{0.9cm}}
\HUGE{\textcolor{white}{\textsc{Resume}}}
}
}
%---------------------------------------------------------------------------------------------------
% HEADER IMAGE
%---------------------------------------------------------------------------------------------------
\begin{figure}[H]
\begin{flushright}
\includegraphics[width=0.2\linewidth]{photo.jpg}
\end{flushright}
\end{figure}
%---------------------------------------------------------------------------------------------------
% META SECTION
%---------------------------------------------------------------------------------------------------
\vspace{-115pt}
\metasection{Status:}{Senior Software Engineer at DigitalOcean, M.Sc. in Computer Science}
\metasection{Skills:}{C, Python, Rust, Bash, SQL, docker, Github Actions}
\metasection{Interests:}{Systems Programming, Operating Systems, Data Visualization, Performance Analysis}
%---------------------------------------------------------------------------------------------------
% SUMMARAY (optional)
%---------------------------------------------------------------------------------------------------
\cvsection{Summary}
Experienced Software Engineer over a wide range of languages, tooling, and systems. Skilled at debugging and systems level programming. Enjoys creating data visualizations for metrics and telemetry and working across teams. Always learning new things. Lifelong Linux user.
%===================================================================================================
% CV SECTIONS AND EVENTS (MAIN CONTENT)
%===================================================================================================
%---------------------------------------------------------------------------------------------------
% EXPERIENCE
%---------------------------------------------------------------------------------------------------
\cvsection{Experience}
\cvevent{11/20 - present}{Developer}{DigitalOcean}
\cvdetail{Automate kernel build process for continuous integration/deployment. Roll out fleet wide changes for kernel packages and live-patching.}
\cvdetail{Backport upstream kernel features for hypervisors. Define feature and configuration for fleet hypervisor kernel. Automate testing of kernel and associated hypervisor software.}
\cvdetail{Design and run benchmarks for SLAs.}
\cvdetail{Define, manage, and automate our internal Ubuntu based Linux distribution for all cloud infrastructure.}
\cvevent{4/11 - 11/20}{Developer}{Intel}
\cvdetail{Develop functional and performance tests for OpenFabrics (OFED) userspace libraries, orchestrate with Google Test framework and integrate with internal automation system.}
\cvdetail{Backport kernel drivers and feature development for Intel Xeon Phi co-processor RDMA software stack, port build system to Yocto. Maintain release notes, user guide, release process.}
\cvdetail{Design and implement Buildbot continuous integration and testing automation for internal cluster.}
\cvdetail{Implemented automation for testing high speed RDMA NICs on clusters with different Linux distributions.}
\cvdetail{Co-design and develop an FPGA “smart” NIC (ARM v8 based SoC). Design and implement kernel-userspace API and library, kernel memory registration parts, userspace fabric utilities. Continuous integration with Jenkins.}
\cvdetail{Cloud Computing benchmarking. Run industry standard benchmarks across VM instances and performance analysis on results. Investigate and explain gen-gen and cross-architectural performance differences.}
\cvevent{4/10 - 4/11}{Contract Developer}{Intel}
\cvdetail{Package software for the Meego (Now Tizen) platform, clean and push kernel patches upstream, port kernel patches, test and debug kernel and userspace applications.}
\cvdetail{Develop features and fix bugs for the Android platform and parallelize the source control tool.}
\cvevent{3/09 - 11/09}{Contract Developer}{Private}
\cvdetail{Implementing graphing and visualization of stock market data in an Eclipse RCP.}
\cvdetail{Implement basic trading signals (moving average cross, high-low marks) on time-series data.}
\cvdetail{UI design with SWT, logging infrastructure design, Interactive Broker network layer re-design.}
\cvevent{4/08 - 12/08}{Intern}{Intel}
\cvdetail{Designed and implemented a scheduling and reporting system for the EV Factory robot that graphs time scheduled vs available and breakdown of users. This allowed management to track the total utilization of the newly installed robot.}
\cvdetail{Wrote a high-level wrapper for the robotic arm driver to automate control. This created a migration path to .NET for applications in the EV factory.}
\cvevent{4/07 - 9/07}{Intern}{IBM}
\cvdetail{Extended the IDE of Systemtap, a Linux kernel instrumentation system.}
\cvdetail{Added rich visualization capabilities, worked with the open source community to uncover and document bugs in Systemtap, and established a common documentation format.}
\cvdetail{Created a Linux application-output server that allowed remote kernel debugging and visualization of kernel internals with Systemtap.}
%---------------------------------------------------------------------------------------------------
% EDUCATION SECTION
%---------------------------------------------------------------------------------------------------
\cvsection{Education}
\cvevent{2017}{Master's Degree, Computer Science}{Portland State University}
\cvdetail{Programming Language specialization track}
\cvevent{2008}{Bachelor's Degree, Computer Science}{Portland State University}
\cvdetail{Additional major in Science}
%---------------------------------------------------------------------------------------------------
% LINKS SECTION
%---------------------------------------------------------------------------------------------------
\cvsection{Links and other stuff}
\cvdetail{ \href{https://github.com/pmmccorm}{GitHub} }
\cvdetail{ \href{https://www.linkedin.com/in/patrick-mccormick-a967ab1bb/}{LinkedIn} }
\cvdetail{ \href{https://leetcode.com/masterblaster3000/}{leetcode} }
%---------------------------------------------------------------------------------------------------
% ACRONYMS SECTION
%---------------------------------------------------------------------------------------------------
\cvsection{Technology that I have worked with, ordered by familiarity}
\cvdetail{ make, git, C, bash shell scripting, python, docker }
\cvdetail{ Linux kernel device drivers, cross compilation environments and toolchains }
\cvdetail{ systems level programming, parallel and socket programming }
\cvdetail{ SQL, Grafana, Prometheus }
\cvdetail{ autotools, yocto, debian and RPM packaging }
\cvdetail{ C++, Java, C\#, MPI, gtest, Buildbot, Jenkins, Concourse CI, Github Actions }
\cvdetail{ Chef, Terraform, Ansible, AWX }
\cvdetail{ Rust, Haskell, x86 assembly }
\cvdetail{ LaTex }
%
%---------------------------------------------------------------------------------------------------
% ARTIFICIAL FOOTER (fancy footer cannot exceed linewidth)
%---------------------------------------------------------------------------------------------------
\null
\vspace*{\fill}
\hspace{-0.25\linewidth}\colorbox{bgcol}{
\makebox[1.5\linewidth][c]{
\mystrut \small
\textcolor{white}{
\href{https://www.linkedin.com/in/patrick-mccormick-a967ab1bb/}
{https://www.linkedin.com/in/patrick-mccormick-a967ab1bb/}
} $\cdot$
\textcolor{white}{
\href{https://pmmccorm.github.io/resume}
{https://pmmccorm.github.io/resume}
}
}
}
%===================================================================================================
% DOCUMENT END
%===================================================================================================
\end{document}