diff --git a/Resume.pdf b/Resume.pdf deleted file mode 100644 index 24eabb5..0000000 Binary files a/Resume.pdf and /dev/null differ diff --git a/Resume.tex b/Resume.tex index af034cb..9fd9006 100644 --- a/Resume.tex +++ b/Resume.tex @@ -1,107 +1,94 @@ -% LaTeX file for resume -% This file uses the resume document class (res.cls) -\documentclass[margin]{res} -\usepackage{xcolor} -\usepackage{hyperref} +%!TEX TS-program = xelatex +%!TEX encoding = UTF-8 Unicode +% Awesome CV LaTeX Template +% +% This template has been downloaded from: +% https://github.com/posquit0/Awesome-CV +% +% Author: +% Claud D. Park +% http://www.posquit0.com +% +% Template license: +% CC BY-SA 4.0 (https://creativecommons.org/licenses/by-sa/4.0/) +% -\hypersetup -{ - colorlinks=true, - linkbordercolor=, - linkcolor=blue -} -\topmargin=-0.5in % start text higher on the page -\setlength{\textheight}{10in} % increase text height to fit resume on 1 page +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Configuration +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Themes: Awesome-CV +\documentclass[11pt, letterpaper]{awesome-cv} -\usepackage{fontspec} - \defaultfontfeatures{Ligatures=TeX} - \setmainfont{Baskerville} +%%% Override a directory location for fonts(default: 'fonts/') +\fontdir[fonts/] -\begin{document} -\name{VASILI SVIRIDOV} -\address{ \#304 - 6742 Station Hill Ct \\ Burnaby, BC, V3N4V2\\Canada } -\begin{resume} +%%% Configure a directory location for sections +\newcommand*{\sectiondir}{resume/} -\section{CONTACT ME} - \begin{ncolumn}{2} - \href{mailto:vasili@sviridov.ca}{vasili@sviridov.ca} & +1 (604) 767 7735 \\ - \href{http://vasi.li}{http://vasi.li} & \href{http://twitter.com/vsviridov}{@vsviridov} - \end{ncolumn} - -\section{PROJECTS} - \section{2011 --- 2012\\\href{http://www.rbcgam.com/gam/}{RBC GAM}} - Was engaged in a Senior Web Developer role in a small team to design, build, and support a set of frameworks, utilizing ASP.Net MVC and HTML5. Built several products with the frameworks mentioned, including a user management system, a framework for ACL, and several business applications. Heavily utilized Twitter Bootstrap, jQuery, jQueryUI frameworks along with custom javascript code to handle complex data entry scenarios, including ajax validation and processing. Built a scheduler application with web interface, that allowed users to set up various data downloads from external vendors. It featured a simple to use UI and a system of notifications via email. Another application was a fund performance simulator, for which I have developed a UI, that allowed people to set up various parameters of the simulation. It featured a complex matrix of interdependent controls where changing a parameter would affect options for other controls. +%%% Override color +% Awesome Colors: awesome-emerald, awesome-skyblue, awesome-red, awesome-pink, awesome-orange +% awesome-nephritis, awesome-concrete, awesome-darknight +%% Color for highlight +% Define your custom color if you don't like awesome colors +\colorlet{awesome}{awesome-red} +%\definecolor{awesome}{HTML}{CA63A8} +%% Colors for text +%\definecolor{darktext}{HTML}{414141} +%\definecolor{text}{HTML}{414141} +%\definecolor{graytext}{HTML}{414141} +%\definecolor{lighttext}{HTML}{414141} - \section{2008 --- 2011\\\href{http://positrace.com}{Global Fleet Management}} - Designed and wrote large portions for a GPS tracking SaaS platform, including, but not limited to, fully dynamic map interface powered by Ajax and Web Sockets to display information about hundreds of vehicles in real time, using JavaScript, MooTools framework and Google Maps API. Wrote most of the client facing forms and also a back office application for internal use by sales and support personnel. Developed a custom ORM solution based on MySQL. Wrote Node.JS backend to integrate the web site with our RabbitMQ backend, passing thousands of location and state messages per second. Wrote a mobile web site using ASP.MVC and jQuery mobile. +%%% Override a separator for social informations in header(default: ' | ') +%\headersocialsep[\quad\textbar\quad] - \section{2006 --- 2007\\\href{https://wwwphn.com/}{Phillips,\\Hager \& North}} - Worked as a consultant for an investment management firm, helping them to build a custom solution to provide clients with pricing and trading controls utilizing the DotNetNuke CMS.\\ - \section{2005 --- 2006\\\href{http://cougartg.com}{Cougar TG}} - Worked on an e-commerce system for a Vancouver software manufacturer company. Developed visuals and business logic to perform various up-sells, cross-sells and promotions, using vanilla ASP.Net Web Forms and MS SQL Server. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% 3rd party packages +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Needed to divide into several files +\usepackage{import} + + +\setbool{acvSectionColorHighlight}{false} +\photo[circle,noedge,left]{mug.png} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Personal Data +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Essentials +\name{Vasili}{Sviridov} +\address{1904 - 5885 Olive Ave., Burnaby, BC, Canada, V5H 4N8} +\mobile{+1 (604) 767 7735} +%%% Social +\email{vasili@sviridov.ca} +\homepage{vasi.li} +\github{vsviridov} +\gitlab{vsviridov} +\linkedin{vasilisviridov} +%%% Optionals +\position{Software Engineer}%%%{\enskip\cdotp\enskip} +\quote{"I don't always accidentally, but when I do -- I accidentally the whole thing."} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Content +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Make a footer for CV with three arguments(,
, ) +\makecvfooter + {\today} + {\href{http://vasi.li/}{Vasili Sviridov}} + {\thepage} + +\begin{document} +%%% Make a header for CV with personal data +\makecvheader + +%%% Import contents +\import{\sectiondir}{01-summary.tex} +\import{\sectiondir}{02-education.tex} +\import{\sectiondir}{03-experience.tex} +\import{\sectiondir}{04-mentoring.tex} +\import{\sectiondir}{05-misc.tex} -\section{STACK} - \normalsize{\section{Languages}} - \itemsep -2pt - \begin{itemize} - \item C\#, JavaScript, Scala, PHP - \end{itemize} - \normalsize{\section{Markup \& FrontEnd}} - \itemsep -2pt - \begin{itemize} - \item HTML5 - \item CSS, LESS - \item Bootstrap - \item jQuery, jQMobile, MooTools, WebSockets - \item WPF / Silverlight - \item \LaTeX - \end{itemize} - \normalsize{\section{Backend}} - \begin{itemize} - \item IIS / Apache / Nginx - \item CouchDB / Riak - \item RabbitMQ - \item Node.js - \end{itemize} - \normalsize{\section{DevOps}} - \begin{itemize} - \item GIT / SVN - \item Trac / Indefero / Bugzilla - \item Jenkins, CruiseControl.Net - \end{itemize} -\newpage -\section {INTERESTS} - \normalsize{\section{Natural Languages}} - \begin{itemize} - \item Japanese - \item Esperanto - \end{itemize} - \normalsize{\section{Computer Languages}} - \begin{itemize} - \item Haskell - \item F\# - \item Erlang - \end{itemize} - \normalsize{\section{Frameworks \& Technologies}} - \begin{itemize} - \item FubuMVC - \item Play Framework - \end{itemize} - \section{Misc} - \begin{itemize} - \item Fork this resume on \href{https://github.com/vsviridov/resume}{GitHub} :) - \item \href{http://ca.linkedin.com/in/vasilisviridov/}{My LinkedIn Profile} - \end{itemize} -\end{resume} \end{document} - - - - - - - - - diff --git a/awesome-cv.cls b/awesome-cv.cls new file mode 100644 index 0000000..d5fc84b --- /dev/null +++ b/awesome-cv.cls @@ -0,0 +1,703 @@ +%% Start of file `awesome-cv.cls'. +% Awesome CV Class File +% +% This class has been downloaded from: +% https://github.com/posquit0/Awesome-CV +% +% Author: +% Claud D. Park +% http://www.posquit0.com +% +% Notes: +% 1) This class file defines the structure and layout of the template file (cv.tex, resume.tex). +% 2) It has been written in such a way that under most circumstances you +% should not need to edit it. +% +% Class license: +% LPPL v1.3c (http://www.latex-project.org/lppl) +% + + +%------------------------------------------------------------------------------- +% Identification +%------------------------------------------------------------------------------- +\ProvidesClass{awesome-cv}[2017/02/05 v1.6.1 Awesome Curriculum Vitae Class] +\NeedsTeXFormat{LaTeX2e} + + +%------------------------------------------------------------------------------- +% Class options +% +% (need to be done before the external package loading, for example because +% we need \paperwidth, \paperheight and \@ptsize to be defined before loading +% geometry and fancyhdr) +%------------------------------------------------------------------------------- +% Options for draft or final +\DeclareOption{draft}{\setlength\overfullrule{5pt}} +\DeclareOption{final}{\setlength\overfullrule{0pt}} +% Inherit options of article +\DeclareOption*{% + \PassOptionsToClass{\CurrentOption}{article} +} +\ProcessOptions\relax +\LoadClass{article} + + +%------------------------------------------------------------------------------- +% 3rd party packages +%------------------------------------------------------------------------------- +% Needed to make fixed length table +\RequirePackage{array} +% Needed to handle list environment +\RequirePackage{enumitem} +% Needed to handle text alignment +\RequirePackage{ragged2e} +% Needed to configure page layout +\RequirePackage{geometry} +% Needed to make header & footer effeciently +\RequirePackage{fancyhdr} +% Needed to manage colors +\RequirePackage{xcolor} +% Needed to use \ifxetex-\else-\fi statement +\RequirePackage{ifxetex} +% Needed to use \if-\then-\else statement +\RequirePackage{xifthen} +% Needed to use a toolbox of programming tools +\RequirePackage{etoolbox} +% Needed to change line spacing in specific environment +\RequirePackage{setspace} +% Needed to manage fonts +\RequirePackage[quiet]{fontspec} +% To support LaTeX quoting style +\defaultfontfeatures{Ligatures=TeX} +% Needed to manage math fonts +\RequirePackage{unicode-math} +% Needed to use icons from font-awesome +% (https://github.com/posquit0/latex-fontawesome) +\RequirePackage{fontawesome} +\RequirePackage[default,opentype]{sourcesanspro} +% Needed for the photo ID +\RequirePackage[skins]{tcolorbox} +% Needed to deal a paragraphs +\RequirePackage{parskip} +% Needed to deal hyperlink +\RequirePackage[hidelinks,unicode]{hyperref} +\hypersetup{% + pdftitle={}, + pdfauthor={}, + pdfsubject={}, + pdfkeywords={} +} + + +%------------------------------------------------------------------------------- +% Configuration for directory locations +%------------------------------------------------------------------------------- +% Configure a directory location for fonts(default: 'fonts/') +\newcommand*{\fontdir}[1][fonts/]{\def\@fontdir{#1}} +\fontdir + + +%------------------------------------------------------------------------------- +% Configuration for layout +%------------------------------------------------------------------------------- +%% Page Layout +% Configure page margins with geometry +\geometry{left=2.0cm, top=1.5cm, right=2.0cm, bottom=2.0cm, footskip=.5cm} + +%% Header & Footer +% Set offset to each header and footer +\fancyhfoffset{0em} +% Remove head rule +\renewcommand{\headrulewidth}{0pt} +% Clear all header & footer fields +\fancyhf{} +% Enable if you want to make header or footer using fancyhdr +\pagestyle{fancy} + + +%------------------------------------------------------------------------------- +% Configuration for colors +%------------------------------------------------------------------------------- +% Gray-scale colors +\definecolor{white}{HTML}{FFFFFF} +\definecolor{black}{HTML}{000000} +\definecolor{darkgray}{HTML}{333333} +\definecolor{gray}{HTML}{5D5D5D} +\definecolor{lightgray}{HTML}{999999} +% Basic colors +\definecolor{green}{HTML}{C2E15F} +\definecolor{orange}{HTML}{FDA333} +\definecolor{purple}{HTML}{D3A4F9} +\definecolor{red}{HTML}{FB4485} +\definecolor{blue}{HTML}{6CE0F1} +% Text colors +\definecolor{darktext}{HTML}{414141} +\colorlet{text}{darkgray} +\colorlet{graytext}{gray} +\colorlet{lighttext}{lightgray} +% Awesome colors +\definecolor{awesome-emerald}{HTML}{00A388} +\definecolor{awesome-skyblue}{HTML}{0395DE} +\definecolor{awesome-red}{HTML}{DC3522} +\definecolor{awesome-pink}{HTML}{EF4089} +\definecolor{awesome-orange}{HTML}{FF6138} +\definecolor{awesome-nephritis}{HTML}{27AE60} +\definecolor{awesome-concrete}{HTML}{95A5A6} +\definecolor{awesome-darknight}{HTML}{131A28} +\colorlet{awesome}{awesome-red} + +% Boolean value to switch section color highlighting +\newbool{acvSectionColorHighlight} +\setbool{acvSectionColorHighlight}{true} + +% Awesome section color +\def\@sectioncolor#1#2#3{% + \ifbool{acvSectionColorHighlight}{{\color{awesome}#1#2#3}}{#1#2#3}% +} + + +%------------------------------------------------------------------------------- +% Configuration for fonts +%------------------------------------------------------------------------------- +% Set the FontAwesome font to be up-to-date. +\newfontfamily\FA[Path=\@fontdir]{FontAwesome} +% Set font for header (default is Roboto) +\newfontfamily\headerfont[ + Path=\@fontdir, + UprightFont=*-Regular, + ItalicFont=*-Italic, + BoldFont=*-Bold, + BoldItalicFont=*-BoldItalic, +]{Roboto} + +\newfontfamily\headerfontlight[ + Path=\@fontdir, + UprightFont=*-Thin, + ItalicFont=*-ThinItalic, + BoldFont=*-Medium, + BoldItalicFont=*-MediumItalic, +]{Roboto} + +\newcommand*{\footerfont}{\sourcesanspro} +\newcommand*{\bodyfont}{\sourcesanspro} +\newcommand*{\bodyfontlight}{\sourcesansprolight} + +%------------------------------------------------------------------------------- +% Configuration for styles +%------------------------------------------------------------------------------- +% Configure styles for each CV elements +% For fundamental structures +\newcommand*{\headerfirstnamestyle}[1]{{\fontsize{32pt}{1em}\headerfontlight\color{graytext} #1}} +\newcommand*{\headerlastnamestyle}[1]{{\fontsize{32pt}{1em}\headerfont\bfseries\color{text} #1}} +\newcommand*{\headerpositionstyle}[1]{{\fontsize{7.6pt}{1em}\bodyfont\scshape\color{awesome} #1}} +\newcommand*{\headeraddressstyle}[1]{{\fontsize{8pt}{1em}\headerfont\itshape\color{lighttext} #1}} +\newcommand*{\headersocialstyle}[1]{{\fontsize{6.8pt}{1em}\headerfont\color{text} #1}} +\newcommand*{\headerquotestyle}[1]{{\fontsize{9pt}{1em}\bodyfont\itshape\color{darktext} #1}} +\newcommand*{\footerstyle}[1]{{\fontsize{8pt}{1em}\footerfont\scshape\color{lighttext} #1}} +\newcommand*{\sectionstyle}[1]{{\fontsize{16pt}{1em}\bodyfont\bfseries\color{text}\@sectioncolor #1}} +\newcommand*{\subsectionstyle}[1]{{\fontsize{12pt}{1em}\bodyfont\scshape\textcolor{text}{#1}}} +\newcommand*{\paragraphstyle}{\fontsize{9pt}{1em}\bodyfontlight\upshape\color{text}} + +% For elements of entry +\newcommand*{\entrytitlestyle}[1]{{\fontsize{10pt}{1em}\bodyfont\bfseries\color{darktext} #1}} +\newcommand*{\entrypositionstyle}[1]{{\fontsize{8pt}{1em}\bodyfont\scshape\color{graytext} #1}} +\newcommand*{\entrydatestyle}[1]{{\fontsize{8pt}{1em}\bodyfontlight\slshape\color{graytext} #1}} +\newcommand*{\entrylocationstyle}[1]{{\fontsize{9pt}{1em}\bodyfontlight\slshape\color{awesome} #1}} +\newcommand*{\descriptionstyle}[1]{{\fontsize{9pt}{1em}\bodyfontlight\upshape\color{text} #1}} + +% For elements of subentry +\newcommand*{\subentrytitlestyle}[1]{{\fontsize{8pt}{1em}\bodyfont\mdseries\color{graytext} #1}} +\newcommand*{\subentrypositionstyle}[1]{{\fontsize{7pt}{1em}\bodyfont\scshape\color{graytext} #1}} +\newcommand*{\subentrydatestyle}[1]{{\fontsize{7pt}{1em}\bodyfontlight\slshape\color{graytext} #1}} +\newcommand*{\subentrylocationstyle}[1]{{\fontsize{7pt}{1em}\bodyfontlight\slshape\color{awesome} #1}} +\newcommand*{\subdescriptionstyle}[1]{{\fontsize{8pt}{1em}\bodyfontlight\upshape\color{text} #1}} + +% For elements of honor +\newcommand*{\honortitlestyle}[1]{{\fontsize{9pt}{1em}\bodyfont\color{graytext} #1}} +\newcommand*{\honorpositionstyle}[1]{{\fontsize{9pt}{1em}\bodyfont\bfseries\color{darktext} #1}} +\newcommand*{\honordatestyle}[1]{{\fontsize{9pt}{1em}\bodyfont\color{graytext} #1}} +\newcommand*{\honorlocationstyle}[1]{{\fontsize{9pt}{1em}\bodyfontlight\slshape\color{awesome} #1}} + +% For elements of skill +\newcommand*{\skilltypestyle}[1]{{\fontsize{10pt}{1em}\bodyfont\bfseries\color{darktext} #1}} +\newcommand*{\skillsetstyle}[1]{{\fontsize{9pt}{1em}\bodyfontlight\color{text} #1}} + +% For elements of the cover letter +\newcommand*{\lettersectionstyle}[1]{{\fontsize{14pt}{1em}\bodyfont\bfseries\color{text}\@sectioncolor #1}} +\newcommand*{\recipientaddressstyle}[1]{{\fontsize{9pt}{1em}\bodyfont\scshape\color{graytext} #1}} +\newcommand*{\recipienttitlestyle}[1]{{\fontsize{11pt}{1em}\bodyfont\bfseries\color{darktext} #1}} +\newcommand*{\lettertitlestyle}[1]{{\fontsize{10pt}{1em}\bodyfontlight\bfseries\color{darktext} \underline{#1}}} +\newcommand*{\letterdatestyle}[1]{{\fontsize{9pt}{1em}\bodyfontlight\slshape\color{graytext} #1}} +\newcommand*{\lettertextstyle}{\fontsize{10pt}{1.4em}\bodyfontlight\upshape\color{graytext}} +\newcommand*{\letternamestyle}[1]{{\fontsize{10pt}{1em}\bodyfont\bfseries\color{darktext} #1}} +\newcommand*{\letterenclosurestyle}[1]{{\fontsize{10pt}{1em}\bodyfontlight\slshape\color{lighttext} #1}} + + +%------------------------------------------------------------------------------- +% Commands for personal information +%------------------------------------------------------------------------------- +% Define photo ID +% Usage: \photo[circle|rectangle,edge|noedge,left|right]{} +\newcommand{\photo}[2][circle,edge,left]{% + \def\@photo{#2} + \@for\tmp:=#1\do{% + \ifthenelse{\equal{\tmp}{circle} \or \equal{\tmp}{rectangle}}% + {\let\@photoshape\tmp}{}% + \ifthenelse{\equal{\tmp}{edge} \or \equal{\tmp}{noedge}}% + {\let\@photoedge\tmp}{}% + \ifthenelse{\equal{\tmp}{left} \or \equal{\tmp}{right}}% + {\let\@photoalign\tmp}{}% + }% +} +\def\@photoshape{circle} +\def\@photoedge{edge} +\def\@photoalign{left} + +% Define writer's name +% Usage: \name{}{} +% Usage: \firstname{} +% Usage: \lastname{} +% Usage: \familyname{} +\newcommand*{\name}[2]{\def\@firstname{#1}\def\@lastname{#2}} +\newcommand*{\firstname}[1]{\def\@firstname{#1}} +\newcommand*{\lastname}[1]{\def\@lastname{#1}} +\newcommand*{\familyname}[1]{\def\@lastname{#1}} +\def\@familyname{\@lastname} + +% Define writer's address +% Usage: \address{
} +\newcommand*{\address}[1]{\def\@address{#1}} + +% Define writer's position +% Usage: \name{} +\newcommand*{\position}[1]{\def\@position{#1}} + +% Defines writer's mobile (optional) +% Usage: \mobile{} +\newcommand*{\mobile}[1]{\def\@mobile{#1}} + +% Defines writer's email (optional) +% Usage: \email{} +\newcommand*{\email}[1]{\def\@email{#1}} + +% Defines writer's homepage (optional) +% Usage: \homepage{} +\newcommand*{\homepage}[1]{\def\@homepage{#1}} + +% Defines writer's github (optional) +% Usage: \github{} +\newcommand*{\github}[1]{\def\@github{#1}} + +% Defines writer's gitlab (optional) +% Usage: \gitlab{} +\newcommand*{\gitlab}[1]{\def\@gitlab{#1}} + +% Defines writer's stackoverflow profile (optional) +% Usage: \stackoverflow{}{} +% e.g.https://stackoverflow.com/users/123456/sam-smith +% would be \stackoverflow{123456}{sam-smith} +\newcommand*{\stackoverflow}[2]{\def\@stackoverflowid{#1}\def\@stackoverflowname{#2}} + +% Defines writer's linked-in (optional) +% Usage: \linkedin{} +\newcommand*{\linkedin}[1]{\def\@linkedin{#1}} + +% Usage: \twitter{} +\newcommand*{\twitter}[1]{\def\@twitter{#1}} + +% Defines writer's skype (optional) +% Usage: \skype{} +\newcommand*{\skype}[1]{\def\@skype{#1}} + +% Defines writer's reddit (optional) +% Usage: \reddit{} +\newcommand*{\reddit}[1]{\def\@reddit{#1}} + +% Defines writer's xing (optional) +% Usage: \xing{} +\newcommand*{\xing}[1]{\def\@xing{#1}} + +% Defines writer's twitter (optional) +% Defines writer's extra informations (optional) +% Usage: \extrainfo{} +\newcommand*{\extrainfo}[1]{\def\@extrainfo{#1}} + +% Defines writer's quote (optional) +% Usage: \quote{} +\renewcommand*{\quote}[1]{\def\@quote{#1}} + +% Defines recipient's information (cover letter only) +% Usage: \recipient{}{} +% Usage: \recipientname{} +% Usage: \recipientaddress{} +\newcommand*{\recipient}[2]{\def\@recipientname{#1}\def\@recipientaddress{#2}} +\newcommand*{\recipientname}[1]{\def\@recipientname{#1}} +\newcommand*{\recipientaddress}[1]{\def\@recipientaddress{#1}} + +% Defines the title for letter (cover letter only, optional) +% Usage: \lettertitle{} +\newcommand*{\lettertitle}[1]{\def\@lettertitle{#1}} + +% Defines the date for letter (cover letter only) +% Usage: \letterdate{<date>} +\newcommand*{\letterdate}[1]{\def\@letterdate{#1}} + +% Defines a message of opening for letter (cover letter only) +% Usage: \letteropening{<message>} +\newcommand*{\letteropening}[1]{\def\@letteropening{#1}} + +% Defines a message of closing for letter (cover letter only) +% Usage: \letterclosing{<message>} +\newcommand*{\letterclosing}[1]{\def\@letterclosing{#1}} + +% Defines an enclosure for letter (cover letter only, optional) +% Usage: \letterenclosure[<enclosure name>]{<enclosure>} +\newcommand*{\letterenclname}[1][Enclosure]{\def\@letterenclname{#1}} +\newcommand*{\letterenclosure}[2][]{% + % if an optional argument is provided, use it to redefine \enclname + \ifthenelse{\equal{#1}{}}{}{\def\@letterenclname{#1}} + \def\@letterenclosure{#2} +} + + +%------------------------------------------------------------------------------- +% Commands for extra +%------------------------------------------------------------------------------- +%% Define helper macros a user can change easily +% Header +\newcommand{\acvHeaderNameDelim}{\space} +\newcommand{\acvHeaderAfterNameSkip}{.4mm} +\newcommand{\acvHeaderAfterPositionSkip}{.4mm} +\newcommand{\acvHeaderAfterAddressSkip}{-.5mm} +\newcommand{\acvHeaderIconSep}{\space} +\newcommand{\acvHeaderSocialSep}{\quad\textbar\quad} +\newcommand{\acvHeaderAfterSocialSkip}{6mm} +\newcommand{\acvHeaderAfterQuoteSkip}{5mm} + +% Others +\newcommand{\acvSectionTopSkip}{3mm} +\newcommand{\acvSectionContentTopSkip}{2.5mm} + + +%------------------------------------------------------------------------------- +% Commands for utilities +%------------------------------------------------------------------------------- +% Use to align an element of tabular table +\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}} +\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}} +\newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}m{#1}} + +% Use to draw horizontal line with specific thickness +\def\vhrulefill#1{\leavevmode\leaders\hrule\@height#1\hfill \kern\z@} + +% Use to execute conditional statements by checking empty string +\newcommand*{\ifempty}[3]{\ifthenelse{\isempty{#1}}{#2}{#3}} + + +%------------------------------------------------------------------------------- +% Commands for elements of CV structure +%------------------------------------------------------------------------------- +% Define a header for CV +% Usage: \makecvheader +\newcommand*{\makecvheader}[1][C]{% + \newcommand*{\drawphoto}{% + \ifthenelse{\isundefined{\@photo}}{}{% + \newlength{\photodim} + \ifthenelse{\equal{\@photoshape}{circle}}% + {\setlength{\photodim}{1.3cm}}% + {\setlength{\photodim}{1.8cm}}% + \ifthenelse{\equal{\@photoedge}{edge}}% + {\def\@photoborder{darkgray}}% + {\def\@photoborder{none}}% + \begin{tikzpicture}% + \node[\@photoshape, draw=\@photoborder, line width=0.3mm, inner sep=\photodim, fill overzoom image=\@photo] () {}; + \end{tikzpicture} + }% + } + \newlength{\headertextwidth} + \newlength{\headerphotowidth} + \ifthenelse{\isundefined{\@photo}}{ + \setlength{\headertextwidth}{\textwidth} + \setlength{\headerphotowidth}{0cm} + }{% + \setlength{\headertextwidth}{0.76\textwidth} + \setlength{\headerphotowidth}{0.24\textwidth} + }% + \begin{minipage}[c]{\headerphotowidth}% + \ifthenelse{\equal{\@photoalign}{left}}{\raggedright\drawphoto}{} + \end{minipage} + \begin{minipage}[c]{\headertextwidth} + \ifthenelse{\equal{#1}{L}}{\raggedright}{\ifthenelse{\equal{#1}{R}}{\raggedleft}{\centering}} + \headerfirstnamestyle{\@firstname}\headerlastnamestyle{{}\acvHeaderNameDelim\@lastname}% + \\[\acvHeaderAfterNameSkip]% + \ifthenelse{\isundefined{\@position}}{}{\headerpositionstyle{\@position\\[\acvHeaderAfterPositionSkip]}}% + \ifthenelse{\isundefined{\@address}}{}{\headeraddressstyle{\@address\\[\acvHeaderAfterAddressSkip]}}% + \headersocialstyle{% + \newbool{isstart}% + \setbool{isstart}{true}% + \ifthenelse{\isundefined{\@mobile}}% + {}% + {% + \href{tel:\@mobile}{\faMobile\acvHeaderIconSep\@mobile}% + \setbool{isstart}{false}% + }% + \ifthenelse{\isundefined{\@email}}% + {}% + {% + \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% + \href{mailto:\@email}{\faEnvelope\acvHeaderIconSep\@email}% + }% + \ifthenelse{\isundefined{\@homepage}}% + {}% + {% + \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% + \href{http://\@homepage}{\faHome\acvHeaderIconSep\@homepage}% + }% + \ifthenelse{\isundefined{\@github}}% + {}% + {% + \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% + \href{https://github.com/\@github}{\faGithubSquare\acvHeaderIconSep\@github}% + }% + \ifthenelse{\isundefined{\@gitlab}}% + {}% + {% + \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% + \href{https://gitlab.com/\@gitlab}{\faGitlab\acvHeaderIconSep\@gitlab}% + }% + \ifthenelse{\isundefined{\@stackoverflowid}}% + {}% + {% + \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% + \href{https://stackoverflow.com/users/\@stackoverflowid}{\faStackOverflow\acvHeaderIconSep\@stackoverflowname}% + }% + \ifthenelse{\isundefined{\@linkedin}}% + {}% + {% + \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% + \href{https://www.linkedin.com/in/\@linkedin}{\faLinkedinSquare\acvHeaderIconSep\@linkedin}% + }% + \ifthenelse{\isundefined{\@twitter}}% + {}% + {% + \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% + \href{https://twitter.com/\@twitter}{\faTwitter\acvHeaderIconSep\@twitter}% + }% + \ifthenelse{\isundefined{\@skype}}% + {}% + {% + \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% + \faSkype\acvHeaderIconSep\@skype% + }% + \ifthenelse{\isundefined{\@reddit}}% + {}% + {% + \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% + \href{https://www.reddit.com/user/\@reddit}{\faReddit\acvHeaderIconSep\@reddit}% + }% + \ifthenelse{\isundefined{\@xing}}% + {}% + {% + \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% + \href{https://www.xing.com/profile/\@xing}{\faXingSquare\acvHeaderIconSep\@xing} + }% + \ifthenelse{\isundefined{\@extrainfo}}% + {}% + {% + \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% + \@extrainfo% + }% + } \\[\acvHeaderAfterSocialSkip]% + \ifthenelse{\isundefined{\@quote}}% + {}% + {\headerquotestyle{\@quote\\}\vspace{\acvHeaderAfterQuoteSkip}}% + \end{minipage}% + \begin{minipage}[c]{\headerphotowidth}% + \ifthenelse{\equal{\@photoalign}{right}}{\raggedleft\drawphoto}{} + \end{minipage} +} + +% Define a footer for CV +% Usage: \makecvfooter{<left>}{<center>}{<right>} +\newcommand*{\makecvfooter}[3]{% + \fancyfoot{} + \fancyfoot[L]{\footerstyle{#1}} + \fancyfoot[C]{\footerstyle{#2}} + \fancyfoot[R]{\footerstyle{#3}} +} + +% Define a section for CV +% Usage: \cvsection{<section-title>} +\newcommand{\cvsection}[1]{% + \vspace{\acvSectionTopSkip} + \sectionstyle{#1} + \phantomsection + \color{gray}\vhrulefill{0.9pt} +} + +% Define a subsection for CV +% Usage: \cvsubsection{<subsection-title>} +\newcommand{\cvsubsection}[1]{% + \vspace{\acvSectionContentTopSkip} + \vspace{-3mm} + \subsectionstyle{#1} + \phantomsection +} + +% Define a paragraph for CV +\newenvironment{cvparagraph}{% + \vspace{\acvSectionContentTopSkip} + \vspace{-3mm} + \paragraphstyle +}{% + \par + \vspace{2mm} +} + +% Define an environment for cventry +\newenvironment{cventries}{% + \vspace{\acvSectionContentTopSkip} + \begin{center} +}{% + \end{center} +} +% Define an entry of cv information +% Usage: \cventry{<position>}{<title>}{<location>}{<date>}{<description>} +\newcommand*{\cventry}[5]{% + \vspace{-2.0mm} + \setlength\tabcolsep{0pt} + \setlength{\extrarowheight}{0pt} + \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} L{\textwidth - 4.5cm} R{4.5cm}} + \ifempty{#2#3} + {\entrypositionstyle{#1} & \entrydatestyle{#4} \\} + {\entrytitlestyle{#2} & \entrylocationstyle{#3} \\ + \entrypositionstyle{#1} & \entrydatestyle{#4} \\} + \multicolumn{2}{L{\textwidth}}{\descriptionstyle{#5}} + \end{tabular*}% +} + +% Define an environment for cvsubentry +\newenvironment{cvsubentries}{% + \begin{center} +}{% + \end{center} +} +% Define a subentry of cv information +% Usage: \cvsubentry{<position>}{<title>}{<date>}{<description>} +\newcommand*{\cvsubentry}[4]{% + \setlength\tabcolsep{0pt} + \setlength{\extrarowheight}{0pt} + \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} L{\textwidth - 4.5cm} R{4.5cm}} + \setlength\leftskip{0.2cm} + \subentrytitlestyle{#2} & \ifthenelse{\equal{#1}{}} + {\subentrydatestyle{#3}}{} + \ifthenelse{\equal{#1}{}} + {} + {\subentrypositionstyle{#1} & \subentrydatestyle{#3} \\} + \ifthenelse{\equal{#4}{}} + {} + {\multicolumn{2}{L{17.0cm}}{\subdescriptionstyle{#4}} \\} + \end{tabular*} +} + +% Define an environment for cvhonor +\newenvironment{cvhonors}{% + \vspace{\acvSectionContentTopSkip} + \vspace{-2mm} + \begin{center} + \setlength\tabcolsep{0pt} + \setlength{\extrarowheight}{0pt} + \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} C{1.5cm} L{\textwidth - 4.0cm} R{2.5cm}} +}{% + \end{tabular*} + \end{center} +} +% Define a line of cv information(honor, award or something else) +% Usage: \cvhonor{<position>}{<title>}{<location>}{<date>} +\newcommand*{\cvhonor}[4]{% + \honordatestyle{#4} & \honorpositionstyle{#1}, \honortitlestyle{#2} & \honorlocationstyle{#3} \\ +} + +% Define an environment for cvskill +\newenvironment{cvskills}{% + \vspace{\acvSectionContentTopSkip} + \vspace{-2.0mm} + \begin{center} + \setlength\tabcolsep{1ex} + \setlength{\extrarowheight}{0pt} + \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} r L{\textwidth * \real{0.9}}} +}{% + \end{tabular*} + \end{center} +} +% Define a line of cv information(skill) +% Usage: \cvskill{<type>}{<skillset>} +\newcommand*{\cvskill}[2]{% + \skilltypestyle{#1} & \skillsetstyle{#2} \\ +} + +% Define an environment for cvitems(for cventry) +\newenvironment{cvitems}{% + \vspace{-4.0mm} + \begin{justify} + \begin{itemize}[leftmargin=2ex, nosep, noitemsep] + \setlength{\parskip}{0pt} + \renewcommand{\labelitemi}{\bullet} +}{% + \end{itemize} + \end{justify} + \vspace{-4.0mm} +} + + +%------------------------------------------------------------------------------- +% Commands for elements of Cover Letter +%------------------------------------------------------------------------------- +% Define an environment for cvletter +\newenvironment{cvletter}{% + \lettertextstyle +}{% +} + +% Define a section for the cover letter +% Usage: \lettersection{<section-title>} +\newcommand{\lettersection}[1]{% + \par\addvspace{2.5ex} + \phantomsection{} + \lettersectionstyle{#1} + \color{gray}\vhrulefill{0.9pt} + \par\nobreak\addvspace{0.4ex} +} + +% Define a title of the cover letter +% Usage: \makelettertitle +\newcommand*{\makelettertitle}{% + \vspace{8.4mm} + \setlength\tabcolsep{0pt} + \setlength{\extrarowheight}{0pt} + \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} L{\textwidth - 4.5cm} R{4.5cm}} + \recipienttitlestyle{\@recipientname} & \letterdatestyle{\@letterdate} + \end{tabular*} + \begin{singlespace} + \recipientaddressstyle{\@recipientaddress} \\\\ + \end{singlespace} + \ifthenelse{\isundefined{\@lettertitle}} + {} + {\lettertitlestyle{\@lettertitle} \\} + \lettertextstyle{\@letteropening} +} + +% Define a closing of the cover letter +% Usage: \makeletterclosing +\newcommand*{\makeletterclosing}{% + \vspace{3.4mm} + \lettertextstyle{\@letterclosing} \\\\ + \letternamestyle{\@firstname\ \@lastname} + \ifthenelse{\isundefined{\@letterenclosure}} + {\\} + {% + \\\\\\ + \letterenclosurestyle{\@letterenclname: \@letterenclosure} \\ + } +} diff --git a/fontawesome.sty b/fontawesome.sty new file mode 100644 index 0000000..a5e6ae0 --- /dev/null +++ b/fontawesome.sty @@ -0,0 +1,76 @@ +%% start of file `fontawesome.sty'. +%% Copyright 2013-2016 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/. + + +%------------------------------------------------------------------------------- +% identification +%------------------------------------------------------------------------------- +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{fontawesome}[2016/05/15 v4.6.3.1 font awesome icons] + + +%------------------------------------------------------------------------------- +% requirements +%------------------------------------------------------------------------------- +\RequirePackage{ifxetex,ifluatex} +\newif\iffontawesome@otf\fontawesome@otffalse +\ifxetex + \fontawesome@otftrue +\else + \ifluatex + \fontawesome@otftrue\fi\fi + + +%------------------------------------------------------------------------------- +% generic implementation +%------------------------------------------------------------------------------- +% generic command to display an icon by its name +\newcommand*{\faicon}[1]{% + {\csname faicon@#1\endcsname}} + +% generic icon commands and aliases +\input{fontawesomesymbols-generic.tex} + +%------------------------------------------------------------------------------- +% xe- and lualatex implementation +%------------------------------------------------------------------------------- +\iffontawesome@otf +\usepackage{fontspec} + +% definition of \FA as a shortcut to load the Font Awesome font +\newfontfamily{\FA}{FontAwesome} + +% icon-specific commands +\input{fontawesomesymbols-xeluatex.tex} + +%------------------------------------------------------------------------------- +% (pdf)latex implementation +%------------------------------------------------------------------------------- +\else +% definition of \FA... as a shortcut to load the Font Awesome font +\DeclareRobustCommand\FAone{\fontencoding{U}\fontfamily{fontawesomeone}\selectfont} +\DeclareRobustCommand\FAtwo{\fontencoding{U}\fontfamily{fontawesometwo}\selectfont} +\DeclareRobustCommand\FAthree{\fontencoding{U}\fontfamily{fontawesomethree}\selectfont} + +% icon-specific commands +\input{fontawesomesymbols-pdftex.tex} + +\fi + +%------------------------------------------------------------------------------- +% fix for FontAwesome icon names containing numerals +%------------------------------------------------------------------------------- +\renewcommand{\faHourglass}[1][]{% + \faicon{hourglass\if\relax\detokenize{#1}\relax\else-#1\fi}} +\renewcommand{\faBattery}[1][4]{% + \faicon{battery-#1}} + + +\endinput + + +%% end of file `fontawesome.sty'. diff --git a/fonts/FontAwesome.otf b/fonts/FontAwesome.otf new file mode 100644 index 0000000..401ec0f Binary files /dev/null and b/fonts/FontAwesome.otf differ diff --git a/fonts/Roboto-Bold.ttf b/fonts/Roboto-Bold.ttf new file mode 100644 index 0000000..91ec212 Binary files /dev/null and b/fonts/Roboto-Bold.ttf differ diff --git a/fonts/Roboto-BoldItalic.ttf b/fonts/Roboto-BoldItalic.ttf new file mode 100644 index 0000000..4013bf8 Binary files /dev/null and b/fonts/Roboto-BoldItalic.ttf differ diff --git a/fonts/Roboto-Italic.ttf b/fonts/Roboto-Italic.ttf new file mode 100644 index 0000000..9f49ffd Binary files /dev/null and b/fonts/Roboto-Italic.ttf differ diff --git a/fonts/Roboto-Light.ttf b/fonts/Roboto-Light.ttf new file mode 100644 index 0000000..d43e943 Binary files /dev/null and b/fonts/Roboto-Light.ttf differ diff --git a/fonts/Roboto-LightItalic.ttf b/fonts/Roboto-LightItalic.ttf new file mode 100644 index 0000000..c11442c Binary files /dev/null and b/fonts/Roboto-LightItalic.ttf differ diff --git a/fonts/Roboto-Medium.ttf b/fonts/Roboto-Medium.ttf new file mode 100644 index 0000000..8798341 Binary files /dev/null and b/fonts/Roboto-Medium.ttf differ diff --git a/fonts/Roboto-MediumItalic.ttf b/fonts/Roboto-MediumItalic.ttf new file mode 100644 index 0000000..5e86637 Binary files /dev/null and b/fonts/Roboto-MediumItalic.ttf differ diff --git a/fonts/Roboto-Regular.ttf b/fonts/Roboto-Regular.ttf new file mode 100644 index 0000000..7d9a6c4 Binary files /dev/null and b/fonts/Roboto-Regular.ttf differ diff --git a/fonts/Roboto-Thin.ttf b/fonts/Roboto-Thin.ttf new file mode 100644 index 0000000..861d63a Binary files /dev/null and b/fonts/Roboto-Thin.ttf differ diff --git a/fonts/Roboto-ThinItalic.ttf b/fonts/Roboto-ThinItalic.ttf new file mode 100644 index 0000000..e65145f Binary files /dev/null and b/fonts/Roboto-ThinItalic.ttf differ diff --git a/fonts/SourceSansPro-Bold.otf b/fonts/SourceSansPro-Bold.otf new file mode 100644 index 0000000..98dbee7 Binary files /dev/null and b/fonts/SourceSansPro-Bold.otf differ diff --git a/fonts/SourceSansPro-BoldIt.otf b/fonts/SourceSansPro-BoldIt.otf new file mode 100644 index 0000000..6600c86 Binary files /dev/null and b/fonts/SourceSansPro-BoldIt.otf differ diff --git a/fonts/SourceSansPro-It.otf b/fonts/SourceSansPro-It.otf new file mode 100644 index 0000000..2d627d9 Binary files /dev/null and b/fonts/SourceSansPro-It.otf differ diff --git a/fonts/SourceSansPro-Light.otf b/fonts/SourceSansPro-Light.otf new file mode 100644 index 0000000..159979f Binary files /dev/null and b/fonts/SourceSansPro-Light.otf differ diff --git a/fonts/SourceSansPro-LightIt.otf b/fonts/SourceSansPro-LightIt.otf new file mode 100644 index 0000000..e3d49b5 Binary files /dev/null and b/fonts/SourceSansPro-LightIt.otf differ diff --git a/fonts/SourceSansPro-Regular.otf b/fonts/SourceSansPro-Regular.otf new file mode 100644 index 0000000..bdcfb27 Binary files /dev/null and b/fonts/SourceSansPro-Regular.otf differ diff --git a/fonts/SourceSansPro-Semibold.otf b/fonts/SourceSansPro-Semibold.otf new file mode 100644 index 0000000..fffdbaf Binary files /dev/null and b/fonts/SourceSansPro-Semibold.otf differ diff --git a/fonts/SourceSansPro-SemiboldIt.otf b/fonts/SourceSansPro-SemiboldIt.otf new file mode 100644 index 0000000..e90515b Binary files /dev/null and b/fonts/SourceSansPro-SemiboldIt.otf differ diff --git a/mug.png b/mug.png new file mode 100644 index 0000000..b22dfb6 Binary files /dev/null and b/mug.png differ diff --git a/res.cls b/res.cls deleted file mode 100644 index f238036..0000000 --- a/res.cls +++ /dev/null @@ -1,803 +0,0 @@ -% 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/01-summary.tex b/resume/01-summary.tex new file mode 100644 index 0000000..07c35e5 --- /dev/null +++ b/resume/01-summary.tex @@ -0,0 +1,15 @@ +%------------------------------------------------------------------------------- +% SECTION TITLE +%------------------------------------------------------------------------------- +\cvsection{Summary} + +%------------------------------------------------------------------------------- +% CONTENT +%------------------------------------------------------------------------------- +\begin{cvparagraph} +I'm a versatile software developer with 12 years of professional experience. I have a great passion for open source and web. I have designed and implemented systems of all sizes, worked on short and long project, worked in tiny and big organizations. + +I'm interested in education, mentoring, process improvement, and building tools to increase productivity of my team. I have ran my own servers for close to 15 years, using Linux and Windows. I'm interested in functional programming languages and paradigms. F\#, Erlang, Haskell, etc... + +My primary languages of choice are JavaScript and C\#. +\end{cvparagraph} \ No newline at end of file diff --git a/resume/02-education.tex b/resume/02-education.tex new file mode 100644 index 0000000..0e9b1ee --- /dev/null +++ b/resume/02-education.tex @@ -0,0 +1,13 @@ +\cvsection{Education} +\begin{cventries} + \cventry + {Diploma of Technology} + {BCIT (British Columbia Institiute of Technology)} + {Burnaby, BC} + {2004 - 2005} + { + \begin{cvitems} + \item {Computer Systems Technology program with Data Communications option} + \end{cvitems} + } +\end{cventries} diff --git a/resume/03-experience.tex b/resume/03-experience.tex new file mode 100644 index 0000000..71f1f91 --- /dev/null +++ b/resume/03-experience.tex @@ -0,0 +1,62 @@ +\cvsection{Experience} +\begin{cventries} + \cventry + {CTO} + {\href{https://charit.ee}{\faGlobe\enspace Charit.ee Inc.}} + {Vancouver, BC} + {Jul. 2015 - Apr. 2017} + { + \begin{cvitems} + \item {Was in charge of picking the technology stack, infrastructure, and architecture} + \item {Managed the project using various tools} + \item {Project was mostly based on open-source technologies} + \end{cvitems} + \hfill\break + \begin{cvskills} + \cvskill {Frontend}{React, Redux, HTML5, Webpack, Babel, ES7} + \cvskill {Backend}{PostgreSQL, Node.js, GraphQL, nginx, wal-e} + \cvskill {CI, etc...}{GitLab, Trello, Slack, AWS} + \end{cvskills} + } + + \hfill\break + \cventry + {CTO} + {FullRoster} + {Vancouver, BC} + {Jan 2015 - Jan 2016} + { + Building a sports tournament organization software. The solution was used by several high-profiles companies in Greater Vancouver area, but ultimately failed to get commercialized. + \begin{cvskills} + \cvskill {Frontend}{jQuery, HTML5, Responsive} + \cvskill {Backend}{Ruby on Rails, PostgreSQL} + \cvskill {Stack}{Github, Amazon Web Services} + \end{cvskills} + } + \cventry + {Web Developer} + {\href{https://move.com}{\faGlobe\enspace Move Inc.}} + {Richmond, BC} + {Apr 2013 - Feb 2015} + { + Building a "Local" experience for \href{https://www.realtor.com/local/}{realtor.com} website. Developed a web UI to display various information about a geographical locale. Enhanced existing and wrote new custom software to automate deployment from \texttt{git checkout -b} to a live product running in test environment. Wrote a custom IRC bot to notify team members of various deployment states, pending merges, and to help orchestrate deployments across server farms and notify key stakeholders of pending downtimes. + \begin{cvskills} + \cvskill {Frontend}{Angular.js} + \cvskill {Backend}{Node.js, MongoDB} + \cvskill {Tooling} {Node.js, C\#, GitLab, Gitbot} + \end{cvskills} + } + + \cventry + {IT Consultant} + {\href{https://www.phn.com}{\faGlobe\enspace RBC GAM (Phillips, Hager, \& North)}} + {Vancouver, BC} + {2006 - 2007, 2011 - 2012} + { + Worked as a consultant for an investment management firm, helping them to build a custom solution to provide clients with pricing and trading controls utilizing the DotNetNuke CMS. Designed, built, and supported a set of frameworks, utilizing ASP.Net MVC and HTML5. Built several products with the frameworks mentioned, including a user management system, a framework for ACL, and several business applications. Heavily utilized Twitter Bootstrap, jQuery, jQueryUI frameworks along with custom JavaScript code to handle complex data entry scenarios, including Ajax validation and processing. Built a scheduler application with web interface, that allowed users to set up various data downloads from external vendors. It featured a simple to use UI and a system of notifications via email. Another application was a fund performance simulator, for which I have developed a UI, that allowed people to set up various parameters of the simulation. It featured a complex matrix of interdependent controls where changing a parameter would affect options for other controls. + } + + { + \footnotesize For additional experience please refer to my LinkedIn profile. + } +\end{cventries} diff --git a/resume/04-mentoring.tex b/resume/04-mentoring.tex new file mode 100644 index 0000000..65bced2 --- /dev/null +++ b/resume/04-mentoring.tex @@ -0,0 +1,47 @@ +\cvsection{Mentoring} +\begin{cventries} + \cventry + {Senior Mentor} + {\href{https://lighthouselabs.ca}{\faGlobe\enspace Lighthouse Labs}} + {Vancouver, BC} + {Jan 2014 - Current} + { + Taking new students from virtually zero experience with web development to a strong junior with ability to quickly learn new things, understand principles of computer science and software development, quick intro to project management, source control and continuous integration. + } + + \cventry + {Volunteer Mentor} + {\href{https://www.bcitsa.ca/careerservices/mentorship/}{\faGlobe\enspace BCIT Student Association Career Mentorship Program}} + {Burnaby, BC} + {Sep 2017 - Current} + { + Career mentorship for BCIT students. Providing guidance and helping with the transition from being a student into a professional environment. Helping with resumes, mock interviews, goal setting, etc... + } + + \cventry + {Volunteer Mentor} + {\href{https://nwhacks.io}{\faGlobe\enspace NWHacks - 2 day Technology Hackathon for students}} + {Vancouver, BC} + {Feb 2016 - Current} + { + Provide hands-on help to the hackathon attendees, usually focusing on web technologies. 2017 hackathon, however, had me remembering basics of electronics and microcontrollers, pull-down resistors, and setting up Raspberry Pi's. + } + + \cventry + {Mentor} + {\href{https://www.codementor.io/vasili}{\faGlobe\enspace CodeMentor.io}} + {Online} + {Nov 2016 - Current} + { + Online on-demand mentoring for all kinds of projects. + } + + \cventry + {Volunteer Mentor} + {\href{http://www.thehtml500.com}{\faGlobe\enspace HTML500}} + {Vancouver, BC} + {2015 - Current} + { + Provided mentorship at an event aspiring to teach basics of HTML/CSS to 500 people. + } +\end{cventries} \ No newline at end of file diff --git a/resume/05-misc.tex b/resume/05-misc.tex new file mode 100644 index 0000000..1ae10fa --- /dev/null +++ b/resume/05-misc.tex @@ -0,0 +1,6 @@ +\begin{cvletter} + +\lettersection{Miscellania} +I enjoy learning natural languages, snowboarding, slack-lining, trampoline gymnastics and motorcycle riding. I've been doing martial arts for close to 14 years, but still consider the long path ahead of me. I speak Russian and English fluently, and currently getting better with Japanese and Esperanto. I'm curious about Ithkuil, but who can learn that, seriously? I like shooting my rifles and pistols but not really any good at it so far. I used to play airsoft back in the day. Quirky fact - at some point in time when I was selling airsoft equipment, due to sluggish legal process, weapons with muzzle velocity of over 500 feet per second were considered firearms. So for all intents and purposes I was an arms dealer. + +\end{cvletter} \ No newline at end of file