| 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'. |