rewrote avaak section with plan execution results
[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 $\cdot{}$ Avaak Inc. cameras that communicate wirelessly to a base station.
109 The base station also communicated back to central servers. Under heavy load,
110 communication would break down. They needed a way to generate such loads and
111 log the communications and asked me to simulate the cameras and the base
112 station. I set out simulating the camera first since it only communicated
113 with a base station and I could have a real one at my desk during
114 development. Also once it was developed it would make developing the base
115 station easier. All of this went according to plan, but communication between
116 the base station and the central server was much more difficult than
117 anticipated. The central server had bad logging facilities and it was not
118 feasible to modify it. To work around this, I developed a server that could
119 run locally to facilitate the base station's server communication development.
120 The simulators worked well and logged in a very readable format all
121 camera, base station and server communications. Hundreds of simulated
122 cameras revealed that the central server's memory was maxed out with a high
123 number of connections.
124 \newline{}
125 $\cdot{}$ After using the simulator to diagnose problems like the central
126 server's memory maxing out, Avaak wanted to use the tool to monitor the
127 health of the system. This was a relatively easy addition that just needed
128 simulate a round trip of a picture taken on a camera and then being visible
129 on the website. This system emails logs of minor problems and sends a text
130 in addition to a more detailed email for major problem. On catastrophic
131 failures, I included myself on the emails. Several months after I left I
132 received emails from this tool, so I knew it was still doing its job. At the
133 end of my work on this project, it weighed in at 3kloc of ruby.
134 \newline{}
135 $\cdot{}$ Mike Sailor's chem lab at UCSD developed reusable chemical sensors.
136 They enlisted the help of Avaak to figure characterize the sensor's changes
137 when an agent was introduced to the environment. Working with Serge Belongie
138 and Clark Guest, computer vision experts at UCSD, I developed C and matlab
139 classifiers. These classifiers generated data which we analyzed using
140 invariants, and later PCA, and Fischerfaces. The conclusion of this analyses
141 was used to justify further research by Mike Sailor and his lab into their
142 reusable chemical sensors.
143 }
144 \cventry{2007}{Programming Languages Tutor}{UCSD}{San Diego}{}
145 {
146 In CSE 130, I tutored students Programming Languages in the fall and winter
147 quarters. We covered different styles of programming through different
148 languages: functional programming with OCaml; object oriented programming
149 with python; logic programming with prolog.
150 }
151 \subsection{For Inspiration and Recognition of Science and Technology}
152 % arguments 3 to 6 are optional
153 \cventry{2003--2011}{Programming Subteam Mentor}{Midnight Mechanics Team 812}
154 {San Diego}{}
155 {
156 I helped high school students code controller firmware and introduced them to
157 aspects of software development like version control with svn, and logic flow
158 control structures with C.
159 }
160 \cventry{2002--2003}{Programming Subteam Member}{Cheesy Poofs Team 254}
161 {San Jose}{}
162 {
163 Coded robot controller firmware and autonomous mode in pBasic, shrinking code
164 into the EEPROM.
165 }
166 %\subsection{Miscellaneous}
167 %% arguments 3 to 6 are optional
168 %\cventry{2000--2003}{Track Marshall}{SpeedRing}{San Jose}{}{
169 % SpeedRing is go-kart racing for adults\newline{}
170 % flag racers on track for passing, rule violations, warning of crashes
171 %}
172 %
173 %\cventry{1998--1999}{Range Marshall}{Sunnyvale Rod \& Gun Club}{Sunnyvale}{}{
174 % refill target shooters and keep scores
175 %}
176 %\section{Languages}
177 %%\cvlanguage{language 3}{Skill level}{Comment}
178 %%Proficient C Java Ruby
179 %%Capable C++ Python OCaml Matlab
180 %\cvlanguage{Ruby}{Proficient}{My goto language}
181 %\cvlanguage{C}{Proficient}{First language I learned}
182 %\cvlanguage{Java}{Capable}{Many class projects at UCSD required Java}
183 %\cvlanguage{Python}{Capable}{My first introduction to meta-programming, via
184 %function decorators, and list comprehensions}
185 %%\cvlanguage{C++}{Capable}{The only language I hate more than Java}
186 %\cvlanguage{OCaml}{Capable}{First introduction to functional programming}
187 \section{Computer Skills}
188 \cvcomputer{git}{client, flow, gitosis, submodules, git-svn}
189 {svn}{client, svnserve}
190 \cvcomputer{unix cli}{bash scripting, awk, grep, find, etc.}
191 {unit testing}{c with cutest, ruby with Test::Unit}
192 \cvcomputer{gnu buildchain}{gcc, make, gdb}
193 {ubuntu/debian}{aptitude, debconf}
194 \cvcomputer{Proficient with}{Ruby, C, Java, Python}
195 {Capable with}{OCaml, javascript, CFML\{,script\}, XSLT}
196 \section{Personal Projects}
197 \cvline{py\_shell\_bot}{This was originally started because it was hard to
198 follow along as a teacher would type into the python repl during class.
199 Using this, the teacher (or any presenter) can type as they normally do and
200 students can follow along in an irc channel.
201 \httplink{github.com/ozzloy/py\_shell\_bot}}
202 \cvline{oble}{This project uses a camera to detect presence of a face. The
203 program aggresively blanks the screen for power saving. In addition, oble
204 allows one to watch in-browser videos without poking the keyboard and mouse to
205 prevent the screensaver. I used C++ with OpenCV libs to create this program.
206 \httplink{gitorious.org/oble/oble}}
207 \cvline{technical blog}{\httplink{i-am-lucky.blogspot.com/} Mostly written as
208 a reference for myself, this blog is an account of my technical struggles.}
209 \cvline{imageclipper}{Having a set of labelled data helps with many
210 machine-learning projects. I started with someone else's code base and modified
211 it to make labelling easier for me. The tool helped me label data used for
212 training a car detector. \httplink{github.com/ozzloy/imageclipper}}
213 \cvline{this cv}{ The raw \LaTeX for generating this CV is available online at
214 \httplink{github.com/ozzloy/cv}}
215 \end{document}
216 %\cvlistitem{Item 2}
217 %%\cvlistitem[+]{Item 3} % optional other symbol
218 %
219 %\section{Extra 2}
220 %\cvlistdoubleitem[\Neutral]{Item 1}{Item 4}
221 %\cvlistdoubleitem[\Neutral]{Item 2}{Item 5}
222 %\cvlistdoubleitem[\Neutral]{Item 3}{}
223
224 %\section{Interests}
225 %\cvline{rock climbing}{\small great for strength, also fights carpal tunnel}
226 %\cvline{bike riding}{\small cardio, started as a means to get to school}
227 %\cvline{device interaction}{\small oble project, face detection as human
228 %interaction; compiz HeadTrack project}
229 %% end of file `daniel_watson_cv.tex'.