%% start of file `daniel_watson_cv.tex'
%%% credit:
%% start of file `template_en.tex'.
%% Copyright 2006-1008 Xavier Danaux (xdanaux@gmail.com).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
% available at http://www.latex-project.org/lppl/.


\documentclass[10pt,a4paper]{moderncv}

% moderncv themes
% optional argument are 'blue' (default), 'orange', 'red', 'green', 'grey' and
% 'roman' (for roman fonts, instead of sans serif fonts)
\moderncvtheme[blue]{casual}
%\moderncvtheme[green]{classic}                % idem

% character encoding
% replace by the encoding you are using
\usepackage[utf8]{inputenc}

% adjust the page margins
\usepackage[scale=0.8]{geometry}
% if you want to change the width of the column with the dates
%\setlength{\hintscolumnwidth}{3cm}
% only for the classic theme, if you want to change the width of your name
% placeholder (to leave more space for your address details
%\AtBeginDocument{\setlength{\maketitlenamewidth}{6cm}}
% required when changes are made to page layout lengths
\AtBeginDocument{\recomputelengths}

% personal data
\firstname{Daniel}
\familyname{Watson}
% optional, remove the line if not wanted
\title{Daniel Watson's CV}
% optional,
\address{7665 Palmilla Drive \#5210}{San Diego, 92122}
% optional,
\mobile{805.699.5690}
% optional,
%\phone{phone (optional)}
% optional,
%\fax{fax (optional)}
% optional,
\email{ozzloy@gmail.com}
% optional,
%\extrainfo{additional information (optional)}
% '64pt' is the height the picture must be resized to and 'picture' is the name
% of the picture file; optional, remove the line if not wanted
%\photo[64pt]{daniel_watson}
% optional, remove the line if not wanted
%\quote{"If I have seen further it is only by standing on the shoulders of
%giants." -Sir Isaac Newton}

% uncomment to suppress automatic page numbering for CVs longer than one page
\nopagenumbers{}


%-------------------------------------------------------------------------------
%            content
%-------------------------------------------------------------------------------
\begin{document}
\maketitle

\section{Education}
% arguments 3 to 6 are optional
\cventry{2003--2008}{BS}{UCSD}{San Diego}{}
{Computer Science major with a Mathematics Minor}
\cventry{1999--2003}{Diploma}{Bellarmine College Preparatory}{San Jose}{}{}

\section{Experience}
\subsection{Vocational}
% arguments 3 to 6 are optional
\cventry{2010--2011}{Computer Engineer}{VisionTree, Inc.}{San Diego}{}
{
  $\cdot{}$ A customer wanted the ability to show sections of stored surveys
  conditionally.  For legacy reason, this had to be done in CFML and was further
  constrained by existing surveys which could were not under our control.  After
  finding the relevant CFML, I constructed additions to the in-house developed
  markup language and corresponding processing CFML.  This feature has been in
  use for the last six months without affecting other survey features.
  \newline{}
  $\cdot{}$ Motivated by the difficult setup process, I decided to automate the
  setup of new Coldfusion developer stations.  Adobe's coldfusion installer
  script has user interaction, so initial scripting was done with Expect.  To
  make the installer more maintainable by the other programmers, this was
  converted to ruby and bash.  Several development systems have since used
  this installer.
  \newline{}
  $\cdot{}$ Because the old svn systems were difficult to work with, I converted
  several of them to git repos served by gitosis.  I set up the gitosis server
  and taught some coworkers how to use ssh-keys for easier interaction with it.
  \newline{}
  $\cdot{}$ VisionTree's store of surveys, written in their custom markup, has
  syntax errors which sometimes cause real customer data loss.  In order to
  combat this, I talked with developers creating the surveys and with those who
  wrote the parsing code about the types of errors and which were most common.
  I wrote a ruby gem generate error reports in xml.  From there, it was easy to
  write a server for an internal site that presents all the data to the other
  developers.  After creating the site, I modified the internal gedit plugin to
  present the same data within gedit on developed as they are developed, before
  they are pushed live for customers.
}
\cventry{2006--2010}{Computer Engineer}{Avaak, Inc.}{San Diego}{}
{
  $\cdot{}$ Avaak Inc. cameras that communicate wirelessly to a base station.
  The base station also communicated back to central servers.  Under heavy load,
  communication would break down.  They needed a way to generate such loads and
  log the communications and asked me to simulate the cameras and the base
  station.  I set out simulating the camera first since it only communicated
  with a base station and I could have a real one at my desk during
  development.  Also once it was developed it would make developing the base
  station easier.  All of this went according to plan, but communication between
  the base station and the central server was much more difficult than
  anticipated.  The central server had bad logging facilities and it was not
  feasible to modify it.  To work around this, I developed a server that could
  run locally to facilitate the base station's server communication development.
  The simulators worked well and logged in a very readable format all
  camera, base station and server communications.  Hundreds of simulated
  cameras revealed that the central server's memory was maxed out with a high
  number of connections.
  \newline{}
  $\cdot{}$ After using the simulator to diagnose problems like the central
  server's memory maxing out, Avaak wanted to use the tool to monitor the
  health of the system.  This was a relatively easy addition that just needed
  simulate a round trip of a picture taken on a camera and then being visible
  on the website.  This system emails logs of minor problems and sends a text
  in addition to a more detailed email for major problem.  On catastrophic
  failures, I included myself on the emails.  Several months after I left I
  received emails from this tool, so I knew it was still doing its job.  At the
  end of my work on this project, it weighed in at 3kloc of ruby.
  \newline{}
  $\cdot{}$ Mike Sailor's chem lab at UCSD developed reusable chemical sensors.
  They enlisted the help of Avaak to figure characterize the sensor's changes
  when an agent was introduced to the environment.  Working with Serge Belongie
  and Clark Guest, computer vision experts at UCSD, I developed C and matlab
  classifiers.  These classifiers generated data which we analyzed using
  invariants, and later PCA, and Fischerfaces.  The conclusion of this analyses
  was used to justify further research by Mike Sailor and his lab into their
  reusable chemical sensors.
}
\cventry{2007}{Programming Languages Tutor}{UCSD}{San Diego}{}
{
  In CSE 130, I tutored students Programming Languages in the fall and winter
  quarters.  We covered different styles of programming through different
  languages: functional programming with OCaml; object oriented programming
  with python; logic programming with prolog.
}
\subsection{For Inspiration and Recognition of Science and Technology}
% arguments 3 to 6 are optional
\cventry{2003--2011}{Programming Subteam Mentor}{Midnight Mechanics Team 812}
{San Diego}{}
{
  I helped high school students code controller firmware and introduced them to
  aspects of software development like version control with svn, and logic flow
  control structures with C.
}
\cventry{2002--2003}{Programming Subteam Member}{Cheesy Poofs Team 254}
{San Jose}{}
{
  Coded robot controller firmware and autonomous mode in pBasic, shrinking code
  into the EEPROM.
}
%\subsection{Miscellaneous}
%% arguments 3 to 6 are optional
%\cventry{2000--2003}{Track Marshall}{SpeedRing}{San Jose}{}{
%	SpeedRing is go-kart racing for adults\newline{}
%	flag racers on track for passing, rule violations, warning of crashes
%}
%
%\cventry{1998--1999}{Range Marshall}{Sunnyvale Rod \& Gun Club}{Sunnyvale}{}{
%	refill target shooters and keep scores
%}
%\section{Languages}
%%\cvlanguage{language 3}{Skill level}{Comment}
%%Proficient C Java Ruby
%%Capable C++ Python OCaml Matlab
%\cvlanguage{Ruby}{Proficient}{My goto language}
%\cvlanguage{C}{Proficient}{First language I learned}
%\cvlanguage{Java}{Capable}{Many class projects at UCSD required Java}
%\cvlanguage{Python}{Capable}{My first introduction to meta-programming, via
%function decorators, and list comprehensions}
%%\cvlanguage{C++}{Capable}{The only language I hate more than Java}
%\cvlanguage{OCaml}{Capable}{First introduction to functional programming}
\section{Computer Skills}
\cvcomputer{git}{client, flow, gitosis, submodules, git-svn}
  {svn}{client, svnserve}
\cvcomputer{unix cli}{bash scripting, awk, grep, find, etc.}
  {unit testing}{c with cutest, ruby with Test::Unit}
\cvcomputer{gnu buildchain}{gcc, make, gdb}
  {ubuntu/debian}{aptitude, debconf}
\cvcomputer{Proficient with}{Ruby, C, Java, Python}
  {Capable with}{OCaml, javascript, CFML\{,script\}, XSLT}
\section{Personal Projects}
\cvline{py\_shell\_bot}{This was originally started because it was hard to
follow along as a teacher would type into the python repl during class.
Using this, the teacher (or any presenter) can type as they normally do and
students can follow along in an irc channel.
\httplink{github.com/ozzloy/py\_shell\_bot}}
\cvline{oble}{This project uses a camera to detect presence of a face.  The
program aggresively blanks the screen for power saving.  In addition, oble
allows one to watch in-browser videos without poking the keyboard and mouse to
prevent the screensaver.  I used C++ with OpenCV libs to create this program.
\httplink{gitorious.org/oble/oble}}
\cvline{technical blog}{\httplink{i-am-lucky.blogspot.com/} Mostly written as
a reference for myself, this blog is an account of my technical struggles.}
\cvline{imageclipper}{Having a set of labelled data helps with many
machine-learning projects.  I started with someone else's code base and modified
it to make labelling easier for me.  The tool helped me label data used for
training a car detector.  \httplink{github.com/ozzloy/imageclipper}}
\cvline{this cv}{ The raw \LaTeX for generating this CV is available online at
  \httplink{github.com/ozzloy/cv}}
\end{document}
%\cvlistitem{Item 2}
%%\cvlistitem[+]{Item 3}            % optional other symbol
%
%\section{Extra 2}
%\cvlistdoubleitem[\Neutral]{Item 1}{Item 4}
%\cvlistdoubleitem[\Neutral]{Item 2}{Item 5}
%\cvlistdoubleitem[\Neutral]{Item 3}{}

%\section{Interests}
%\cvline{rock climbing}{\small great for strength, also fights carpal tunnel}
%\cvline{bike riding}{\small cardio, started as a means to get to school}
%\cvline{device interaction}{\small oble project, face detection as human
%interaction; compiz HeadTrack project}
%% end of file `daniel_watson_cv.tex'.
