%!TEX TS-program = xelatex
%!TEX encoding = UTF-8 Unicode

\documentclass[11pt, letterpaper]{article}

% LAYOUT
%--------------------------------
% Margins
\usepackage{geometry} 
\geometry{margin=0in}

% Do not indent paragraphs
\setlength\parindent{0in}

% Enable multicolumns
\usepackage{vwcol}
\usepackage{multicol}

% Colors
\usepackage{xcolor}
\definecolor{sidebar}{HTML}{$primary}
\definecolor{content}{HTML}{$secondary}
\definecolor{topbar}{HTML}{$tertiary}
\definecolor{text}{HTML}{$text}
\definecolor{accent}{HTML}{$tertiary}
\color{text}

% Uncomment to suppress page numbers
\pagenumbering{gobble}

% LANGUAGE
%--------------------------------
% Set the main language
% List Indents
\usepackage{enumitem}

% TYPOGRAPHY
%--------------------------------
% Font Awesome
\usepackage{fontawesome5}
\usepackage{fontspec} 
\usepackage{xunicode}
\usepackage{xltxtra}
% converts LaTeX specials (quotes, dashes etc.) to Unicode
\defaultfontfeatures{Mapping=tex-text}
\setromanfont [Ligatures={Common}, Numbers={OldStyle}]{Roboto}
\newfontfamily{\fallbackfont}{FiraCode Nerd Font}
% Special characters
\newcommand{\amper}{{\fontspec[Scale=.95]{Roboto}\selectfont\itshape\&}}
\newcommand{\fullstar}{{\scriptsize\faStar}}
\newcommand{\emptystar}{{\scriptsize\faStar[regular]}}

% GRAPHICS
\usepackage{tikz}
\usepackage{eso-pic}

% HEADINGS
%--------------------------------
\usepackage{sectsty} 
\usepackage[normalem]{ulem} 
\sectionfont{\rmfamily\mdseries} 
\subsectionfont{\rmfamily\mdseries\scshape\normalsize} 
\subsubsectionfont{\rmfamily\bfseries\upshape\normalsize} 

% SHAMELESSLY STOLEN STUFF
% ----------------------------------------------------------------------------
% based on https://tex.stackexchange.com/questions/65731
\makeatletter
\def\cv@hrulefill{{\color{accent}\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

% PDF SETUP
%--------------------------------
\usepackage{hyperref}
\hypersetup
{
	pdfauthor={Connor Johnstone},
	pdfsubject={Connor Johnstone's CV},
	pdftitle={Connor Johnstone's CV},
	colorlinks, breaklinks, xetex, bookmarks,
	filecolor=black,
	urlcolor=[HTML]{$tertiary},
	linkcolor=[HTML]{$tertiary},
	citecolor=[HTML]{$tertiary}
}

%=============================================================================
\begin{document}

% Basically the margins of each box section
\setlength\fboxsep{10pt}
% Set this to 1pt to see the box outlines
\setlength\fboxrule{0pt}

% BACKGROUND -----------------------------------------------------------------
\hspace{-10pt}
\vspace{0.15in}
\begin{tikzpicture}[remember picture, overlay]
	\filldraw[sidebar, opacity=0.6] (current page.north west) -- (0in,-12in) -- (2.75in,-12in) -- (2.75in,1in) -- cycle;
	\filldraw[topbar, opacity=0.6] (current page.north west) -- (0,-0.7in) -- (10in,-1.4in) -- (current page.north east) -- cycle;
	\filldraw[white] (1.325in,-0.79275in) circle (0.6in);
	\node (logo) at (1.325in,-0.79275in) {\includegraphics[width=1.25in]{logo.png}};
\end{tikzpicture}

% TOP BAR --------------------------------------------------------------------
\hspace{3.25in}
\noindent\fbox{%
\begin{minipage}[t][0.4in]{4.5in}
	\begin{center}
		\Huge Richard \strong{Connor} Johnstone
	\end{center}
\end{minipage}}
\vspace{0.5in}

% LEFT SIDEBAR ---------------------------------------------------------------
\noindent\fbox{%
\begin{minipage}[t][9in]{2.35in}
	\vspace{5pt}
	\href{mailto:c@rcjohnstone.com}{\faEnvelope \hspace{10pt} c@rcjohnstone.com}

	\href{https://rcjohnstone.com}{\faWifi \hspace{10pt} rcjohnstone.com}

	\href{https://gitlab.rcjohnstone.com}{\faGitlab \hspace{10pt} gitlab.rcjohnstone.com}

	\href{https://www.linkedin.com/in/rconnorjohnstone/}{\faLinkedin \hspace{10pt} rconnorjohnstone}

	\vspace{10pt}

	\setlength\columnsep{2pt}

	\ruleline{Programming Languages}
	\vspace{-25pt}
	\begin{multicols}{2}
		\begin{flushright}
			\footnotesize
			Python \fullstar\fullstar\fullstar\fullstar \\
			Rust \fullstar\fullstar\fullstar\fullstar \\
			Julia \fullstar\fullstar\fullstar\fullstar \\
			C++ \fullstar\fullstar\fullstar\emptystar \\
			LaTeX \fullstar\fullstar\fullstar\emptystar \\
			Javascript \fullstar\fullstar\fullstar\emptystar \\
			HTML \fullstar\fullstar\fullstar\emptystar \\
			Matlab \fullstar\fullstar\emptystar\emptystar \\
			CSS \fullstar\fullstar\emptystar\emptystar \\
			Haskell \fullstar\fullstar\emptystar\emptystar \\
			Bash \fullstar\fullstar\emptystar\emptystar
		\end{flushright}
	\end{multicols}
	\vspace{-5pt}

	\ruleline{Languages}
	\vspace{-25pt}
	\begin{multicols}{2}
		\begin{center}
			\footnotesize
			English (Native) \\
			Italian (B2)
		\end{center}
	\end{multicols}
	\vspace{-5pt}

	\ruleline{Technologies}
	\vspace{-25pt}
	\begin{multicols}{2}
		\begin{flushright}
			\footnotesize
			Docker \fullstar\fullstar\fullstar\fullstar \\
			REST \fullstar\fullstar\fullstar\fullstar \\
			AWS \fullstar\fullstar\fullstar\emptystar \\
			Actix-Web \fullstar\fullstar\fullstar\emptystar \\
			Kubernetes \fullstar\fullstar\emptystar\emptystar
		\end{flushright}
	\end{multicols}
	\vspace{-5pt}

	\ruleline{Guidance Software}
	\vspace{-25pt}
	\begin{multicols}{2}
		\begin{center}
			\footnotesize
			GMAT \\
			STK
		\end{center}
	\end{multicols}
	\vspace{-5pt}

	\ruleline{Other}
	\vspace{-25pt}
	\begin{multicols}{2}
		\begin{center}
			\footnotesize
			Git \\
			Vim \\
			Microsoft Office365 \\
			Agile
		\end{center}
	\end{multicols}
	\vspace{-5pt}

	\ruleline{Skills}

	\vspace{-35pt}
	\subsection*{\center{\textbf{Astrodynamics}}}
	\vspace{-5pt}
	\footnotesize{
		Experience writing software for satellite estimation, guidance, navigation, and control,
		including statistical orbit determination using Kalman Filters, and orbital propagation
		including multiple special perturbations.
	}

	\vspace{-35pt}
	\subsection*{\center{\textbf{ADCS}}}
	\vspace{-5pt}
	\footnotesize{
		Experience writing, testing, and debugging spacecraft attitude determination and control
		software for multiple on-orbit spacecraft.
	}

	\vspace{-35pt}
	\subsection*{\center{\textbf{Trajectory Optimization}}}
	\vspace{-5pt}
	\footnotesize{
		Academic and on-the-job experience writing optimal control laws for low and impulsive thrust
		spacecraft thrust systems.
	}

	\vspace{-35pt}
	\subsection*{\center{\textbf{REST Microservices}}}
	\vspace{-5pt}
	\footnotesize{
		Experience architecting, developing, and deploying operationalized assimilative
		space-weather models as well as a handful of other projects. Well versed in the
		lifecycle of RESTful HTTP microservice applications.
	}

	\vspace{-35pt}
	\subsection*{\center{\textbf{Embedded Software}}}
	\vspace{-5pt}
	\footnotesize{
		Some experience writing on-board satellite flight software for a variety of applications.
	}

\end{minipage}}
\hspace{-5pt}
% MAIN CONTENT ---------------------------------------------------------------
\noindent\fbox{%
\begin{minipage}[t][9in]{\dimexpr\textwidth-2\fboxsep-2.35in\relax}
	Test text
\end{minipage}}
\end{document}
