forked from sb2nov/resume
-
Notifications
You must be signed in to change notification settings - Fork 0
/
zach_mccormick_resume.tex
348 lines (308 loc) · 20.4 KB
/
zach_mccormick_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
\documentclass[letterpaper,10pt]{article}
\usepackage{latexsym}
\usepackage[empty]{fullpage}
\usepackage{titlesec}
\usepackage{marvosym}
\usepackage[usenames,dvipsnames]{color}
\usepackage{verbatim}
\usepackage{enumitem}
\usepackage{fancyhdr}
% bibtex and hyperref don't get along. This hack makes them get along
\usepackage{bibentry}
\makeatletter\let\saved@bibitem\@bibitem\makeatother
\usepackage[hidelinks]{hyperref}
\makeatletter\let\@bibitem\saved@bibitem\makeatother
\pagestyle{fancy}
\fancyhf{} % clear all header and footer fields
\fancyfoot{}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
% Adjust margins
\addtolength{\oddsidemargin}{-0.5in}
\addtolength{\evensidemargin}{-0.5in}
\addtolength{\textwidth}{1in}
\addtolength{\topmargin}{-.4in}
\addtolength{\textheight}{1.0in}
\raggedbottom
\raggedright
\setlength{\tabcolsep}{0in}
% Sections formatting
\titleformat{\section}{
\vspace{-5pt}\scshape\raggedright\large
}{}{0em}{}[\color{black}\titlerule \vspace{-5pt}]
%-------------------------
% Custom commands
\newcommand{\resumeItem}[2]{
\item\small{
\textbf{#1}{: #2 \vspace{-2pt}}
}
}
% Just in case someone needs a heading that does not need to be in a list
\newcommand{\resumeHeading}[4]{
\begin{tabular*}{0.99\textwidth}[t]{l@{\extracolsep{\fill}}r}
\textbf{#1} & #2 \\
\textit{\small#3} & \textit{\small #4} \\
\end{tabular*}\vspace{-5pt}
}
\newcommand{\resumeSubheading}[4]{
\vspace{-1pt}\item
\begin{tabular*}{0.97\textwidth}[t]{l@{\extracolsep{\fill}}r}
\textbf{#1} & #2 \\
\textit{\small#3} & \textit{\small #4} \\
\end{tabular*}\vspace{-5pt}
}
\newcommand{\resumeSubSubheading}[2]{
\begin{tabular*}{0.97\textwidth}{l@{\extracolsep{\fill}}r}
\textit{\small#1} & \textit{\small #2} \\
\end{tabular*}\vspace{-5pt}
}
\newcommand{\resumeSubItem}[2]{\resumeItem{#1}{#2}\vspace{-4pt}}
\renewcommand{\labelitemii}{$\circ$}
\newcommand{\resumeSubHeadingListStart}{\begin{itemize}[leftmargin=*]}
\newcommand{\resumeSubHeadingListEnd}{\end{itemize}}
\newcommand{\resumeItemListStart}{\begin{itemize}}
\newcommand{\resumeItemListEnd}{\end{itemize}\vspace{-5pt}}
%-------------------------------------------
%%%%%% CV STARTS HERE %%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
%----------HEADING-----------------
\begin{tabular*}{\textwidth}{l@{\extracolsep{\fill}}r}
\textbf{\Large Zach McCormick} & Email : {\href{mailto:[email protected]}{[email protected]}}\\
{\url{https://z11k.com/}} & Mobile : \href{tel:19293779125}{+1-929-377-9125} \\
\end{tabular*}
%-------------------------SUMMARY-------------------------
\section{Summary}
Zach is a software engineer and manager passionate about building and maintaining global-scale distributed systems.
He has experience with distributed systems, web applications, and mobile applications across a variety of industries,
including marketing automation, fintech, IoT, healthcare, and mobile cybersecurity, as well as across a variety of
languages and technologies, including Python, Java, JavaScript, Ruby, PostgreSQL, MySQL, MongoDB, Redis, and
others.
%-----------PROFESSIONAL EXPERIENCE-----------------
\section{Professional Experience}
\resumeSubHeadingListStart
\resumeSubheading
{Braze}{New York, NY}
{Senior Staff Engineer}{Aug 2023 - Present}
\resumeItemListStart
\resumeItem{Modularization Architecture}
{Led several initiatives around modularization of all major product areas within the Braze product to improve team independence, autonomy, and scope of ownership. Tactical projects from this effort have driven millions in COR reduction and increased new feature development speed across over a dozen teams.}
\resumeItem{Expanding Frameworks}
{Built on the Messaging Pipeline Architecture work outlined below to design and implement frameworks elsewhere in our product, decreasing cognitive complexity and drastically decreasing feature development speed, support burden, and new bugs.}
\resumeItem{Fun Stats}
{Reviewed over 3500 and contributed over 1200 Pull Requests while at Braze.}
% as of Feb 14, 2023: 3500 reviewed PRs, 1210 PRs
% 2024: 323 reviewed PRs, 118 PRs
% 2023: 669 reviewed PRs, 181 PRs
% 2022: 395 reviewed PRs, 151 PRs
% 2021: 489 reviewed PRs, 162 PRs
% 2020: 478 reviewed PRs, 143 PRs
% 2019: 893 reviewed PRs, 278 PRs
% 2018: 253 reviewed PRs, 177 PRs
\resumeItemListEnd
\resumeSubSubheading
{Staff Engineer}{Sep 2021 - Aug 2023}
\resumeItemListStart
\resumeItem{Operational Improvements}
{Consistently executed on projects to improve operational efficiency, including page/error federation to teams, ground-up re-architecture of features to improve stability, and human process enhancements around page and incident management and follow-up.}
\resumeItem{Go-to Subject Matter Expert in Messaging, Canvas, and Infrastructure}
{Regularly answered questions and hosted information sessions on topics ranging from deep internal details on how Braze's messaging pipeline works, to customer use-cases in Canvas, to nuances in Braze's MongoDB cluster topology. Many of these sessions have been turned into onboarding videos for teams in and outside of engineering.}
\resumeItem{Messaging Pipeline Architecture}
{Redefined the fundamental structure of the messaging pipeline into a component-wise architecture that promoted SOLID software engineering principles and distributed component ownership.}
\resumeItem{Incident Resolution Expert}
{Led root-cause identification and remediation of scores of incidents such as botched migrations, unexpected hardware failures, race conditions only seen at global scale, and even database driver concurrency bugs. Mentored engineers across multiple teams on how to identify the causes more quickly and how to take remedial action more confidently.}
\resumeItemListEnd
\resumeSubSubheading
{Engineering Manager/Sr. Engineering Manager}{Jun 2019 - Sep 2021}
\resumeItemListStart
\resumeItem{Engineering Management}
{Grew the Messaging and Automation Team from 5 to 10 direct reports.}
\resumeItem{Canvas Flow}
{Facilitated the team's development of Canvas Flow, a major iteration of Braze's flagship product, using fundamentally new backend and frontend paradigms iteratively over several quarters.}
\resumeItem{Organization Building}
{Promoted and led cross-team initiatives like Engineering Lunch and Learns, Postgres/Content Cards stability working group, On-call Committee, Braze's Beacon product system, and more.}
\resumeItem{Continued Individual Execution}
{Executed on a number of transformative or high-value projects requiring specialty knowledge or skills, such as implementing a job processing back-pressure system to reduce critical incidents and deprecating "Original IAMs" to save money on infrastructure.}
\resumeItem{Velocity Integration and Enablement}
{Owned the decision, purchase, and integration of CodeClimate Velocity to provide additional visibility for both EMs and ICs at Braze to drive continuous improvement.}
\resumeItem{Team Restructuring}
{Split the Messaging and Automation Team into two teams: "Messaging and Automation" and Core Messaging, with the Messaging and Automation team focused on Canvas, and the Core Messaging Team focused on message sending infrastructure. Managed both teams for several months, with each team having improved agility due to separation of concerns.}
\resumeItemListEnd
\resumeSubSubheading
{Senior Software Engineer}{Mar 2018 - Jun 2019}
\resumeItemListStart
\resumeItem{High-scale Feature Development}
{Created or enhanced high-scale features of our messaging pipeline, such as Frequency Capping, Rate/Volume Limiting, and "X Events in Y Time" Segmentation Rules.}
\resumeItem{Organization-wide Platform Infrastructure}
{Re-engineered local development paradigm using Docker Compose. Migrated most CI work to Buildkite with Knapsack, reducing build times by over 50 percent. Integrated CodeCov, Danger, and various static analysis tools to build process.}
\resumeItem{Postgres Task Force}
{Realized the need for a cross-team task force to implement Postgres at scale (Amazon Aurora). Coordinated with multiple stakeholders across product management, DevOps, and engineering teams to deliver the much-anticipated Content Cards feature more rapidly.}
\resumeItem{Datadog Integration and Enablement}
{Implemented Datadog APM and metrics integration in platform code, allowing the organization to migrate away from New Relic to a better and less expensive observability solution. Educated other engineers on how to use both basic and advanced features of the Datadog platform.}
\resumeItem{Incident Management/On-call Process}
{Provided essential engineering support for urgent issues, culminating in design and implementation of org-wide on-call rotation.}
\resumeItemListEnd
\resumeSubheading
{Trailblazing Technology LLC}{Nashville, TN}
{Principal Consultant / Owner}{Jun 2011 - Mar 2018}
\resumeItemListStart
\resumeItem{Learning Sciences Observation Application (LSOA)}
{Produced an iPad application using an agile methodology to provide teachers with an efficient interface for rapidly capturing evidence of students learning.}
\resumeItem{Several Private Contracts - Patent Litigation}
{Assisted in litigation research and code review for a variety of technology patents involving mobile operating systems, audio encoding/decoding, engine micro-controller design, sensor fusion algorithms, and human-computer interaction.}
\resumeItem{Private Contract - Data Science}
{Assembled a data-cleaning and machine learning research pipeline to ingest patient data for prison populations to predict the likelihood of suicide to automatically flag high-risk patients.}
\resumeItem{Online Timeline Follow-Back (O-TLFB)}
{Implemented a commonly used Timeline Follow-Back survey as an online service to aid in collecting of research data for Renée Martin-Willett at UC Boulder.}
\resumeItem{Private Contract - Software Development}
{Produced a Python 3 application performance monitoring (APM) solution for on-premise or SaaS deployment. The software could record data, display graphs, and execute local or remote scripts.}
\resumeItem{Private Contract - Software Development}
{Finalized and verified the correctness of a plugin for HPE LoadRunner for performance testing of various IoT protocols.}
\resumeItem{DSyM SaaS Application}
{Developed a SaaS application for scoring texts according to decoding difficulty for researchers at Vanderbilt University.}
\resumeItem{SchoolTube}
{Migrated a YouTube-like web application from Rackspace to AWS and upgraded foundational technologies in the process (upgraded Django, moved to NGINX, moved to Waitress, etc.).}
\resumeItem{Computer-assisted Personal Interviewing (CAPI) Application}
{Designed and implemented an Android tablet application for interviewing and surveying refugees who may have limited prior exposure to technology or limited literacy or numeracy skills.}
\resumeItem{PhoneTcB}
{Developed an Android application for detection of neonatal jaundice via typical 3rd-world smartphone hardware in coalition with the research group of Prof. Chetan Patil at Temple University.}
\resumeItemListEnd
\resumeSubheading
{HoneyCo Homes}{Nashville, TN}
{Product Engineer}{Aug 2016 - Apr 2017}
\resumeItemListStart
\resumeItem{Startup Engineering/First Engineer}
{Designed smart home IoT hardware/software architecture, wrote front-end and back-end code, managed deployment and infrastructure, recruited engineers and product managers, and led the technical team.}
\resumeItem{Installation and Support}
{Designed installation, equipment management, and operational processes. Installed and supported several software/hardware deployments.}
\resumeItemListEnd
\resumeSubheading
{SmileDirectClub}{Nashville, TN}
{Senior Systems Engineer}{Oct 2015 - May 2016}
\resumeItemListStart
\resumeItem{Feature Development}
{Developed numerous features for the customer-facing website, internal sales and marketing platform, and internal operations platform - in both product manager and engineering roles.}
\resumeItem{Dockerization}
{Reworked organization-wide software deployment process using Docker to reduce cost, improve reliability, and ensure repeatability/consistency within one month of joining the team.}
\resumeItem{Microservices to Monolith}
{Migrated a suboptimal microservice architecture to a monolithic Django application to enable engineering team to maximize efficiency by leveraging mature open-source libraries and components.}
\resumeItem{Data Warehousing}
{Established a data warehouse for single-source-of-truth analysis of business's CRM, ERP, and eCommerce processes.}
\resumeItemListEnd
\resumeSubheading
{CircleUp}{San Francisco, CA}
{Remote Engineer}{Feb 2015 - Oct 2015}
\resumeItemListStart
\resumeItem{Django Web Application}
{Developed software in Python using the Django framework to improve and add new features to CircleUp’s investor/company marketplace.}
\resumeItem{Mechanical Turk}
{Engineered a solution using Amazon Mechanical Turk to gather “soft” information (that could not be automatically scraped) about companies and industries for a data gathering utility to provide unique market insight for investors.}
\resumeItem{Big Data Integration}
{Integrated various data sources and external APIs with analysis tools to provide unique insight for both entrepreneurs and investors using Big Data approaches like data mining and machine learning.}
\resumeItemListEnd
\resumeSubheading
{Spotwise}{Nashville, TN}
{Co-founder}{Mar 2014 - Apr 2015}
\resumeItemListStart
\resumeItem{Founding Research}
{Developed initial software product for participation in the Multi-City Innovation Challenge in 2014 (between Boston, Nashville, Charlotte, and Palo Alto) and produced presentation and video, leading to our acceptance in Jumpstart Foundry's 2015 cohort.}
\resumeItem{Team Building}
{Recruited founding team (both engineering and business-side) in the Spring of 2014 before our entry into the Jumpstart Foundry startup accelerator.}
\resumeItem{Engineering Management}
{Led engineers to build prototypes and mockups needed by business team to pivot quickly and determine the optimal trajectory of the company post-funding.}
\resumeItemListEnd
\resumeSubheading
{Optio Labs}{Nashville, TN}
{Senior Development Engineer / Director of Research}{Aug 2012 - Jan 2015}
\resumeItemListStart
\resumeItem{Mobile OS Policy Engine}
{Developed and architected a highly flexible policy engine and communications framework for Android and Spring that eventually led to the Optio Labs’ product named Kodomo.}
\resumeItem{OptioCAC}
{Designed and implemented industry leading Android CAC/PIV smartcard middleware, simplifying use of smartcards and hardware cryptographic tokens for application developers.}
\resumeItem{OptioCore}
{Researched and developed prototypes with a team for several innovative security products based on the in-house OptioCore framework, such as a workbench for behavioral analysis of Android malware and multi-persona support for Android with an NSA-grade cryptographic barrier between personas.}
\resumeItem{Product Strategy}
{Participated as part of the executive leadership team in the creation of a strategy to steer the company from research and development of features aimed toward system integrators, to the development of products for end users.}
\resumeItem{Market Research}
{Executed market research from a technical perspective for all existing and future projects to determine competitor offerings, differentiating factors in our products, and overall market direction.}
\resumeItemListEnd
% \resumeSubheading
% {Vanderbilt University}{Nashville, TN}
% {Coursera TA, TA/Grader}{Aug 2012 - May 2013}
% \resumeItemListStart
% \resumeItem{Coursera TA}
% {Developed quizzes, moderated forums, answered student questions, etc. for Pattern-Oriented Software Architectures for Concurrent and Networked Software taught by Prof. Doug Schmidt on Coursera.}
% \resumeItem{Coursera Research}
% {Analyzed raw online course data, looking for trends and correlations for several (upcoming) academic research papers.}
% \resumeItem{TA/Grader}
% {Held weekly office hours and graded assignments/quizzes for CS 282: Principles of Operating Systems II: Systems Programming for Android taught by Prof. Doug Schmidt.}
% \resumeItemListEnd
% \resumeSubheading
% {Blackbaud}{Charleston, SC}
% {Product Management Intern}{Jun 2012 - Aug 2012}
% \resumeItemListStart
% \resumeItem{Developer Community}
% {Revitalized existing developer resources including http://www.bbdevnetwork.com via an iterative development process where I met with a diverse range of developers weekly to evaluate strengths, weaknesses, opportunities, and threats of each iteration.}
% \resumeItem{Automatic Documentation}
% {Developed automated developer documentation generators for the APIs of various Blackbaud products by collaborating with core consultants and developers to build tools tightly integrated into the product build process.}
% \resumeItemListEnd
\resumeSubHeadingListEnd
%-----------EDUCATION-----------------
\section{Education}
\resumeSubHeadingListStart
\resumeSubheading
{Vanderbilt University}{Nashville, TN}
{Bachelor of Science in Computer Science and Mathematics; GPA: 3.5}{Aug 2009 -- May 2013}
\resumeItemListStart
\resumeItem{Activities \& Societies}
{Phi Gamma Delta, Vanderbilt Mobile Applications Team, Vanderbilt Student Government}
\resumeItemListEnd
\resumeSubheading
{Budapest University of Technology and Economics}{Budapest, Hungary}
{Semester abroad studying Software Engineering}{Spring 2012}
\resumeSubHeadingListEnd
%-----------TALKS-----------------
\section{Talks and Presentations}
\resumeSubHeadingListStart
\resumeSubheading
{Datadog DASH 2024}{New York, NY}
{\href{https://www.youtube.com/watch?v=vAZJ-QPKrAs}
{Beyond Metrics and Traces: Using Continuous Profiler for Low-level Optimization}}{June 26, 2024}
\resumeSubheading
{Datadog DASH 2023}{San Francisco, CA}
{\href{https://www.youtube.com/watch?v=ATmoXeRf1tA}
{Services on Top, Monolith Underneath}}{August 3, 2023}
\resumeSubheading
{MongoDB World 2019}{New York, NY}
{\href{https://www.slideshare.net/mongodb/mongodb-world-2019-how-braze-uses-the-mongodb-aggregation-pipeline-for-lean-mean-and-efficient-scaling-braze}
{How Braze Uses the Aggregation Pipeline for Lean, Mean, and Efficient Scaling}}{June 17, 2019}
% \resumeSubheading
% {Datadog DASH 2019}{New York, NY}
% {\href{https://www.youtube.com/watch?v=K2MY4y9JuRE}
% {How Small Changes Can Make Huge Waves}}{July 17, 2019}
\resumeSubHeadingListEnd
%-----------PUBLICATIONS-----------------
\nobibliography{ref}
\bibliographystyle{IEEEtran}
\section{Publications \& Patents}
\begin{enumerate}
\item \bibentry{hyman_mccormick_2020}
\item \bibentry{martin2019transformation}
\item \bibentry{martin2019interdisciplinary}
\item \bibentry{martin2018novel}
\item \bibentry{dumont2017development}
\item \bibentry{white2014addressing}
\item \bibentry{schmidt2013creating}
\item \bibentry{schmidt2013producing}
\item \bibentry{mccormick2012data}
\end{enumerate}
%--------PROGRAMMING SKILLS------------
%\section{Programming Skills}
% \resumeSubHeadingListStart
% \item{
% \textbf{Languages}{: Scala, Python, Javascript, C++, SQL, Java}
% \hfill
% \textbf{Technologies}{: AWS, Play, React, Kafka, GCE}
% }
% \resumeSubHeadingListEnd
%-------------------------------------------
\end{document}