X-Git-Url: http://challenge-bot.com/repos/?a=blobdiff_plain;f=daniel_watson_cv.tex;h=c5fb08c2cbc694f2ce4f6415d23942a7213daedd;hb=5f8c2a7142c3d3477aa868b3af933d86beb64cbd;hp=53f41e60362144f265b371f071afc73888af1b41;hpb=eb58f397131eba5a2a7ba20931fce2105f27b192;p=ozzloy%40gmail.com%2Fcv diff --git a/daniel_watson_cv.tex b/daniel_watson_cv.tex index 53f41e6..c5fb08c 100644 --- a/daniel_watson_cv.tex +++ b/daniel_watson_cv.tex @@ -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, @@ -66,82 +67,63 @@ \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 @@ -150,15 +132,22 @@ } \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. @@ -185,15 +174,17 @@ %%\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