-
-
diff --git a/old resume.pdf b/old resume.pdf
new file mode 100644
index 0000000..64c920b
Binary files /dev/null and b/old resume.pdf differ
diff --git a/res.cls b/res.cls
new file mode 100644
index 0000000..e033d4a
--- /dev/null
+++ b/res.cls
@@ -0,0 +1,803 @@
+% RESUME DOCUMENT STYLE -- Released 23 Nov 1989
+% for LaTeX version 2.09
+% Copyright (C) 1988,1989 by Michael DeCorte
+
+\typeout{Document Style `res' <26 Sep 89>.}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% res.sty
+%
+% \documentstyle{res}
+%
+% Copyright (c) 1988 by Michael DeCorte
+% Permission to copy all or part of this work is granted, provided
+% that the copies are not made or distributed for resale, and that
+% the copyright notice and this notice are retained.
+%
+% THIS WORK IS PROVIDED ON AN "AS IS" BASIS. THE AUTHOR PROVIDES NO
+% WARRANTY WHATSOEVER, EITHER EXPRESS OR IMPLIED, REGARDING THE WORK,
+% INCLUDING WARRANTIES WITH RESPECT TO ITS MERCHANTABILITY OR FITNESS
+% FOR ANY PARTICULAR PURPOSE.
+%
+% If you make any improvements, I'd like to hear about them.
+%
+% Michael DeCorte
+% P.O. Box 652
+% Potsdam NY 13676
+% mrd@sun.soe.clarkson.edu
+% mrd@clutx.bitnet
+%
+% Changes for LaTeX2e -- Venkat Krishnamurthy (Aug 7, 2001)
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% You can have multiple style options the legal options ones are:
+%
+% centered the name and address are centered at the top of the
+% page (default)
+%
+% line the name is the left with a horizontal line then
+% the address to the right
+%
+% overlapped the section titles overlap the body text (default)
+%
+% margin the section titles are to the left of the body text
+%
+% 11pt use 11 point fonts instead of 10 point fonts
+%
+% 12pt use 12 point fonts instead of 10 point fonts
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Commands
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \Resume prints the word resume but typeset nicely
+%
+% \newsectionwidth{dimen}
+% defines the amount of space the labels extend
+% into the left margin.
+% DO NOT TRY to change any of the dimensions
+% yourself. You will probably confuse the style file.
+%
+% \name{text} defines your name
+%
+% \address{text}
+% defines your address
+% this can be called twice if you have two addresses
+% use \\'s to indicate where either line breaks or
+% comas should go
+%
+% \opening this prints your name and address at that spot
+% this is not normally needed, as \begin{resume}
+% does this but is provided just in case you need
+% to do something odd
+%
+% \begin{resume} ... \end{resume}
+% all of the resume should go inside of this
+% environment
+%
+% \section{text}
+% This prints 'text' in the left hand margin.
+% Its exact placement depends on what the style
+% options has been set to. (overlapped or margin)
+% You should use \\ to start a new line. If the
+% style option is margin, the \\ is converted
+% to a space.
+% To use this in any of the list environments, put
+% the \section after the \item[] but before the
+% text.
+% Eg.
+% \begin{itemize}
+% \item\section{text}
+% text
+% \end{itemize}
+%
+% \begin{ncolumn}{n} ... \end{ncolumn}
+% creates a tabular environment with n equally
+% spaced columns. Separate columns by & and
+% end them with \\
+%
+% \begin{position} ... \end{position}
+% this is used to print a job description. There should
+% be only one job description in it. Information
+% related to the job (such as title, dates...) will
+% be printed.
+%
+% \begin{format} ... \end{format}
+% used to change the default format for the position
+% environment. Within it the recognized commands are:
+% \title{option}
+% \employer{option}
+% \location{option}
+% \dates{option}
+% \body
+% \\
+% where option is one of l,r,c standing for left, right, center.
+% The format will eventually be used to make several
+% tabular environments and you are defining the number of columns
+% and the placement of text within the columns of the tabulars.
+% Each row is terminated by a \\. Any number of options can
+% be on a line, they will each be set in their own columns.
+% Any of the options except \body may be left out.
+%
+% Eg.
+% \begin{format}
+% \title{l}\employer{r}\\
+% \dates{r}\\
+% \body\\
+% \location{l}\\
+% \end{format}
+%
+% In this example the title and employer information
+% are set in 2 columns left justified and right justified
+% respectively. Then the date is set right justified.
+% Then the body is set. Then the location is set left
+% justified.
+%
+% \employer{text}
+% \title{text}
+% \dates{text}
+% \location{text}
+% declare text for the next invocation of the position
+% environment
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Glue
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% sectionskip the amount of horizontal before a section
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Dimensions
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% sectionwidth the amount that the section titles go in the
+% left margin
+%
+% resumewidth the width of the total resume from the left
+% margin to the right. Don't use textwidth
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Definitions
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% sectionfont the font used to print section titles
+% use \renewcommand to change it
+%
+% namefont the font used to print your name
+% use \renewcommand to change it
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% THINGS TO DO
+%
+% add lm,rm options to format style to allow things to be placed
+% in the left or right margin respectivly
+%
+% add capability so that \body doesn't have to be proceeded (followed)
+% by a \\ allowing part of the description (eg. location) to be the
+% first (last) thing of the body
+%
+% clean up the list building procedures
+%
+% write docs to tell people how to use this
+
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\ProvidesClass{res}[2000/05/19 v1.4b Resume class]
+
+%\DeclareOption{11pt}{\renewcommand\@ptsize{1}}
+%\DeclareOption{12pt}{\renewcommand\@ptsize{2}}
+
+\PassOptionsToClass{11pt,12pt}{article}
+\LoadClassWithOptions{article}
+
+\newif\if@line
+\newif\if@margin
+
+\DeclareOption{line}{\@linetrue}
+\DeclareOption{centered}{\@linefalse}
+
+\DeclareOption{margin}{\@margintrue}
+\DeclareOption{overlapped}{\@marginfalse}
+
+\ExecuteOptions{overlapped,centered}
+\ProcessOptions\relax
+
+\nofiles % resume's don't need .aux files
+
+
+\newtoks\tabular@text % holds the current list being processed
+\newtoks\tabular@head % holds the head tabular list
+\newtoks\tabular@tail % holds the tail tabular list
+\newtoks\@ta % used by \@append
+\newtoks\undefined@token\undefined@token={}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% prints a centered name with the address centered
+% or the two address on opposite sides of the page
+%
+\def\@printcentername{\begingroup
+ % print the name centered
+ \leavevmode\hbox to \textwidth{\hfil\@tablebox{\namefont\@name}\hfil}\par
+ \@ifundefined{@addressone}{%
+ % do nothing
+ }{%
+ \@ifundefined{@addresstwo}{
+ % only one address
+ \leavevmode\hbox to \textwidth{\hfil\@tablebox{\@addressone}\hfil}\par
+ }{
+ % two addresses
+ \leavevmode\hbox to \textwidth{\@tablebox{\@addressone}\hfil
+ \@tablebox{\@addresstwo}}\par
+ }%
+ }%
+\endgroup}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% this is used to print the name and address at the top of
+% the page with a hline in between
+%
+\def\namefont{\large\bf}
+\def\@linename{\begingroup
+ \def\\{, }
+ {\namefont\@name}
+ \vskip 2pt
+ \fullline
+ \vskip 2pt
+ % where do you live?
+ \@ifundefined{@addressone}{%
+ % do nothing
+ }{%
+ \leavevmode\hbox to \textwidth
+ {\hfill\vbox{\hbox{\@addressone}
+ \hbox{\@addresstwo}
+ }%
+ }\par
+ }
+\endgroup}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% HEADINGS:
+% There are two types of headings:
+% 1) one with the name centered and the address centered or
+% in the left and right side if there are two address
+% 2) one where the name is in the upper left corner
+% the a line accross the paper
+% then the address all on one line in the right corner
+% the second address will be directly below the first if defined
+%
+\let\print@name\relax
+\def\ds@centered{\ifx\print@name\relax\let\print@name\@printcentername\fi}
+\def\ds@line{\ifx\print@name\relax\let\print@name\@linename\fi}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Use this to set the sectionwidth.
+% It adjust the width of the text as well as the hoffset
+% You probably shouldn't touch any of the size paramaters
+% unless you really understand all of this but it is not
+% hard. Either way, it can only be executed once
+%
+\def\sectionfont{\bf}
+\newdimen\sectionwidth
+\newskip\sectionskip
+\newdimen\resumewidth
+
+\resumewidth=6.5in
+\sectionskip=3.5ex plus 1ex minus -.2ex % values stolen from LaTeX
+
+\def\newsectionwidth#1{%
+ \sectionwidth=#1
+ \textwidth=\resumewidth
+ \advance\textwidth-\sectionwidth
+ \hsize=\textwidth
+ \hoffset=\sectionwidth
+}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This is for sectiontitles that are entirely in the left margin.
+% multiline sectiontitles are permited and will be broken by
+% \TeX{} to fit into a box \verb|\sectionwidth| wide. It is advised
+% that \verb|\\| be used to break the lines by hand as \TeX{} will
+% probably not do what you want.
+%
+% When using this with {\tt tabbing} and {\tt list} (or anything
+% that is made out of {\tt list}) put the \section's inside of
+% the \verb|\begin{}| and the \verb|\item|Eg.
+% \begin{verbatim}
+% \begin{trivlist}
+% \item[]
+% \section{foo}
+% text
+% \end{trivlist}
+% \end{verbatim}
+%
+\def\boxed@sectiontitle#1{%
+ % this macro may be called in a tabular. Special code must be written
+ % to accomodate this. In LaTeX, a tabular is made out of hboxes.
+ % TeX never goes into horizontal mode because of this; it only
+ % gets into vertical mode and restricted horizontal mode. Certain
+ % indenting problems must be handled because of this. They
+ % are delt with at the end of this routine.
+ % It is also necessary to close the hbox that was created before
+ % the \section and create a new one when this macro has ended.
+ % This macro therefore simulates a \kill, so that any text before
+ % the \section not be printed. The proper use is therefore
+ % ...
+ % text\\
+ % \section{foo}
+ % more text\\
+ % ...
+ \ifx\\\@tabcr % is this in a tabular? (this *should* work but is a cludge)
+ \@stopfield % the is the first part of a \kill
+ \else
+ \@@par % This will end the previous paragraph if needed and
+ % go into vertical mode. If this was already in
+ % vertical mode then the \par does nothing.
+
+ \fi
+ \begingroup
+ \everypar={}%
+ \def\par{\@@par}%
+ \let\\=\@normalcr
+ \addpenalty{\@secpenalty} % this would be a good place for a page break
+ % \@secpenalty is what LaTeX uses before its
+ % section's. It happens to be -300
+ \addvspace{\sectionskip} % put in a bit of glue
+ % The following hbox will be contributed to the page list without going
+ % into horizontal mode. Therefore, any \parindent's, \parshape's, \leftskip
+ % will be ignored but \hoffset's are not. The result is that the box will
+ % only by \hoffset. This is what I want
+ \hbox to 0pt{%
+ \hss % this is an llap. In other words, this glue
+ % will shrink by the width of the stuff in the vbox
+ % (\sectionwidth) into the left margin and then
+ % insert the contents of the vbox.
+ \vtop to 0pt{% make a 0pt height paragraph, with the baseline at the
+ % lined up with the baseline of the first box in the list
+ \leftskip=0pt
+ \hsize=\sectionwidth
+ \textwidth=\sectionwidth
+ \raggedright % you don't want this filled out to the right margin
+ \sectionfont
+ #1\vss % Go into horizontal mode; do the paragraph;
+ % go into vertical mode; add some negative glue
+ % to give a box of 0pt height and depth
+ }%
+ }%
+ \addpenalty{-\@secpenalty} % this would be a bad place for a page break
+ \vskip-\baselineskip % when the next box is processed, baselineskip glue
+ % glue will be added (the box has no depth because of
+ % the \vss; therefore, we don't have to worry about
+ % \lineskiplimit). This -\baselineskip glue
+ % is to undo this. \nointerlineskip doesn't
+ % work because the baseline of this line would be lined
+ % up with the top of the top of the next box. We
+ % want the baselines lined up.
+ %
+ % It may have been possible to do this by forcing the
+ % baseline of this box to be the top of the box but
+ % then the interline skip between this box and the
+ % previous box would be off as the baselines of the
+ % this box (the one that being made above) and the
+ % previous line would be separated by \baselineskip
+ % (probably, it may be separted by the depth of the
+ % previous box + \lineskip) but as the baseline of
+ % this box has been moved to the top, the box's would
+ % separted by to much glue. The exact amount being
+ % the height of this box.
+ \endgroup
+ \ifx\\\@tabcr % is this in a tabular? (this *should* work but is a cludge)
+ % this is the second part of the \kill; it starts the next tabbing line
+ % Because this routine will never get into paragraph mode when used in
+ % tabbing the \parskip that is discussed below will never be inserted.
+ % Therefore it should not be negated as done below.
+ \@startline
+ \ignorespaces
+ \else
+ \vskip-\parskip % The next thing to be contributed will be a paragraph.
+ % Right before being contributed though a \vskip\parskip
+ % will be inserted. This is to negate it.
+ %
+ % I do consider this to be a bit of a cludge but
+ % I can not find a way to write \unskipfutureskip
+ % or a way to make TeX think that nothing has
+ % been contributed to the page list.
+ \fi
+}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This is for sectiontitles that are entirely above the section text
+%
+\def\unboxed@sectiontitle#1{%
+ \ifx\\\@tabcr % see boxed@sectiontitle for explation
+ \@stopfield
+ \else
+ \@@par
+ \fi
+ \begingroup
+ \everypar={}%
+ \def\par{\@@par}%
+ \def\\{ }
+ \addpenalty{\@secpenalty}
+ \addvspace{\sectionskip}
+ \hbox to 0pt{\hss\hbox to \sectionwidth{\sectionfont#1\hss}}
+ \addpenalty{-\@secpenalty} % this would be a bad place for a page break
+ \endgroup
+ \ifx\\\@tabcr % see boxed@sectiontitle for explation
+ \@startline
+ \else
+ \vskip-\parskip
+ \fi
+ \ignorespaces
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% There are two types of section headings:
+% 1) the section heading is all on one line and directly
+% below it, is the body of the text
+% 2) the section heading is entirely in the left margin
+% (possibly taking multiple lines) with the body of
+% the text next to it
+%
+\let\@@section\relax
+\def\ds@overlapped{\ifx\@@section\relax\newsectionwidth{0.5in}\let
+ \@@section\unboxed@sectiontitle\fi}
+\def\ds@margin{\ifx\@@section\relax\newsectionwidth{1.3in}\let
+ \@@section\boxed@sectiontitle\fi}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% DEFAULTS: (some of them)
+%
+% centered name
+% overlapped section titles
+%
+% format is:
+% title employer
+% location dates
+% body
+% with everything in the left of its column
+
+%\input article.sty
+
+\if@line\ds@line\else\ds@centered\fi
+\if@margin\ds@margin\else\ds@overlapped\fi
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% typeset resume all nice and pretty
+%
+\def\Resume{{R\'{e}sum\'{e}}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% makes a line of width \textwidth starting at -\hoffset
+%
+\def\fullline{ % hrules only listen to \hoffset
+ \nointerlineskip % so I have this code
+ \moveleft\hoffset\vbox{\hrule width\textwidth}
+ \nointerlineskip
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% create a multiline box.
+%
+\def\@tablebox#1{\begin{tabular}[t]{@{}l@{\extracolsep{\fill}}}#1\end{tabular}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% use this to define your name
+%
+\def\name#1{\def\@name{#1}}
+
+\def\@name{}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% use this to define your address, this may be called more than once.
+%
+\let\@addressone\relax
+\let\@addresstwo\relax
+
+\def\address#1{
+ \@ifundefined{@addressone}{\def\@addressone{#1}}{\def\@addresstwo{#1}}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% if you want to print your name and address is a slightly
+% different format than sugessted, then this can be used
+% to place it exactly where you want
+%
+\def\opening{\def\@opening{}
+ \begingroup
+ \leftskip=-\hoffset % I use leftskip to move things to the left as
+ \advance\textwidth\hoffset % changing hoffset doesn't work. But this
+ \hsize=\textwidth % doesn't really work as hboxes are rules
+ % are unaffeted
+ \let\par=\@@par
+ \parindent=0pt
+ \parskip=0pt
+ \print@name
+ \endgroup
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% all of the resume goes in the resume environment
+%
+\newenvironment{resume}{\begingroup
+ \@ifundefined{@opening}{\opening}{}
+}{\endgroup}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% gives you a tabular environment with n equally spaced columns
+% \begin{ncolumn}{#} ... \end{ncolumn}
+%
+% The p option of LaTeX is broken in all but the newest verion
+% of latex.tex, this is how to fix it
+%
+\def\@endpbox{\par\egroup\hfil}
+\let\@@endpbox=\@endpbox
+
+\newdimen\@columnwidth % the width of each column equal to
+\def\ncolumn#1{%
+ % \@columnwidth = \textwidth / #1
+ \@columnwidth=\textwidth \divide\@columnwidth by #1
+ \begin{tabular*}{\textwidth}[t]%
+ {*{#1}{@{}p{\@columnwidth}@{\extracolsep{\fill}}}}
+}
+
+\def\endncolumn{\end{tabular*}}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \employer{text} defines employer to be text
+% \location{text} defines location to be text
+% \dates{text} defines dates to be text
+% \title{text} defines title to be text
+% \body
+%
+
+\def\employer#1{\def\@employer{\print@employer{#1}}}
+\def\location#1{\def\@location{\print@location{#1}}}
+\def\dates#1{\def\@dates{\print@dates{#1}}}
+\def\title#1{\def\@title{\print@title{#1}}}
+
+\let\l@justify\raggedright
+\let\r@justify\raggedleft
+\let\c@justify\centering
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \@format{name}{justify}
+% will define \print@#1 to print it's one argument
+% justified according to #2 which can be
+% l = left
+% r = right
+% c = center
+%
+% eg.
+% \@format{employer}{c}
+% is the same as \def\print@employer#1{{\centering #1\par}}
+%
+\def\@format#1#2{%
+ \expandafter\gdef\csname print@#1\endcsname##1{%
+ {\csname#2@justify\endcsname##1\par}}
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% this is used to define how the position environment should
+% formated.
+%
+% \begin{format} positioning text \end{format}
+% where positioning text may be
+% \employer{pos}
+% \location{pos}
+% \dates{pos}
+% \title{pos}
+% \body (for the body of the position environment)
+% where pos is
+% l for left
+% r for right
+% c for center
+% use \\ to break the line
+% you don't have to use all of the options.
+% on any one line, you should indicate what you want on that line
+% and where it should go within its column.
+% eg.
+% the following prints the employer in the left with the location
+% centered within that its column. It then prints the date on the
+% right. Then it prints the body of the position environment. Then
+% it prints the title centered within its column; as there is only
+% one column here it is really just centered.
+%
+% \begin{format}
+% \employer{l}\location{c}\\
+% \dates{r}\\
+% \body\\
+% \title{c}\\
+% \end{format}
+
+\newcounter{numberofcolumns}
+\newenvironment{format}{%
+ \def\end@line@head{\append@tabular@head{tabular@text}\tabular@text={}%
+ \c@numberofcolumns 0}
+ \def\end@line@tail{\append@tabular@tail{tabular@text}\tabular@text={}%
+ \c@numberofcolumns 0}
+ \tabular@text={}
+ \tabular@head={}
+ \tabular@tail={}
+ \c@numberofcolumns 0
+ \let\\=\end@line@head
+ \def\employer##1{\advance\c@numberofcolumns 1
+ \@format{employer}{##1}
+ \append@tabular@text{employer}}
+ \def\location##1{\advance\c@numberofcolumns 1
+ \@format{location}{##1}
+ \append@tabular@text{location}}
+ \def\dates##1{\advance\c@numberofcolumns 1
+ \@format{dates}{##1}
+ \append@tabular@text{dates}}
+ \def\title##1{\advance\c@numberofcolumns 1
+ \@format{title}{##1}
+ \append@tabular@text{title}}
+ \def\body{\iftoks\tabular@head\undefined@token\then
+ \else
+ \@append{\noexpand\\}\to\tabular@head
+ \skotfi
+ \let\\=\end@line@tail}}{}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%taken from page 378 of TeXbook but freely hacked
+%
+% appends the expansion of #1 to the token list #2
+
+\def\@append#1\to#2{%
+ \@ta=\expandafter{#1}%
+ \xdef\@append@temp{\the#2\the\@ta}
+ \global#2=\expandafter{\@append@temp}%
+}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% CHAA006%vaxb.rhbnc.ac.uk@NSS.Cs.Ucl.AC.UK
+% texhax.88.078
+% is used to see if two token lists are equal
+% there must be a better way
+%
+
+\let \then = \empty
+\def \iftoks #1#2\then #3\else #4\skotfi{
+ \edef \1{\the #1}
+ \edef \2{\the #2}
+ \ifx \1\2\then #3\else #4\fi}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \append@tabular@text{command}
+%
+% appends command to the end of \tabular@text.
+% NOTE: command MUST be a command but without the \
+% Eg. \append@tabular@text{relax}
+%
+% used to define \tabular@text for the tabular environment
+% used by append@tabular@head and append@tabular@tail
+%
+
+\def\append@tabular@text#1{%
+\iftoks\tabular@text\undefined@token\then
+ \global\tabular@text=\expandafter{\csname @#1\endcsname}
+\else
+ \@append{&}\to\tabular@text
+ \@append{\csname @#1\endcsname}\to\tabular@text
+\skotfi
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% append@tabular@head
+%
+% appends command to the end of \tabular@text@head
+% NOTE: command MUST be a command but without the \
+% Eg. \append@tabular@head{relax}
+%
+% used to define \tabular@head for the tabular environment
+% used by the position environment
+%
+\def\append@tabular@head#1{%
+ \ifnum\the\c@numberofcolumns=0\relax
+ \else
+ \iftoks\tabular@head\undefined@token\then
+ \relax
+ \else
+ \@append{\noexpand\\}\to\tabular@head
+ \@append{\noexpand\penalty-\@secpenalty}\to\tabular@head
+ \skotfi
+ \@append{\noexpand\begin{ncolumn}}\to\tabular@head
+ \@append{\expandafter{\the\c@numberofcolumns}}\to\tabular@head
+ \@append{\the\csname#1\endcsname}\to\tabular@head
+ \@append{\noexpand\end{ncolumn}}\to\tabular@head
+ \fi
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% append@tabular@tail
+%
+% appends command to the end of \tabular@text@htail
+% NOTE: command MUST be a command but without the \
+% Eg. \append@tabular@tail{relax}
+%
+% used to define \tabular@tail for the tabular environment
+% used by the position environment
+%
+\def\append@tabular@tail#1{%
+ \ifnum\the\c@numberofcolumns=0\relax
+ \else
+ \iftoks\tabular@tail\undefined@token\then
+ \else
+ \@append{\noexpand\\}\to\tabular@tail
+ \@append{\noexpand\penalty-\@secpenalty}\to\tabular@tail
+ \skotfi
+ \@append{\noexpand\begin{ncolumn}}\to\tabular@tail
+ \@append{\expandafter{\the\c@numberofcolumns}}\to\tabular@tail
+ \@append{\the\csname#1\endcsname}\to\tabular@tail
+ \@append{\noexpand\end{ncolumn}}\to\tabular@tail
+ \fi
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% put the actual job descriptions here
+% \begin{postion} ... \end{position}
+% in the ... describe the position.
+% don't put the \dates \location etc in here. define them before hand
+\newenvironment{position}%
+ {%
+ \begingroup
+ \par
+ \the\tabular@head
+% \addpenalty{-\@secpenalty}% bad place for a page break
+ \penalty -\@secpenalty % bad place for a page break
+ \penalty 10000
+ \ignorespaces
+ }{%
+ \the\tabular@tail
+% \addpenalty{\@secpenalty}% good place for a page break
+ \penalty \@secpenalty % good place for a page break
+ \endgroup
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% DEFAULTS: (the rest of them)
+%
+% centered name
+% overlapped section titles
+%
+% format is:
+% title employer
+% location dates
+% body
+% with everything in the left of its column
+
+\@secpenalty = -500
+\topmargin 0pt
+\headheight 0pt
+\headsep 0pt
+\textheight 9in
+\parindent 0pt
+\topmargin 0in
+\oddsidemargin 0pt
+\evensidemargin 0pt
+\marginparwidth 0pt
+\parindent 0pt
+\parskip \baselineskip
+\setcounter{secnumdepth}{0}
+\def\@listI{\leftmargin\leftmargini
+\topsep 0pt
+\parskip 0pt
+\partopsep 2pt plus 2pt
+\parsep 2pt plus 2pt
+\itemsep \parsep}
+
+\pagestyle{empty} % don't want page numbers
+
+\begin{format}
+\title{l}\employer{r}\\
+\location{l}\dates{r}\\
+\body\\
+\end{format}
+
+\let\section\@@section
+
diff --git a/resume.tex b/resume.tex
new file mode 100644
index 0000000..04eb541
--- /dev/null
+++ b/resume.tex
@@ -0,0 +1,92 @@
+\documentclass[margin]{res}
+
+\usepackage{vwcol}
+
+\begin{document}
+
+\begin{resume}
+
+\moveleft.5\hoffset\centerline{\large\bf Dustin Swan}
+\smallskip
+%\moveleft.5\hoffset\centerline{318 Thompson Rd.}
+%\moveleft.5\hoffset\centerline{Moriarty, NM 87035}
+\moveleft.5\hoffset\centerline{(312) 608-2957}
+\smallskip
+\moveleft.5\hoffset\centerline{dustinswan@gmail.com}
+
+\parshape 1 -\sectionwidth \resumewidth
+Passionate Software Engineer with eight years of experience architecting,
+implementing, and shipping secure, cross-platform applications. Proficient in
+functional and object-oriented programming paradigms; delivering clean,
+maintainable codebases; utilizing modern, full-stack, web technologies.
+
+\section{LANGUAGES \& APIS}
+{\sl Expert in} JavaScript ES6, HTML5, CSS, AJAX, REST, WebRTC, WebSockets \\
+{\sl Comfortable with} Elm, Haskell, Python, Ruby, PHP, Lisp, Bash \\
+{\sl Past experience with} C, C++, Objective C, Java
+
+\section{LIBRARIES \& FRAMEWORKS}
+jQuery, Underscore, React, RxJS, AngularJS, Grunt, Jasmine, \\
+Sass, SCSS, Rails, Node.js, Express, Sails.js, Qt, PhoneGap
+
+\section{SOFTWARE \& SERVICES}
+\begin{vwcol}[widths={0.2,0.8}, sep=.1cm, justify=flush,rule=0pt,indent=1em,lines=4]
+{\sl OS \& Tools:} \\
+{\sl Databases:} \\
+{\sl Version Control:} \\
+{\sl Services:} \\
+Linux, Mac OS X, Vim, Emacs, Xcode, Eclipse, Microsoft Office \\
+MongoDB, MySQL, PostgreSQL, SQLite, ODBC \\
+Git, Perforce, Subversion \\
+Github, Heroku, AWS
+\end{vwcol}
+
+\section{EXPERIENCE}
+{\sl Software Engineer} \hfill 2009 - Present \\
+\smallskip
+{\bf IOCOM Integrated Communications, Chicago, IL} \\
+Worked closely with developers and QA engineers to create a cross-platform, desktop and mobile, web-based video conferencing application suite.
+\smallskip
+
+\begin{itemize} \itemsep -1pt
+\item Efficiently designed \& developed the cross-platform video conferencing JavaScript application and UI
+\item Programming \& maintained the iOS PhoneGap application
+\item Developed \& maintained the PHP server management web pages
+\item Implemented a WebRTC audio \& video web application and JavaScript API
+\item Created an in-house JavaScript framework for automated application testing
+\item Continually refactored existing codebase for maintainability and
+ reliability, utilizing modern practices and standards
+\end{itemize}
+
+{\sl Validation Engineer} \hfill 2007 - 2009 \\
+{\bf Abbott Laboratories, Abbott Park, IL}
+\smallskip
+
+\begin{itemize} \itemsep -1pt
+\item Managed projects and assembled cross-functional teams to construct change plans and assess product impact
+\item Authored changes to testing documentation and product design records
+\item Processed changes to quality system and product documents to comply with medical device regulatory requirements
+\item Programmed automated testing control procedures using the Laboratory Information Management System (LIMS)
+\end{itemize}
+
+\section{EDUCATION}
+{\sl Bachelor of Science} \hfill 2007 \\
+University of Illinois at Chicago (UIC), Chicago, IL \\
+Major: Bioengineering \\
+Minors: Computer Science \& Mathematics
+
+% \section{COURSEWORK}
+%
+% \begin{vwcol}[widths={0.2,0.8}, sep=.1cm, justify=flush,rule=0pt,indent=1em,lines=6]
+% {\sl Math:} \\
+% {\sl Comp. Sci.:} \\
+% {\sl Electronics:} \\ \\
+% {\sl Biology:} \\ \\
+% Calculus I - IV, Differential Equations, Linear Algebra \\
+% Algorithms, Languages and Automata, Data Structures \\
+% Pattern Recognition, Signal Analysis, Discrete Continuous Signals \& Systems \\
+% Modeling Physiological Data \& Systems, Bioinformatics, Biostatistics, Bioinstrumentation, Genetics, Biomaterials
+% \end{vwcol}
+
+\end{resume}
+\end{document}
\ No newline at end of file
diff --git a/style.less b/style.less
deleted file mode 100644
index 27640af..0000000
--- a/style.less
+++ /dev/null
@@ -1,78 +0,0 @@
-@font-fam: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", sans-serif;
-
-body {
- padding: 0;
- font-family: @font-fam;
- font-size: 12px;
- margin: 10px;
-}
-a {
- text-decoration: none; color: #000;
-}
-a:hover {
- background-color: #ecc;
-}
-ul {
- padding: 0; margin: 0;
- list-style-type: none;
-}
-li:before {
- content: "- ";
-}
-#name {
- text-align: center;
- font-size: 25px;
-}
-#contact_info {
- text-align: center;
- padding: 3px;
-}
-h1 {
- font: inherit;
- color: #000;
- font-size: 21px;
- padding: 1px 10px;
- margin: -3px -10px 2px;
- border-bottom: 1px solid #000;
-}
-h2 {
- font: inherit;
- float: left;
- text-decoration: underline;
- padding: 0px;
- margin: 0;
-}
-.section {
- padding: 10px 20px;
-}
-.category {
- display: inline-block;
- width: 200px;
-}
-.when {
- float: right;
-}
-.location {
- float: left;
-}
-.location:before {
- content: ", ";
-}
-ul, li, .position {
- clear: both;
-}
-.position {
- font-style: italic;
-}
-.left_box {
- float: left;
-}
-.right_box {
- margin-left: 160px;
-}
-.list_left {
- display: inline;
-}
-.job {
- padding-bottom: 10px;
-}