/
resume.tex
199 lines (143 loc) · 5.45 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
% Zach Morgan's Resume
% Adapted from Andrew McNabb's Resume
\documentclass[11pt,oneside]{article}
\usepackage{geometry}
\usepackage[T1]{fontenc}
\pagestyle{empty}
\geometry{letterpaper,tmargin=1in,bmargin=1in,lmargin=1in,rmargin=1in,headheight=0in,headsep=0in,footskip=.3in}
\setlength{\parindent}{0in}
\setlength{\parskip}{0in}
\setlength{\itemsep}{0in}
\setlength{\topsep}{0in}
\setlength{\tabcolsep}{0in}
% Name and contact information
\newcommand{\name}{Zach Morgan}
\newcommand{\addr}{4306 Halliwell Dr, Raleigh, NC 27606}
\newcommand{\phone}{(919) 265-7487}
\newcommand{\email}{zpmorgan@gmail.com}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% New commands and environments
% This defines how the name looks
\newcommand{\bigname}[1]{
\begin{center}\fontfamily{phv}\selectfont\Huge\scshape#1\end{center}
}
% A ressection is a main section (<H1>Section</H1>)
\newenvironment{ressection}[1]{
\vspace{2pt}
{\fontfamily{phv}\selectfont\Large#1}
\begin{itemize}
\vspace{3pt}
}{
\end{itemize}
}
% A resitem is a simple list element in a ressection (first level)
\newcommand{\resitem}[1]{
\vspace{-4pt}
\item \begin{flushleft} #1 \end{flushleft}
}
% A ressubitem is a simple list element in anything but a ressection (second level)
\newcommand{\ressubitem}[1]{
\vspace{-1pt}
\item \begin{flushleft} #1 \end{flushleft}
}
% A resbigitem is a complex list element for stuff like jobs and education:
% Arg 1: Name of company or university
% Arg 2: Location
% Arg 3: Title and/or date range
\newcommand{\resbigitem}[3]{
\vspace{-5pt}
\item
\textbf{#1}---#2 \\
\textit{#3}
}
% This is a list that comes with a resbigitem
\newenvironment{ressubsec}[3]{
\resbigitem{#1}{#2}{#3}
\vspace{-2pt}
\begin{itemize}
}{
\end{itemize}
}
% This is a simple sublist
\newenvironment{reslist}[1]{
\resitem{\textbf{#1}}
\vspace{-5pt}
\begin{itemize}
}{
\end{itemize}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Now for the actual document:
\begin{document}
\fontfamily{ppl} \selectfont
% Name with horizontal rule
\bigname{\name}
\vspace{-8pt} \rule{\textwidth}{1pt}
\vspace{-1pt} {\small\itshape \addr \hfill \phone; \email}
\vspace{8 pt}
%%%%%%%%%%%%%%%%%%%%%%%%
\begin{ressection}{Objective}
\resitem{I am seeking open-ended opportunities with potential to further my skillset \& experience in unanticipated directions.}
\end{ressection}
%%%%%%%%%%%%%%%%%%%%%%%%
\begin{ressection}{Education}
\resitem{B.S. in Computer Science, December 2009}{The University of North Carolina at Greensboro}
\end{ressection}
%%%%%%%%%%%%%%%%%%%%%%%%
\begin{ressection}{Skills}
\resitem{\textbf{Operating Systems:} Linux (Ubuntu, Debian), Windows 2000/XP/7}
\begin{reslist}{Computer Languages:}
\ressubitem{Proficient in Perl, Javascript, Regular expressions, SQL, C, C++, HTML, Java}
\ressubitem{Familiar with Ruby, \LaTeX, Java, Bash, Python}
\end{reslist}
\begin{reslist}{Tools and Systems:}
\ressubitem{Proficient in Mojolicious, Catalyst, DBIx::Class, Moose, SQLite, Git, Redis, GTK+}
\ressubitem{Familiar with Vim, MySQL, Lighttpd, Android, PDL}
\end{reslist}
\resitem{\textbf{Other Skills:}
Machine learning, Text processing, APIs, OpenID, OAuth, Excellent car driver}
\end{ressection}
%%%%%%%%%%%%%%%%%%%%%%%%
%\begin{ressection}{Achievements and Activities}
% \resitem{Officer of the UNCG Chapter of Association for Computing Machinery}
% \resitem{Earned Life Scout Rank, Boy Scouts of America (2003)}
% \end{ressection}
%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand{\resproj}[2]{
\vspace{-5pt}
\item
\textbf{#1}---#2 \\
}
\begin{ressection}{Projects}
\resproj{Basilisk Go Server}{Senior Project at UNCG was to build a a successful correspondence
board game server in Perl. It demonstrates proficiency with object-relational mapping (ORM),
web templating with forms and javascript, version control, regular expressions.}
%%% \ressubitem{Server is at http://www.basiliskgo.com}
%%% \ressubitem{Source with revision history is at http://github.com/zpmorgan/basilisk}
%\resproj{Collision::2D}{Collision::2D is a float-precision continuous collision detection
% system for some geometric shapes in 2D; it detects collisions between
% points, circles, and rects of any size and velocity.
% Originally implemented on Moose, it was ported to an XS backend.}
\resproj{AI::Nerl}{
AI::Nerl is a perceptron-type neural network library. AI::Nerl uses PDL, the Perl Data
Language for fast linear operations, including training using backpropagation.
AI::Nerl has been used to build a digit classifier and a general image classifier.
}
\resproj{Cinderblock Go Server}{
Another Go server, a vast improvement from Basilisk. Uses Redis for storage and websockets
to enable either correspondence or real-time play. Games::Go::Cinderblock spawned as a
variant rulemap implementation. Scrollable board rendered with HTML5 canvas.
POV-Ray was also used to render the pieces.
}
\resproj{Cataclysm: Dark Days Ahead}{
An established post-apocalyptic sandbox-style roguelike game. I solved almost all of the
instability problems and rewrote the vehicle collision system to enable more "realistic"
vehicle-vehicle collisions.
}
\resproj{Wordbath}{
A transcript editor \& an exercise in workflow optimization.
Wordbath's features include tempo change, home-row key combinations,
basic text-audio alignment, and an xml-based markup language.
}
\end{ressection}
\end{document}