finished rewrite of visiontree projects
[ozzloy@gmail.com/cv] / daniel_watson_cv.tex
1 %% start of file `daniel_watson_cv.tex'
2 %%% credit:
3 %% start of file `template_en.tex'.
4 %% Copyright 2006-1008 Xavier Danaux (xdanaux@gmail.com).
5 %
6 % This work may be distributed and/or modified under the
7 % conditions of the LaTeX Project Public License version 1.3c,
8 % available at http://www.latex-project.org/lppl/.
9
10
11 \documentclass[10pt,a4paper]{moderncv}
12
13 % moderncv themes
14 % optional argument are 'blue' (default), 'orange', 'red', 'green', 'grey' and
15 % 'roman' (for roman fonts, instead of sans serif fonts)
16 \moderncvtheme[blue]{casual}
17 %\moderncvtheme[green]{classic} % idem
18
19 % character encoding
20 % replace by the encoding you are using
21 \usepackage[utf8]{inputenc}
22
23 % adjust the page margins
24 \usepackage[scale=0.8]{geometry}
25 % if you want to change the width of the column with the dates
26 %\setlength{\hintscolumnwidth}{3cm}
27 % only for the classic theme, if you want to change the width of your name
28 % placeholder (to leave more space for your address details
29 %\AtBeginDocument{\setlength{\maketitlenamewidth}{6cm}}
30 % required when changes are made to page layout lengths
31 \AtBeginDocument{\recomputelengths}
32
33 % personal data
34 \firstname{Daniel}
35 \familyname{Watson}
36 % optional, remove the line if not wanted
37 \title{Daniel Watson's CV}
38 % optional,
39 \address{7665 Palmilla Drive \#5210}{San Diego, 92122}
40 % optional,
41 \mobile{805.699.5690}
42 % optional,
43 %\phone{phone (optional)}
44 % optional,
45 %\fax{fax (optional)}
46 % optional,
47 \email{ozzloy@gmail.com}
48 % optional,
49 %\extrainfo{additional information (optional)}
50 % '64pt' is the height the picture must be resized to and 'picture' is the name
51 % of the picture file; optional, remove the line if not wanted
52 %\photo[64pt]{daniel_watson}
53 % optional, remove the line if not wanted
54 %\quote{"If I have seen further it is only by standing on the shoulders of
55 %giants." -Sir Isaac Newton}
56
57 % uncomment to suppress automatic page numbering for CVs longer than one page
58 \nopagenumbers{}
59
60
61 %-------------------------------------------------------------------------------
62 % content
63 %-------------------------------------------------------------------------------
64 \begin{document}
65 \maketitle
66
67 \section{Education}
68 % arguments 3 to 6 are optional
69 \cventry{2003--2008}{BS}{UCSD}{San Diego}{}
70 {Computer Science major with a Mathematics Minor}
71 \cventry{1999--2003}{Diploma}{Bellarmine College Preparatory}{San Jose}{}{}
72
73 \section{Experience}
74 \subsection{Vocational}
75 % arguments 3 to 6 are optional
76 \cventry{2010--2011}{Computer Engineer}{VisionTree, Inc.}{San Diego}{}
77 {
78 $\cdot{}$ A customer wanted the ability to show sections of stored surveys
79 conditionally. For legacy reason, this had to be done in CFML and was further
80 constrained by existing surveys which could were not under our control. After
81 finding the relevant CFML, I constructed additions to the in-house developed
82 markup language and corresponding processing CFML. This feature has been in
83 use for the last six months without affecting other survey features.
84 \newline{}
85 $\cdot{}$ Motivated by the difficult setup process, I decided to automate the
86 setup of new Coldfusion developer stations. Adobe's coldfusion installer
87 script has user interaction, so initial scripting was done with Expect. To
88 make the installer more maintainable by the other programmers, this was
89 converted to ruby and bash. Several development systems have since used
90 this installer.
91 \newline{}
92 $\cdot{}$ Because the old svn systems were difficult to work with, I converted
93 several of them to git repos served by gitosis. I set up the gitosis server
94 and taught some coworkers how to use ssh-keys for easier interaction with it.
95 \newline{}
96 $\cdot{}$ VisionTree's store of surveys, written in their custom markup, has
97 syntax errors which sometimes cause real customer data loss. In order to
98 combat this, I talked with developers creating the surveys and with those who
99 wrote the parsing code about the types of errors and which were most common.
100 I wrote a ruby gem generate error reports in xml. From there, it was easy to
101 write a server for an internal site that presents all the data to the other
102 developers. After creating the site, I modified the internal gedit plugin to
103 present the same data within gedit on developed as they are developed, before
104 they are pushed live for customers.
105 }
106 \cventry{2006--2010}{Computer Engineer}{Avaak, Inc.}{San Diego}{}
107 {
108 The last project I created at Avaak is a system monitoring tool which spoofed
109 Avaak's clients to test their servers. This project weighed in at 3kloc of
110 Ruby. I also created a test framework for the firmware on the router product
111 which cross-compiled unit tests, loaded the binary onto the target hardware,
112 ran the tests and reported results. An earlier project had invariant image
113 feature extraction in C. Later, I used PCA, and Fischerfaces analysis under
114 the supervision of Serge Belongie, Ph.D. UCSD. My first project was a
115 firmware loader for an embedded camera hardware using mspgcc and C.
116 }
117 \cventry{2007}{Programming Languages Tutor}{UCSD}{San Diego}{}
118 {
119 In CSE 130, I tutored students Programming Languages in the fall and winter
120 quarters. We covered different styles of programming through different
121 languages: functional programming with OCaml; object oriented programming
122 with python; logic programming with prolog.
123 }
124 \subsection{For Inspiration and Recognition of Science and Technology}
125 % arguments 3 to 6 are optional
126 \cventry{2003--2011}{Programming Subteam Mentor}{Midnight Mechanics Team 812}
127 {San Diego}{}
128 {
129 I helped high school students code controller firmware and introduced them to
130 aspects of software development like version control with svn, and logic flow
131 control structures with C.
132 }
133 \cventry{2002--2003}{Programming Subteam Member}{Cheesy Poofs Team 254}
134 {San Jose}{}
135 {
136 Coded robot controller firmware and autonomous mode in pBasic, shrinking code
137 into the EEPROM.
138 }
139 %\subsection{Miscellaneous}
140 %% arguments 3 to 6 are optional
141 %\cventry{2000--2003}{Track Marshall}{SpeedRing}{San Jose}{}{
142 % SpeedRing is go-kart racing for adults\newline{}
143 % flag racers on track for passing, rule violations, warning of crashes
144 %}
145 %
146 %\cventry{1998--1999}{Range Marshall}{Sunnyvale Rod \& Gun Club}{Sunnyvale}{}{
147 % refill target shooters and keep scores
148 %}
149 %\section{Languages}
150 %%\cvlanguage{language 3}{Skill level}{Comment}
151 %%Proficient C Java Ruby
152 %%Capable C++ Python OCaml Matlab
153 %\cvlanguage{Ruby}{Proficient}{My goto language}
154 %\cvlanguage{C}{Proficient}{First language I learned}
155 %\cvlanguage{Java}{Capable}{Many class projects at UCSD required Java}
156 %\cvlanguage{Python}{Capable}{My first introduction to meta-programming, via
157 %function decorators, and list comprehensions}
158 %%\cvlanguage{C++}{Capable}{The only language I hate more than Java}
159 %\cvlanguage{OCaml}{Capable}{First introduction to functional programming}
160 \section{Computer Skills}
161 \cvcomputer{git}{client, flow, gitosis, submodules, git-svn}
162 {svn}{client, svnserve}
163 \cvcomputer{unix cli}{bash scripting, awk, grep, find, etc.}
164 {unit testing}{c with cutest, ruby with Test::Unit}
165 \cvcomputer{gnu buildchain}{gcc, make, gdb}
166 {ubuntu/debian}{aptitude, debconf}
167 \cvcomputer{Proficient with}{Ruby, C, Java, Python}
168 {Capable with}{OCaml, javascript, CFML\{,script\}, XSLT}
169 \section{Personal Projects}
170 \cvline{py\_shell\_bot}{This was originally started because it was hard to
171 follow along as a teacher would type into the python repl during class.
172 Using this, the teacher (or any presenter) can type as they normally do and
173 students can follow along in an irc channel.
174 \httplink{github.com/ozzloy/py\_shell\_bot}}
175 \cvline{oble}{This project uses a camera to detect presence of a face. The
176 program aggresively blanks the screen for power saving. In addition, oble
177 allows one to watch in-browser videos without poking the keyboard and mouse to
178 prevent the screensaver. I used C++ with OpenCV libs to create this program.
179 \httplink{gitorious.org/oble/oble}}
180 \cvline{technical blog}{\httplink{i-am-lucky.blogspot.com/} Mostly written as
181 a reference for myself, this blog is an account of my technical struggles.}
182 \cvline{imageclipper}{Having a set of labelled data helps with many
183 machine-learning projects. I started with someone else's code base and modified
184 it to make labelling easier for me. The tool helped me label data used for
185 training a car detector. \httplink{github.com/ozzloy/imageclipper}}
186 \cvline{this cv}{ The raw \LaTeX for generating this CV is available online at
187 \httplink{github.com/ozzloy/cv}}
188 \end{document}
189 %\cvlistitem{Item 2}
190 %%\cvlistitem[+]{Item 3} % optional other symbol
191 %
192 %\section{Extra 2}
193 %\cvlistdoubleitem[\Neutral]{Item 1}{Item 4}
194 %\cvlistdoubleitem[\Neutral]{Item 2}{Item 5}
195 %\cvlistdoubleitem[\Neutral]{Item 3}{}
196
197 %\section{Interests}
198 %\cvline{rock climbing}{\small great for strength, also fights carpal tunnel}
199 %\cvline{bike riding}{\small cardio, started as a means to get to school}
200 %\cvline{device interaction}{\small oble project, face detection as human
201 %interaction; compiz HeadTrack project}
202 %% end of file `daniel_watson_cv.tex'.