e97cc60d |
1 | %% start of file `daniel_watson_cv.tex' |
2 | %%% credit: |
f27afb42 |
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 | |
2714388b |
11 | \documentclass[10pt,a4paper]{moderncv} |
f27afb42 |
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) |
21458545 |
16 | \moderncvtheme[blue]{casual} |
f27afb42 |
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 |
96c0da13 |
34 | \firstname{Daniel} |
35 | \familyname{Watson} |
f27afb42 |
36 | % optional, remove the line if not wanted |
9fe2c992 |
37 | \title{Daniel Watson's CV} |
8d95272e |
38 | % optional, |
39 | \address{7665 Palmilla Drive \#5210}{San Diego, 92122} |
40 | % optional, |
96c0da13 |
41 | \mobile{805.699.5690} |
8d95272e |
42 | % optional, |
96c0da13 |
43 | %\phone{phone (optional)} |
8d95272e |
44 | % optional, |
96c0da13 |
45 | %\fax{fax (optional)} |
8d95272e |
46 | % optional, |
96c0da13 |
47 | \email{ozzloy@gmail.com} |
8d95272e |
48 | % optional, |
96c0da13 |
49 | %\extrainfo{additional information (optional)} |
f27afb42 |
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 |
757386d1 |
52 | %\photo[64pt]{daniel_watson} |
f27afb42 |
53 | % optional, remove the line if not wanted |
8bdce07a |
54 | %\quote{"If I have seen further it is only by standing on the shoulders of |
55 | %giants." -Sir Isaac Newton} |
f27afb42 |
56 | |
57 | % uncomment to suppress automatic page numbering for CVs longer than one page |
ca725625 |
58 | \nopagenumbers{} |
f27afb42 |
59 | |
60 | |
61 | %------------------------------------------------------------------------------- |
62 | % content |
63 | %------------------------------------------------------------------------------- |
64 | \begin{document} |
65 | \maketitle |
66 | |
67 | \section{Education} |
68 | % arguments 3 to 6 are optional |
0e5526f5 |
69 | \cventry{2003--2008}{BS}{UCSD}{San Diego}{} |
70 | {Computer Science major with a Mathematics Minor} |
78088c4a |
71 | \cventry{1999--2003}{Diploma}{Bellarmine College Preparatory}{San Jose}{}{} |
f27afb42 |
72 | |
73 | \section{Experience} |
74 | \subsection{Vocational} |
75 | % arguments 3 to 6 are optional |
bc9077d1 |
76 | \cventry{2010--2011}{Computer Engineer}{VisionTree, Inc.}{San Diego}{} |
77 | { |
22df97fe |
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. |
039a4512 |
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. |
bc9077d1 |
105 | } |
4bebc30d |
106 | \cventry{2006--2010}{Computer Engineer}{Avaak, Inc.}{San Diego}{} |
107 | { |
eb58f397 |
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. |
5dccdc6a |
143 | } |
515f742c |
144 | \cventry{2007}{Programming Languages Tutor}{UCSD}{San Diego}{} |
145 | { |
bc9077d1 |
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. |
5dccdc6a |
150 | } |
d73fc44f |
151 | \subsection{For Inspiration and Recognition of Science and Technology} |
152 | % arguments 3 to 6 are optional |
bc9077d1 |
153 | \cventry{2003--2011}{Programming Subteam Mentor}{Midnight Mechanics Team 812} |
515f742c |
154 | {San Diego}{} |
155 | { |
bc9077d1 |
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. |
d73fc44f |
159 | } |
1b7a242f |
160 | \cventry{2002--2003}{Programming Subteam Member}{Cheesy Poofs Team 254} |
515f742c |
161 | {San Jose}{} |
162 | { |
bc9077d1 |
163 | Coded robot controller firmware and autonomous mode in pBasic, shrinking code |
164 | into the EEPROM. |
d73fc44f |
165 | } |
1b7a242f |
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 | %} |
38aa84ae |
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} |
ca725625 |
187 | \section{Computer Skills} |
8d95272e |
188 | \cvcomputer{git}{client, flow, gitosis, submodules, git-svn} |
189 | {svn}{client, svnserve} |
bcb282a2 |
190 | \cvcomputer{unix cli}{bash scripting, awk, grep, find, etc.} |
8d95272e |
191 | {unit testing}{c with cutest, ruby with Test::Unit} |
3797339a |
192 | \cvcomputer{gnu buildchain}{gcc, make, gdb} |
8d95272e |
193 | {ubuntu/debian}{aptitude, debconf} |
194 | \cvcomputer{Proficient with}{Ruby, C, Java, Python} |
195 | {Capable with}{OCaml, javascript, CFML\{,script\}, XSLT} |
a828a940 |
196 | \section{Personal Projects} |
8d95272e |
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}} |
403227ea |
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. |
a828a940 |
206 | \httplink{gitorious.org/oble/oble}} |
8d95272e |
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.} |
a828a940 |
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}} |
403227ea |
213 | \cvline{this cv}{ The raw \LaTeX for generating this CV is available online at |
8d95272e |
214 | \httplink{github.com/ozzloy/cv}} |
403227ea |
215 | \end{document} |
796fbc77 |
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}{} |
f27afb42 |
223 | |
b32e1e9c |
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} |
8d95272e |
229 | %% end of file `daniel_watson_cv.tex'. |