% Joseph Re's Resume
% Created: 20 Oct 2006
% Last Modified: 20 Oct 2006

\documentclass[10pt,oneside]{article}
\usepackage{geometry}
\usepackage[T1]{fontenc}

\pagestyle{empty}
\geometry{letterpaper,tmargin=.7in,bmargin=.7in,lmargin=1in,rmargin=1in,headheight=0in,headsep=0in,footskip=.2in}

\setlength{\parindent}{0in}
\setlength{\parskip}{0in}
\setlength{\itemsep}{0in}
\setlength{\topsep}{0in}
\setlength{\tabcolsep}{0in}

% Name and contact information
\newcommand{\name}{Joseph M. Re}
\newcommand{\addr}{1010 Stoughton Ave, Urbana, IL 61801}
\newcommand{\phone}{(630) 220-3095}
\newcommand{\email}{jre2@uiuc.edu}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% New commands and environments
% This defines how the name looks
\newcommand{\bigname}[1]{
   \begin{center}\fontfamily{phv}\selectfont\Huge\scshape#1\end{center}
}
% A ressection is a main section (<H1>Section</H1>)
   \newenvironment{ressection}[1]{
      \vspace{4pt}
      {\fontfamily{phv}\selectfont\Large#1}
      \begin{itemize}
      \vspace{3pt}
   }{
      \end{itemize}
   }
% A resitem is a simple list element in a ressection (first level)
   \newcommand{\resitem}[1]{
      \vspace{-4pt}
      \item \begin{flushleft} #1 \end{flushleft}
   }
% A ressubitem is a simple list element in anything but a ressection (second level)
   \newcommand{\ressubitem}[1]{
      \vspace{-1pt}
      \item \begin{flushleft} #1 \end{flushleft}
   }
% A resbigitem is a complex list element for stuff like jobs and education:
%  Arg 1: Name of company or university
%  Arg 2: Location
%  Arg 3: Title and/or date range
\newcommand{\resbigitem}[3]{
   \vspace{-5pt}
   \item
      \textbf{#1}---#2 \\
      \textit{#3}
}
% This is a list that comes with a resbigitem
\newenvironment{ressubsec}[3]{
   \resbigitem{#1}{#2}{#3}
   \vspace{-3pt}
   \begin{itemize}
}{
   \end{itemize}
}
% This is a simple sublist
\newenvironment{reslist}[1]{
   \resitem{\textbf{#1}}
   \vspace{-5pt}
   \begin{itemize}
}{
   \end{itemize}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Now for the actual document:
\begin{document}
\fontfamily{ppl} \selectfont
% Name with horizontal rule
\bigname{\name}
\vspace{-8pt} \rule{\textwidth}{1pt}
\vspace{-1pt} {\small\itshape \addr \hfill \phone; \email}
\vspace{8 pt}
%%%%%%%%%%%%%%%%%%%%%%%%

\begin{ressection}{Education}
   \resbigitem{University of Illinois}{Urbana-Champaign, IL}{Majoring in Mathematics and Computer Science}
   \begin{list}{}
      \item{GPA: 2.89 - Accepted at age 16 and Graduating in 2009}
   \end{list}
   \resbigitem{Illinois Mathematics and Science Academy, High School}{Aurora, IL}{Graduated in 2005}
\end{ressection}
%%%%%%%%%%%%%%%%%%%%%%%%
\begin{ressection}{Experience}
   \resbigitem{Morgan Stanley Internship}{New York, NY}{Application Infrastructure Programmer: June 2007 - August 2007}
   \begin{list}{}
      \item Worked on the Trade Plant Manager project to recreate the paths of every order as it spiders throughout the system for QA troubleshooting and emergency order backtracking. Also provides data for the Puma project which measures and predicts loads in order to detect bottlenecks and overloaded servers before system failure.
      \item Technology used: Perl, Python, Haskell, Perforce, AFS
   \end{list}

   %\resbigitem{Morgan Stanley Internship}{New York, NY}{Application Infrastructure Programmer: June 2008 - August 2008}
   \textit{Application Infrastructure Programmer: June 2008 - August 2008}
   \begin{list}{}
      \item Designed and implemented an improved method for defining the operational semantics of the iDeal server.
      This was achieved by creating a domain specific language for defining a series of state machines with inheritance which could be verified by static type checking and additionally be mechanically transformed into human readable flow charts.
      \item Technology used: Haskell, Maude, C++, Perl, Python, Graphviz, Perforce, AFS
   \end{list}

   \resbigitem{ACM Reflections|Projections Mechmania}{Champaign, IL}{Game Programmer: April 2006 - October 2008}
   \begin{list}{}
      \item Worked on the codebases for the MechMania annual C++ AI Programming contest.
      Lead developer of the 2D and 3D visualizers in 2006.
      Designed and implemented server side logic, network protocol, and Haskell client in 2007 and 2008.
      Using code coverage tools (HPC), automatically generated unit tests (QuickCheck), and safe multithreading via STM to improve correctness and performance.
      \item Technology used: Haskell, Python, C++, QuickCheck, HPC, Ogre3D, CEGUI, PyGame
   \end{list}
   \end{ressection}
%%%%%%%%%%%%%%%%%%%%%%%%
\begin{ressection}{Skills}

   \resitem{\textbf{Computer Languages:} Haskell, Python, C/C++, Perl, Java, \LaTeX, Bash. Familiar with OCaml, Maude, Lisp}
   %\begin{reslist}{Computer Languages:}
   %\ressubitem{Proficient in Haskell, Python, C/C++, Perl, Java, \LaTeX, Bash}
   %\ressubitem{Familiar with OCaml, Maude, Lisp}
   %\end{reslist}

   \resitem{\textbf{Technologies:} Samba, Vim, Darcs/Git/Perforce/SVN/CVS, Make, OpenSSH, Apache, Pygame}
   %\begin{reslist}{Technologies:}
   %\ressubitem{Samba, Vim, Darcs/Git/Perforce/SVN/CVS, Make, OpenSSH, Apache, Pygame}
   %\end{reslist}

   \resitem{\textbf{Subjects:} Distributed systems (actor model, software transactional memory), formal methods and functional languages, basic systems programming, graphics programming (SDL)}
   %\begin{reslist}{Subjects:}
   %   \ressubitem{Distributed systems (Actor Model, Software Transactional Memory), formal methods and functional languages, basic systems programming, graphics programming (SDL)}
   %\end{reslist}

   \resitem{\textbf{Operating Systems:} Linux, Windows 9x/2k/XP}
\end{ressection}
%%%%%%%%%%%%%%%%%%%%%%%%
\begin{ressection}{Achievements and Activities}

   \resitem{Awarded Eagle Scout Rank at age of 12, Boy Scouts of America (2002).}
   \resitem{Received Key of the Village of Island Lake (2002).}
   \resitem{Awarded 6th place in international American Computer Science League All-Stars competition (2005)}
   \resitem{Active member of SIGPLAN (Special Interest Group for Programming Languages) (2005-2009):}
   \begin{list}{}
      \item Give presentations on lambda calculus and creating a simply typed lambda calculus type checker in Maude, stackless python, and multithreaded programming via the actor model and STM.
   \end{list}
   %\resitem{Active member of ACM@UIUC:}
   %\begin{list}{}
   %   \item Reflections|Projections conference staff
   %   \item Chair of SigNet
   %   \item Member of Executive Board
   %\end{list}

\end{ressection}

\end{document}
