(no commit message)
[ozzloy@gmail.com/cv] / daniel_watson_cv.tex
index 53f41e60362144f265b371f071afc73888af1b41..c5fb08c2cbc694f2ce4f6415d23942a7213daedd 100644 (file)
@@ -22,6 +22,7 @@
 
 % adjust the page margins
 \usepackage[scale=0.8]{geometry}
+\usepackage{multicol}
 % 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
@@ -36,7 +37,7 @@
 % optional, remove the line if not wanted
 \title{Daniel Watson's CV}
 % optional,
-\address{7665 Palmilla Drive \#5210}{San Diego, 92122}
+%\address{7665 Palmilla Drive \#5210}{San Diego, 92122}
 % optional,
 \mobile{805.699.5690}
 % optional,
 
 \section{Education}
 % arguments 3 to 6 are optional
-\cventry{2003--2008}{BS}{UCSD}{San Diego}{}
+\cventry{2003--2008}{BS}{UCSD}{San Diego}{CA}
 {Computer Science major with a Mathematics Minor}
-\cventry{1999--2003}{Diploma}{Bellarmine College Preparatory}{San Jose}{}{}
-
+\cventry{1999--2003}{High SchoolDiploma}{Bellarmine College Preparatory}
+        {San Jose}{CA}{}
 \section{Experience}
 \subsection{Vocational}
 % arguments 3 to 6 are optional
-\cventry{2010--2011}{Computer Engineer}{VisionTree, Inc.}{San Diego}{}
+\cventry{2010--2011}{Computer Engineer}{VisionTree, Inc.}{San Diego}{CA}
 {
-  $\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.
+  \begin{itemize}
+    \item
+  The old svn systems were difficult to work with, so I converted them
+  to git repos served by gitosis and later gitolite.  Thanks to ssh keys,
+  Visiontree is now able to merge branches more often and more easily.
+    \item
+  The git systems mentioned above are used by a lot of people, internal devs
+  as well as third parties.  After helping several fellow developers
+  serially and individually, I created a class to explain how to use git.
+  I have given this class several times.  Developers from around the country
+  have attended.
+    \item
+  One former developer created a suite of ruby scripts to hand HL7 protocol
+  communications.  To make the service more reliable, I have documented the
+  process of installing the scripts as different users and on new machines,
+  as well as automated parts of it.
+    \item
+  A customer wanted the ability to show sections of stored surveys
+  conditionally.  I made additions to the survey markup, ``vtjson'', and
+  processing code, while remaining compatible with existing surveys.
+    \item
+  I decided to automate the setup of new Coldfusion developer stations with
+  Expect.  Later, I translated into ruby and bash, languages the other
+  developers are more familiar with.
+    \item
+  VisionTree's surveys have syntax errors which sometimes cause customer
+  data loss.  In order to combat this, I generated an error reporter.  Errors
+  were presented by an internal website and a gedit plugin.
+  \end{itemize}
 }
-\cventry{2006--2010}{Computer Engineer}{Avaak, Inc.}{San Diego}{}
+\cventry{2006--2010}{Computer Engineer}{Avaak, Inc.}{San Diego}{CA}
 {
-  $\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.
+  \begin{itemize}
+    \item
+  Avaak needed to stress and log its wireless camera and server to pin down the
+  communication breakdown.  My tools revealed that the server's memory maxed
+  under a high number of camera connections.
+    \item
+  Sometimes the servers would be up but not doing their job correctly, so Avaak
+  asked me to modify the simulators to monitor the servers more intelligently.
+  Several months after I left, it would still send me detailed failure reports.
+    \item
+  A chem lab at UCSD wanted to characterize a reusable chemical sensor's
+  appearance change.  Working under the direction of several professors, I
+  developed quantifiers for the amount and type of change of the sensors.
+  \end{itemize}
 }
-\cventry{2007}{Programming Languages Tutor}{UCSD}{San Diego}{}
+\cventry{2007}{Programming Languages Tutor}{UCSD}{San Diego}{CA}
 {
   In CSE 130, I tutored students Programming Languages in the fall and winter
   quarters.  We covered different styles of programming through different
 }
 \subsection{For Inspiration and Recognition of Science and Technology}
 % arguments 3 to 6 are optional
+\cventry{2011--present}{Programming Subteam Lead Mentor}
+        {Cow Abductors Team 53}{Greenbelt}{MD}
+{
+  I helped high school students code controller firmware and introduced them to
+  aspects of software development like version control with svn and git, and
+  logic flow control structures with C.
+}
 \cventry{2003--2011}{Programming Subteam Mentor}{Midnight Mechanics Team 812}
-{San Diego}{}
+{San Diego}{CA}
 {
   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.
+  aspects of software development like version control with svn and git, and
+  logic flow control structures with C.
 }
 \cventry{2002--2003}{Programming Subteam Member}{Cheesy Poofs Team 254}
-{San Jose}{}
+{San Jose}{CA}
 {
   Coded robot controller firmware and autonomous mode in pBasic, shrinking code
   into the EEPROM.
 %%\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}
+\cvcomputer{git}{client, -flow, gito\{sis,lite\}, submodules, git-svn}
   {svn}{client, svnserve}
 \cvcomputer{unix cli}{bash scripting, awk, grep, find, etc.}
-  {unit testing}{c with cutest, ruby with Test::Unit}
+  {unit testing}{c with cutest, ruby with Test::Unit, racket with rackunit}
 \cvcomputer{gnu buildchain}{gcc, make, gdb}
   {ubuntu/debian}{aptitude, debconf}
-\cvcomputer{Proficient with}{Ruby, C, Java, Python}
+\cvcomputer{Proficient with}{Ruby, C, Java, Python, Racket}
   {Capable with}{OCaml, javascript, CFML\{,script\}, XSLT}
 \section{Personal Projects}
+\cvline{this cv}{ The raw \LaTeX for generating this CV is available online at
+  \httplink{github.com/ozzloy/cv}}
 \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
@@ -210,8 +201,6 @@ a reference for myself, this blog is an account of my technical struggles.}
 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