Files
resume/limecv_main.tex
2019-06-28 16:34:59 -06:00

627 lines
19 KiB
TeX

% !TEX TS-program = xelatex
% !TEX encoding = UTF-8 Unicode
\documentclass[9pt]{article}
% force US English hyphenation
\usepackage[USenglish]{babel}
% more advanced expressions in \setlength
\usepackage{calc}
% more advanced command declaration
\usepackage{xparse}
% provides some extra warnings regarding deprecated practices
\usepackage[l2tabu,orthodox]{nag}
% define margin
\newlength\cvMargin
\setlength\cvMargin{0.2in}
% set defined margin as paper margin
\usepackage[margin=\cvMargin,noheadfoot]{geometry}
% set the other lengths based on the margin
\newlength\cvSideWidth
\setlength\cvSideWidth{0.3\paperwidth-\cvMargin}
\newlength\cvMainWidth
\setlength\cvMainWidth{\paperwidth-4\cvMargin-\cvSideWidth}
\newlength\cvPictureWidth
\setlength\cvPictureWidth{1.5in}
% defining some lengths for the language bar
\newlength\cvLanguageBarWidth
\setlength\cvLanguageBarWidth{3em}
\newlength\cvLanguageBarHeight
\setlength\cvLanguageBarHeight{0.75em}
% defines spacing between a section and its icon
\newlength\cvTimeDotSep
\setlength\cvTimeDotSep{0.1in}
% spacing between two items in a section
\newlength{\cvSectionSep}
\setlength{\cvSectionSep}{0.1in}
% we will define this length later, based on the widest icon
\newlength\cvHeaderIconWidth
% Determines font styles
\newcommand{\cvSection}[1]{\Large\textbf{#1}}
\newcommand{\cvEducation}[3]{{\firaMedium #1}\\ #2\\ \emph{#3}}
\newcommand{\cvExperience}[5]{{\firaMedium #1}\\ \textsc{\selectfont #2}, #3. #4\\ \emph{#5}}
% allow for links
\usepackage{hyperref}
% advanced drawing
\usepackage{tikz}
\usetikzlibrary{calc,positioning,backgrounds,matrix,node-families} %requires node-families file
% pictures
\usepackage{graphicx}
% define four main colours
\definecolor{cvColor}{HTML}{5F9CA8}
\definecolor{cvColorLight}{HTML}{99D0DA}
\definecolor{cvDark}{HTML}{2F3142}
\definecolor{cvAccent}{HTML}{474A65}
% load external fonts
\usepackage{fontspec}
% icon font
\usepackage{fontawesome}
% load external fonts
\setmainfont[Numbers={OldStyle,Monospaced}]{Open Sans}
\setsansfont{Open Sans}
\setmonofont{Open Sans}
\newfontfamily\firaMedium{Open Sans}
\pagestyle{empty}
% update default paragraph indent, and header space
\setlength{\topskip}{0pt} % between header and text (0 needed for vertical centring)
\usepackage{parskip} % remove paragraph indents
% setting variable from before based on widest icon
\setlength{\cvHeaderIconWidth}{\maxof{\widthof{\faBriefcase}}{\widthof{\faGraduationCap}}}
% set TikZ styles
\tikzset{%
contactIcon/.style={%
minimum height=\baselineskip,
},
contactText/.style={%
minimum height=\baselineskip,
text depth=0pt,
},
headerIcon/.style={%
minimum width=\cvHeaderIconWidth,
anchor=center,
},
languageText/.style={%
font=\footnotesize,
minimum width=4em,
align=right,
},
languageText2/.style={%
font=\footnotesize,
minimum width=5em,
anchor=east,
},
progressArea/.style={%
draw,
rectangle,
minimum width=\cvLanguageBarWidth,
minimum height=\cvLanguageBarHeight,
cvColor},
progressBar/.style={%
minimum height=\cvLanguageBarHeight,
rectangle,
draw,
fill,
cvColor,
anchor=west},
sectionTitle/.style={%
anchor=north west,
align=left},
eventdottext/.style = {%
text width=\cvMainWidth-\cvTimeDotSep,
black,
%text depth=0pt,
anchor=north west,
},
sectionedutext/.style={%
eventdottext,
anchor=north west
},
invisibletimedot/.style = {%
circle,
minimum width=3pt,
anchor=center
},
timedot/.style = {%
invisibletimedot,
draw,
minimum width=3pt,
fill,
black,
},
}
% based on https://tex.stackexchange.com/questions/65731
\makeatletter
\def\cv@hrulefill{{\color{cvColor}\leavevmode\leaders\hrule height 1pt\hfill\kern\z@}}
% line before and after text (some tweaking is required here)
% based on https://tex.stackexchange.com/questions/15119
\NewDocumentCommand{\ruleline}{m}{\par\noindent\raisebox{\baselineskip/4}{\makebox[\linewidth]{\cv@hrulefill\hspace{1ex}\raisebox{-\baselineskip/4}{#1}\hspace{1ex}\cv@hrulefill}}}
\makeatother
% update global colour
\makeatletter
\NewDocumentCommand{\globalcolor}{m}{%
\color{#1}\global\let\default@color\current@color
}
\makeatother
\AtBeginDocument{\globalcolor{cvDark}}
\NewDocumentCommand{\cvLanguage}{mm}{%
{\globaldefs=1\relax\pgfkeys{/cv/languages/lang\the\value{languages} = #2}}
\stepcounter{languages}
}
\makeatletter
\newcount\my@repeat@count
\newcommand{\cvSkill}[1]{%
\begingroup
\my@repeat@count=\z@
\@whilenum\my@repeat@count<#1\do{\faCircle\advance\my@repeat@count\@ne}%
\my@repeat@count=\numexpr5-\z@\relax
\@whilenum\my@repeat@count>#1\do{\faCircleO\advance\my@repeat@count\m@ne}%
\endgroup
}
\makeatother
\begin{document}
\vspace*{\fill}
% fill in sidebar
\begin{tikzpicture}[remember picture,overlay]
\fill[cvColorLight] (current page.north west) rectangle ++(\cvSideWidth+2\cvMargin,-\paperheight);
\end{tikzpicture}
% sidebar formatted as a minipage
\begin{minipage}{\cvSideWidth}
\begin{center}
% profile photo
\begin{tikzpicture}
\node[
rectangle,
minimum size=\cvPictureWidth,
path picture={%
\node at (path picture bounding box.center){%
\includegraphics[width=\cvPictureWidth]{img/profile_picture}
};
}]{};
\end{tikzpicture}
{\LARGE
Richard Connor
\vspace{10pt}
Johnstone}
\vspace{0.1in}
{\color{cvAccent} Aerospace Engineer}
\vspace{0.1in}
\ruleline{Profile}
Currently pursuing employment as an Aerospace Software Engineer while
earning a Masters in Aerospace Engineering (focus in Astrodynamics) at the
University of Colorado -- Boulder.
\vspace{4pt}
\ruleline{Contact}
\vspace{8pt}
\begin{tikzpicture}[every node/.style={inner sep=0pt, outer sep=0pt}]
\matrix [
column 1/.style={anchor=center,contactIcon},
column 2/.style={anchor=west,align=left,contactIcon},
column sep=5pt,
row sep=5pt] (contact) {%
\node{\faEnvelope};
& \node{\href{mailto:connor@richardconnorjohnstone.com}{%
{\small connor@richardconnorjohnstone.com}}};\\
\node{\faMapMarker};
& \node{690 Inca Parkway\\Boulder, CO 80303};\\
\node{\faPhone};
& \node{+1 (502) 414-1242};\\
\node{\faGlobe};
&
\node{\href{https://richardconnorjohnstone.com}{%
richardconnorjohnstone.com}};\\
\node{\faGithub};
& \node{\href{https://github.com/rconnorjohnstone}{rconnorjohnstone}};\\
\node{\faLinkedinSquare};
& \node{\href{https://www.linkedin.com/rconnorjohnstone}{%
rconnorjohnstone}};\\
};
\end{tikzpicture}
\vspace{4pt}
\ruleline{Languages}
\vspace{4pt}
\begin{tikzpicture}[every node/.style={text depth=0pt,inner sep=0pt,outer sep=0pt}]
\matrix [column sep=5pt,row sep=3pt] (contact) {%
\node[languageText]{Python}; &
\node[progressArea](language 1) {}; &
\node[languageText2]{Julia}; &
\node[progressArea] (language 2) {}; \\
\node[languageText]{C++}; &
\node[progressArea] (language 3) {}; &
\node[languageText2]{MATLAB}; &
\node[progressArea] (language 4) {}; \\
\node[languageText]{\LaTeX}; &
\node[progressArea] (language 5) {}; &
\node[languageText2]{Mathematica}; &
\node[progressArea] (language 6) {}; \\
\node[languageText]{Rust}; &
\node[progressArea] (language 7) {}; \\
};
\draw (language 1.west)
node[progressBar,minimum width=5/5*\cvLanguageBarWidth] {};
\draw (language 2.west)
node[progressBar,minimum width=5/5*\cvLanguageBarWidth] {};
\draw (language 3.west)
node[progressBar,minimum width=4/5*\cvLanguageBarWidth] {};
\draw (language 4.west)
node[progressBar,minimum width=4/5*\cvLanguageBarWidth] {};
\draw (language 5.west)
node[progressBar,minimum width=4/5*\cvLanguageBarWidth] {};
\draw (language 6.west)
node[progressBar,minimum width=3/5*\cvLanguageBarWidth] {};
\draw (language 7.west)
node[progressBar,minimum width=1/5*\cvLanguageBarWidth] {};
\end{tikzpicture}
\vspace{4pt}
\ruleline{Guidance Software}
\vspace{4pt}
\begin{tikzpicture}[every node/.style={text depth=0pt,inner sep=0pt,outer sep=0pt}]
\matrix [column sep=5pt,row sep=3pt] (contact) {%
\node[languageText]{GMAT}; &
\node[progressArea](guidance 1) {}; &
\node[languageText2]{STK}; &
\node[progressArea] (guidance 2) {}; \\
};
\draw (guidance 1.west)
node[progressBar,minimum width=5/5*\cvLanguageBarWidth] {};
\draw (guidance 2.west)
node[progressBar,minimum width=3/5*\cvLanguageBarWidth] {};
\end{tikzpicture}
\vspace{4pt}
\ruleline{CAD Software}
\vspace{4pt}
\begin{tikzpicture}[every node/.style={text depth=0pt,inner sep=0pt,outer sep=0pt}]
\matrix [column sep=5pt,row sep=3pt] (contact) {%
\node[languageText]{PTC Creo}; &
\node[progressArea](cad 1) {}; &
\node[languageText2]{AutoCAD}; &
\node[progressArea] (cad 2) {}; \\
\node[languageText]{Solidworks}; &
\node[progressArea](cad 3) {}; &
\node[languageText2]{CATIA v5}; &
\node[progressArea] (cad 4) {}; \\
};
\draw (cad 1.west)
node[progressBar,minimum width=5/5*\cvLanguageBarWidth] {};
\draw (cad 2.west)
node[progressBar,minimum width=4/5*\cvLanguageBarWidth] {};
\draw (cad 3.west)
node[progressBar,minimum width=3/5*\cvLanguageBarWidth] {};
\draw (cad 4.west)
node[progressBar,minimum width=3/5*\cvLanguageBarWidth] {};
\end{tikzpicture}
\vspace{4pt}
\ruleline{Operating Systems}
\vspace{4pt}
\begin{tikzpicture}[every node/.style={text depth=0pt,inner sep=0pt,outer sep=0pt}]
\matrix [column sep=5pt,row sep=3pt] (contact) {%
\node[languageText]{Linux}; &
\node[progressArea](os 1) {}; &
\node[languageText2]{Windows}; &
\node[progressArea] (os 2) {}; \\
};
\draw (os 1.west)
node[progressBar,minimum width=5/5*\cvLanguageBarWidth] {};
\draw (os 2.west)
node[progressBar,minimum width=4/5*\cvLanguageBarWidth] {};
\end{tikzpicture}
\vspace{4pt}
\ruleline{Other}
\vspace{4pt}
\begin{tikzpicture}[every node/.style={text depth=0pt,inner sep=0pt,outer sep=0pt}]
\matrix [column sep=5pt,row sep=3pt] (contact) {%
\node[languageText]{Git}; &
\node[progressArea](other 1) {}; &
\node[languageText2]{Office}; &
\node[progressArea] (other 2) {}; \\
\node[languageText]{Vim}; &
\node[progressArea](other 3) {}; &
\node[languageText2]{LabVIEW}; &
\node[progressArea] (other 4) {}; \\
};
\draw (other 1.west)
node[progressBar,minimum width=4/5*\cvLanguageBarWidth] {};
\draw (other 2.west)
node[progressBar,minimum width=4/5*\cvLanguageBarWidth] {};
\draw (other 3.west)
node[progressBar,minimum width=4/5*\cvLanguageBarWidth] {};
\draw (other 4.west)
node[progressBar,minimum width=1/5*\cvLanguageBarWidth] {};
\end{tikzpicture}
\end{center}
\end{minipage}
\vspace*{\fill}
\begin{tikzpicture}[
every node/.style={
inner sep=0pt,
outer sep=0pt
},
remember picture,
overlay,
shift={($(current page.north west)%
+(\cvSideWidth+3\cvMargin+\cvTimeDotSep,-\cvMargin)$)}]
% main content
\node[sectionTitle] at (0,0) (title 1) {\cvSection{Education}};
\node[left=\cvTimeDotSep of title 1,headerIcon] {\faGraduationCap};
\begin{scope}[on background layer]
\draw[line width=2pt,cvColor]
let \p1=(title 1.south west),
\p2=(current page.east) in
(\x1,\y1-0.1cm) to (\x2,\y1-0.1cm);
\end{scope}
% item 1
\node[
below=\cvSectionSep of title 1.south west,
eventdottext]
(item 1 header)
{\phantom{Evening}};
\node[
below=\cvSectionSep of title 1.south west,
sectionedutext]
(item 1)
{\cvEducation{Evening class: Chinese}%
{Some School, City. September 2015 -- June 2016}%
{Achieved A2 language skill in Chinese (Mandarin).}};
\node[
left=\cvTimeDotSep of item 1 header,
timedot]
(start)
{};
% item 2
\node[
below=\cvSectionSep of item 1.south west,
eventdottext]
(item 2 header)
{\phantom{Evening}};
\node[
below=\cvSectionSep of item 1.south west,
sectionedutext]
(item 2)
{\cvEducation{Bachelor of Science in Biochemistry and Biotechnology}%
{University, City. September 2009 -- June 2012}%
{General training in the basic sciences and the molecular life science.}};
\node[
left=\cvTimeDotSep of item 2 header,
timedot]
{};
% item 3
\node[
below=\cvSectionSep of item 2.south west,
eventdottext]
(item 3 header)
{\phantom{Evening}};
\node[
below=\cvSectionSep of item 2.south west,
sectionedutext]
(item 3)
{\cvEducation{Master of Science in Biochemistry and Biotechnology}%
{University, City. September 2012 -- June 2015}%
{Acquisition of insight into and knowledge of possibilities for application in the area of biochemistry and biotechnology, specific with applications in biomedical application and due problem-solving reasoning skills.}};
\node[
left=\cvTimeDotSep of item 3 header,
timedot]
{};
\node[
left=\cvTimeDotSep of item 3.south west,
invisibletimedot]
(end)
{};
\draw (start) to (end.center);
%%%%%%%%%%%%%%
% Experience %
%%%%%%%%%%%%%%
\node[below=0.6cm of item 3.south west,sectionTitle] (title 2) {\cvSection{Experience}};
\node[left=\cvTimeDotSep of title 2,headerIcon] {\faBriefcase};
\node[below=0.6cm of item 3.south west,sectionTitle] (title 2 dummy) {\phantom{\cvSection{Education}}};
\begin{scope}[on background layer]
\draw[line width=2pt,cvColor]
let \p1=(title 2 dummy.south west),
\p2=(current page.east) in
(\x1,\y1-0.1cm) to (\x2,\y1-0.1cm);
\end{scope}
\node[
below=\cvSectionSep of title 2.south west,
eventdottext]
(item 1 header)
{\phantom{Evening}};
\node[
below=\cvSectionSep of title 2.south west,
sectionedutext]
(item 1)
{\cvExperience%
{Student Job}%
{Company X}%
{Location X}%
{Summer 2010}%
{Integer tincidunt dapibus consectetur. Nullam tristique aliquam luctus. Sed ut ante velit. Nulla pharetra maximus lacus at elementum. Suspendisse sodales consectetur metus, sit amet ultricies ipsum ultrices ut.}};
\node[
left=\cvTimeDotSep of item 1 header,
timedot]
(start)
{};
% item 2
\node[
below=\cvSectionSep of item 1.south west,
eventdottext]
(item 2 header)
{\phantom{Evening}};
\node[
below=\cvSectionSep of item 1.south west,
sectionedutext]
(item 2)
{\cvExperience%
{Internship}%
{Company Y}%
{Location Y}%
{June 2012 -- August 2012}%
{Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi dictum cursus sapien, id eleifend mi pellentesque id. Etiam lobortis eu odio a sodales. Phasellus ut dolor feugiat, lacinia lectus in, blandit metus. Fusce lacinia dolor et metus gravida pulvinar sit amet et ex.}};
\node[
left=\cvTimeDotSep of item 2 header,
timedot]
{};
% item 3
\node[
below=\cvSectionSep of item 2.south west,
eventdottext]
(item 3 header)
{\phantom{Evening}};
\node[
below=\cvSectionSep of item 2.south west,
sectionedutext]
(item 3)
{\cvExperience{Internship}%
{Company Z}%
{Location Z}%
{August 2014 -- September 2014}%
{Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi dictum cursus sapien, id eleifend mi pellentesque id. Etiam lobortis eu odio a sodales. Phasellus ut dolor feugiat, lacinia lectus in, blandit metus. Fusce lacinia dolor et metus gravida pulvinar sit amet et ex.}};
\node[
left=\cvTimeDotSep of item 3 header,
timedot]
{};
\node[
left=\cvTimeDotSep of item 3.south west,
invisibletimedot]
(end)
{};
\draw (start) to (end.center);
%%%%%%%%%%
% Skills %
%%%%%%%%%%
\node[below=0.6cm of item 3.south west,sectionTitle] (title 3) {\cvSection{Skills}};
\node[left=\cvTimeDotSep of title 3,headerIcon] {\faStar};
\node[below=0.6cm of item 3.south west,sectionTitle] (title 3 dummy) {\phantom{\cvSection{Education}}};
\begin{scope}[on background layer]
\draw[line width=2pt,cvColor]
let \p1=(title 3 dummy.south west),
\p2=(current page.east) in
(\x1,\y1-0.1cm) to (\x2,\y1-0.1cm);
\end{scope}
\matrix[matrix of nodes,
below=0.6cm of title 3.south west,
anchor=north west,
column sep=6pt,
row sep=6pt,
every node/.style={Text Depth=tdSkills},
column 1/.style={anchor=east,align=left},
column 2/.style={anchor=west},
column 3/.style={anchor=east,align=left},
column 4/.style={anchor=west}] (skills) {
\cvSkill{5} & MATLAB & \cvSkill{5} & \LaTeX \\
\cvSkill{4} & Python & \cvSkill{4} & VHDL \\
\cvSkill{4} & Microsoft Office & \cvSkill{4} & macOS \\
\cvSkill{3} & C, C++ & \cvSkill{3} & Electrical Engineering \\};
\node[below=0.6cm of skills.south west,sectionTitle] (title 4) {\cvSection{References}};
\node[left=\cvTimeDotSep of title 4,headerIcon] {\faLink};
\node[below=0.6cm of skills.south west,sectionTitle] (title 4 dummy) {\phantom{\cvSection{Education}}};
\begin{scope}[on background layer]
\draw[line width=2pt,cvColor]
let \p1=(title 4 dummy.south west),
\p2=(current page.east) in
(\x1,\y1-0.1cm) to (\x2,\y1-0.1cm);
\end{scope}
\matrix[matrix of nodes,
below=0.6cm of title 4.south west,
anchor=north west,
column sep=6pt,
row sep=6pt,
every node/.style={Text Depth=tdRefs,anchor=west}] {
Jane Smith & \\
Company ABC Co. Ltd. & \\
Job title & \\
Street lane 2 & \\
B-1150 Brussels & \\
+1 781 555 1212 & \\};
\end{tikzpicture}
\end{document}