-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.tex
320 lines (275 loc) · 13.9 KB
/
main.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
%-------------------------
% Resume in Latex
% Author : Sourabh Bajaj
% License : MIT
%------------------------
\documentclass[letterpaper,11pt]{article}
\usepackage{latexsym}
\usepackage[empty]{fullpage}
\usepackage{titlesec}
\usepackage{marvosym}
\usepackage[usenames,dvipsnames]{color}
\usepackage{verbatim}
\usepackage{enumitem}
\usepackage[hidelinks]{hyperref}
\usepackage{fancyhdr}
\usepackage[english]{babel}
\usepackage{tabularx}
\usepackage{fontawesome5}
\input{glyphtounicode}
\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}{-.5in}
\addtolength{\textheight}{1.0in}
\urlstyle{same}
\raggedbottom
\raggedright
\setlength{\tabcolsep}{0in}
% Sections formatting
\titleformat{\section}{
\vspace{-4pt}\scshape\raggedright\large
}{}{0em}{}[\color{black}\titlerule \vspace{-5pt}]
% Ensure that generate pdf is machine readable/ATS parsable
\pdfgentounicode=1
%-------------------------
% Custom commands
\newcommand{\resumeItem}[1]{
\item\small{
{#1 \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}[2]{
\vspace{-2pt}\item
\begin{tabular*}{0.97\textwidth}[t]{l@{\extracolsep{\fill}}r}
\textbf{#1} & \textit{\small #2} \\
% \textit{\small#3} & \textit{\small #4} \\
\end{tabular*}\vspace{-5pt}
}
\newcommand{\resumeSubSubheading}[1]{
\begin{tabular*}{0.97\textwidth}{l@{\extracolsep{\fill}}r}
\textbf{\small#1} \\
\end{tabular*}\vspace{-5pt}
}
\newcommand{\resumeSubItem}[1]{\resumeItem{#1}\vspace{-4pt}}
\renewcommand\labelitemii{$\vcenter{\hbox{\tiny$\bullet$}}$}
\newcommand{\resumeSubHeadingListStart}{\begin{itemize}[leftmargin=*, label={}]}
\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 Wei-Hsiang (Matt) Wang} & {\href{mailto:mattwang44@gmail.com}{\faEnvelope \hspace{1px} \small mattwang44@gmail.com}}\\
% & \href{https://github.com/mattwang44/}{\faGithub \hspace{1px} \small github.com/mattwang44} \\
% & \href{https://www.linkedin.com/in/weihsiang-wang/}{\faLinkedin \hspace{1px} Wei-Hsaing Wang} \\
% & \faPhoneSquare \hspace{1px} \small +886-988-211-953 \\
% & \href{https://mattwang44.dev/}{ \faPenSquare \hspace{1px} \small mattwang44.dev}
% \end{tabular*}
\begin{center}
\textbf{\Large Wei-Hsiang (Matt) Wang} \\
\vspace{8px}
\href{mailto:mattwang44@gmail.com}{\faEnvelope \hspace{1px} mattwang44@gmail.com} {{$\vert$}}
\href{https://github.com/mattwang44/}{\faGithub \hspace{1px} mattwang44} {{$\vert$}}
\href{https://www.linkedin.com/in/weihsiang-wang/}{\faLinkedin \hspace{1px} Wei-Hsiang Wang} {{$\vert$}}
\href{https://mattwang44.dev/}{ \faPenSquare \hspace{1px} mattwang44.dev} {{$\vert$}}
{ \faPhoneSquare \hspace{1px} +886-988-211-953}
\end{center}
%-----------SUMMARY-----------------
\vspace{-8px}
\section{Summary}
\begin{itemize}[leftmargin=16px]
\item\small{{Python/Node.js developer and backend engineer with hands-on DevOps experience \vspace{-8pt}}}
\item\small{{Experienced in the development of cloud-based machine learning systems \vspace{-8pt}}}
\item\small{{Active contributor and project lead in the Taiwanese Python community \vspace{-8pt}}}
\resumeItemListEnd
%-----------EXPERIENCE-----------------
\vspace{4pt}
\section{Work Experience}
\resumeSubHeadingListStart
\vspace{-2pt}\item
\begin{tabular*}{0.97\textwidth}[t]{l@{\extracolsep{\fill}}r}
\textbf{Umbo Computer Vision} & \textit{Oct 2018 - Sep 2021} \\
\multicolumn{2}{l}{\footnotesize UmboCV aims at revolutionizing the surveillance industry with cloud-based AI systems for detecting human or vehicle intrusion.} \\
\end{tabular*}
\vspace{0px}
\begin{tabular*}{0.97\textwidth}[t]{l@{\extracolsep{\fill}}r}
\textit{Backend Engineer - Cloud AI Team} & \textit{Mar 2019 - Sep 2021} \\
\end{tabular*}
\vspace{0px}
\resumeSubSubheading
{\hspace{8px}Human-in-the-Loop Service for Boosting Detection Accuracy (Node.js)}
\resumeItemListStart
\resumeItem{Solved scalability issues by revamping the human-interacting mechanism with AWS API Gateway for WebSocket.}
\resumeItem{Enhanced filtration logic based on a time-weighted scoring algorithm that boosted overall automation rate by 8\% while achieving 98\% recall rate.}
\resumeItem{Reduced average request latency by 30\% through MongoDB optimization, such as rectifying indexes to accommodate usage patterns, refining queries for index-covered query plans, \& adopting read-write separation.}
\resumeItem{Built auditing process (by leveraging human resources) with affiliated Grafana dashboards to examine detection accuracy of each product pipeline. Enabled faster response from engineers to any performance deterioration.}
\resumeItemListEnd
\vspace{4px}
\resumeSubSubheading
{\hspace{8px}CV Detection Services of Event-based \& Stream-based Product (Python)}
\resumeItemListStart
\resumeItem{Developed multiple event-filtering logic based on motion value, deep-learning-model output mask analysis, and human-examining feedback. Raised system automate rate from 40\% to 90\% while sustaining 10x channel growth.}
\resumeItem{Reconstructed event-based service from AWS Lambda function to an HTTP server built on FastAPI and AWS ECS.}
\resumeItem{Improved server throughput by 20\% through serving with Gunicorn, handling I/O-bounded tasks asynchronously, and leveraging FFmpeg in GIF generation, with metrics from load testing using \href{https://locust.io/}{Locust} as proof.}
\resumeItem{Delivered cross-camera human re-identification feature in the stream-based product and close a governmental deal.}
\resumeItemListEnd
\vspace{4px}
\resumeSubSubheading
{\hspace{8px}System \& Per-Camera Performance Monitoring }
\resumeItemListStart
\resumeItem{Implemented ETL cronjobs deployed to AWS EKS with Helm for importing event metadata to Elasticsearch, which powers the customer usage analysis and system healthiness monitoring.}
\resumeItem{Assembled cross-services latency tracing dashboards with the association of alerting mechanism by utilizing New Relic Tracing and Grafana.}
\resumeItem{Developed operational dashboard for tracking cameras with poor detection accuracy or high resource consumption.}
\resumeItemListEnd
\vspace{4px}
\resumeSubSubheading
{\hspace{8px}Data Collection for Autonomous Machine Learning Platform}
\resumeItemListStart
\resumeItem{Maintained labeling platform and coordinated both in-house and out-sourcing labelers.}
\resumeItem{Integrated AWS Lambda with Slack command for FAE/Sales to import miss-detected events to the training pipeline.}
\resumeItemListEnd
\vspace{-2px}
\begin{tabular*}{0.97\textwidth}[t]{l@{\extracolsep{\fill}}r}
\textit{Software QA Engineer - QA team} & \textit{Oct 2018 - Feb 2019} \\
\end{tabular*}
\vspace{-2px}
\resumeItemListStart
\resumeItem{Produced a web-based panel for per-camera configuration that had been used intensively across the company.}
\resumeItem{Conducted automated and functional testing while composing a series of comprehensive installation manuals.}
\resumeItemListEnd
\resumeSubHeadingListEnd
%--------TECHNICAL SKILLS------------
\vspace{4px}
\section{Technical Skills}
\begin{itemize}[leftmargin=*, label={}]
\small{\vspace{-1pt}\item{
\textbf{Languages}{: Python, JavaScript (Node.js)} \\
\textbf{Backend Frameworks}{: Express.js, Django, FastAPI, Flask} \\
\textbf{Cloud Services}{: AWS (EC2, S3, ECS, SQS, Lambda, API Gateway), GCP (GCE, GCS)} \\
\textbf{Databases}{: MongoDB, Redis, SQL} \\
\textbf{DevOps}{: Terraform, Serverless, GitHub Actions, Jenkins, TravisCI} \\
\textbf{Monitoring \& Logging}{: New Relic, Grafana, Elasticsearch, Kibana} \\
\textbf{Others}{: Nginx, Vue.js (Nuxt.js), TailwindCSS}
}}
\end{itemize}
\pagebreak
%-----------EDUCATION-----------------
\section{Education}
\begin{itemize}[leftmargin=*, label={}]
\vspace{-1pt}\item
\begin{tabular*}{0.97\textwidth}[t]{l@{\extracolsep{\fill}}r}
\textbf{National Taiwan University} & \\
\textit{\small M.S., Mechanical Engineering (Research Topic: Mechanism Design \& Patent Analysis)} & \textit{\small Aug 2016 -- Aug 2018} \\
\textit{\small B.S., Mechanical Engineering} & \textit{\small Aug 2012 -- Aug 2016} \\
\end{tabular*}\vspace{-5pt}
% \resumeItemListStart
% \resumeItem{Developed scripts/apps to automate tasks in the research on mechanism design \& patent analysis. }
% \resumeItem{Related courses: Data Structures, Database, Robotic Control, Microcontroller, Machine Learning.}
% \resumeItemListEnd
\end{itemize}
%-----------COMMUNITY-----------------
\vspace{4px}
\section{Community Experience}
\resumeSubHeadingListStart
\vspace{-2pt}\item
\begin{tabular*}{0.97\textwidth}[t]{l@{\extracolsep{\fill}}r}
\textbf{PyCon Taiwan} & {} \\
\textit{Lead/Member - Web Team} & \textit{Mar 2020 - Present}
\end{tabular*} \vspace{-8px}
\resumeItemListStart
\resumeItem{Led a team of 11 volunteer developers to maintain the \href{https://tw.pycon.org/2021}{official website} and the proposal submission/review platform in Django hosted on GCP.}
\resumeItem{Replaced the old Django templates by rebuilding the frontend from scratch in Nuxt.js to benefit from lower maintenance cost and better support of SEO and i18n.}
% \resumeItem{ - Colaborated with multiple teams for better UX of attendee \& proposal submitters.}
\resumeItemListEnd
\resumeSubHeadingListEnd
\vspace{-12px}
\resumeSubHeadingListStart
\vspace{-2pt}\item
\begin{tabular*}{0.97\textwidth}[t]{l@{\extracolsep{\fill}}r}
\textbf{\href{ https://github.com/python/python-docs-zh-tw }{\textbf{Python Official Documents Translation (zh\_TW)} }} & {} \\
\textit{Coordinator \& Translator} & \textit{Jul 2021 - Present}
\end{tabular*} \vspace{-8px}
\resumeItemListStart
\resumeItem{Standardized translating workflows, systemized translated wordings, and hosted monthly meetups.}
\resumeItem{Automated translation source syncing process and established CI/CD pipelines using GitHub Actions.}
\resumeItemListEnd
\resumeSubHeadingListEnd
% \vspace{-12px}
% \resumeSubHeadingListStart
% \vspace{-2pt}\item
% \begin{tabular*}{0.97\textwidth}[t]{l@{\extracolsep{\fill}}r}
% \textbf{MLCC Workshop -- Women in Data Science} & {} \\
% \textit{Teaching Assistant} & \textit{Dec 2019}
% \end{tabular*} \vspace{-8px}
% \resumeItemListStart
% \resumeItem{}
% \resumeItemListEnd
% \resumeSubHeadingListEnd
\vspace{-12px}
\resumeSubHeadingListStart
\vspace{-2pt}\item
\begin{tabular*}{0.97\textwidth}[t]{l@{\extracolsep{\fill}}r}
\textbf{Deep Learning Study Group} & {} \\
\textit{Coordinator \& Speaker} & \textit{Feb 2018 - Sep 2018}
\end{tabular*} \vspace{-8px}
\resumeItemListStart
\resumeItem{Held weekly meetups (around 25 members) focusing on the convolutional neural networks (CNN) papers in computer vision domain \& the model implementation in PyTorch.}
\resumeItemListEnd
\resumeSubHeadingListEnd
\vspace{-12px}
\resumeSubHeadingListStart
\vspace{-2pt}\item
\begin{tabular*}{0.97\textwidth}[t]{l@{\extracolsep{\fill}}r}
\textbf{Google Taiwan AI Bootcamp} & {} \\
\textit{Teaching Assistant} & \textit{Jul 2018}
\end{tabular*} \vspace{-8px}
\resumeItemListStart
\resumeItem{Mentored participants to build deep learning models in Tensorflow on Google Colaboratory.}
\resumeItemListEnd
\resumeSubHeadingListEnd
%-----------PROJECTS-----------------
% \section{Selected Projects}
%-----------CERTIFICATE-----------------
\vspace{4px}
\section{Certificate}
\begin{itemize}[leftmargin=*, label={}]
\vspace{-1pt}\item
\begin{tabular*}{0.97\textwidth}[t]{l@{\extracolsep{\fill}}r}
\href{https://www.credential.net/6ed46944-6ab9-4f87-b19e-eea0d4a5517b}
{\textbf{Google Cloud Certified Associate Cloud Engineer}}
& \textit{\small Jun 2020}
\end{tabular*}
\begin{tabular*}{0.97\textwidth}[t]{l@{\extracolsep{\fill}}r}
\href{https://www.credential.net/f9e5b522-87ec-4e3e-bf3e-d65d4e760d1c}
{\textbf{Redis Certified Developer}}
& \textit{\small Nov 2021}
\end{tabular*}
\begin{tabular*}{0.97\textwidth}[t]{l@{\extracolsep{\fill}}r}
\href{https://www.credly.com/badges/adcca0d4-b53f-4829-92b5-8262c53049f5}
{\textbf{HashiCorp Certified: Terraform Associate}}
& \textit{\small Nov 2021}
\end{tabular*}
\begin{tabular*}{0.97\textwidth}[t]{l@{\extracolsep{\fill}}r}
\href{https://www.credly.com/badges/10809727-c851-4095-ab4b-04719c519441}
{\textbf{Astronomer Certification for Apache Airflow Fundamentals}}
& \textit{\small Nov 2021}
\end{tabular*}
\end{itemize}
%-------------------------------------------
\end{document}