From a07cc68a2dcf7549d01cf2ef355799592947281b Mon Sep 17 00:00:00 2001 From: Mateja Date: Fri, 26 Mar 2021 12:53:27 +0100 Subject: New version using AltaCV class. --- README.md | 6 +- altacv.cls | 421 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ cv.tex | 213 ++++++++++++++++++++++--------- mcv.cls | 59 --------- 4 files changed, 573 insertions(+), 126 deletions(-) create mode 100644 altacv.cls delete mode 100644 mcv.cls diff --git a/README.md b/README.md index 5ef4e19..097f6ab 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,4 @@ -# Work in progress! - -I am updating my CV to not use `moderncv` class, because it's not easily customizable. - -## How to compile: +# How to compile: Your should probably install full version of `texlive` package. It is couple of GB, but you get everything LaTeX has to offer. diff --git a/altacv.cls b/altacv.cls new file mode 100644 index 0000000..e8caec1 --- /dev/null +++ b/altacv.cls @@ -0,0 +1,421 @@ +%%%%%%%%%%%%%%%%% +% This is altacv.cls (v1.3.3, 31 October 2020) written by +% LianTze Lim (liantze@gmail.com). +% +%% It may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2003/12/01 or later. +%% +%% +% Contributions: +% - https://github.com/akreuzer Added ragged2e option (5 Nov 2018) +% - https://github.com/stefanogermano Fixed bad boxes and undefined font shape (July 2018) +% - https://github.com/foohyfooh Fixed blank spaces in \cvevent and bad link in README.md (June 2018) + +%%%%%%%%%%%%%%%% +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesClass{altacv}[2020/05/17 AltaCV v1.3.3, yet another alternative class for a resume/curriculum vitae.] + +%% v1.1: Optionally load academicons +\newif\if@academicons +\DeclareOption{academicons}{\@academiconstrue} +%% v1.1.3: Choice of round/square photo +\newif\if@normalphoto +\DeclareOption{normalphoto}{\@normalphototrue} +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{extarticle}} +\newif\if@raggedtwoe +\DeclareOption{ragged2e}{\@raggedtwoetrue} +%% v1.3: load hyperref for clickable hyperlinks +\newif\if@withhyper +\DeclareOption{withhyper}{\@withhypertrue} +\ProcessOptions\relax + +\LoadClass{article} +%% v1.3.2 Hopefully this helps make the PDF +%% file more 'friendly' with copy-paste etc +\RequirePackage[a-1b]{pdfx} +%% v1.3.3 Temporary fix for pdfx and biblatex incompatibility +%% (Thanks to @badetitou for highlighting this issue) +%% https://github.com/plk/biblatex/issues/1044 +%% Will be removed when fix is released in biblatex 3.16 +\catcode30=12 +\RequirePackage[margin=2cm]{geometry} +\RequirePackage[fixed]{fontawesome5} +\RequirePackage{ifxetex,ifluatex} +\RequirePackage{scrlfile} +\RequirePackage{xparse} + +%% v1.1.5: added for convenience +\newif\ifxetexorluatex +\ifxetex + \xetexorluatextrue +\else + \ifluatex + \xetexorluatextrue + \else + \xetexorluatexfalse + \fi +\fi + +\ifxetexorluatex + \RequirePackage{fontspec} +\else + %% v1.3.2 attempts to make ligatures + %% copy-paste as normal characters + \RequirePackage{cmap} + \RequirePackage[utf8]{inputenc} + \RequirePackage[T1]{fontenc} + \input{glyphtounicode} + \pdfglyphtounicode{f_f}{FB00} + \pdfglyphtounicode{f_f_i}{FB03} + \pdfglyphtounicode{f_f_l}{FB04} + \pdfglyphtounicode{f_i}{FB01} + \pdfgentounicode=1 +\fi + +%% v1.1: Optionally load academicons +%% v1.1.5: Handle different versions of academicons +\if@academicons + \ifxetexorluatex + \RequirePackage{fontspec} + %% academicons in TL2018 doesn't require + %% Academicons to be installed in OS fonts + %% so can be loaded directly + \@ifl@t@r\fmtversion{2018/04/01}{% + \RequirePackage{academicons} + }{% + % TL2017 + \@ifl@t@r\fmtversion{2017/04/01}{% + \@ifpackagelater{academicons}{2018/03/01}{% + \RequirePackage{academicons} + }{% + \let\ori@newfontfamily\newfontfamily% + \renewcommand{\newfontfamily}[2]{} + \RequirePackage{academicons} + \let\newfontfamily\ori@newfontfamily + \newfontfamily{\AI}{academicons.ttf} + } + }{% TL2016 requires the package to be loaded before + % the version can be checked. Only added because + % Overleaf v1 still runs TL2016; will be removed + % when v1 is completely retired. + \let\ori@newfontfamily\newfontfamily% + \renewcommand{\newfontfamily}[2]{} + \RequirePackage{academicons} + \let\newfontfamily\ori@newfontfamily + \newfontfamily{\AI}{academicons.ttf} + } + } + \else + \ClassError{AltaCV}{academicons unsupported by latex or pdflatex. Please compile with xelatex or lualatex}{Please compile with xelatex or lualatex to use the academicons option} + \fi +\fi + +\if@raggedtwoe + \RequirePackage[newcommands]{ragged2e} +\fi + +\if@withhyper + \AtBeginDocument{% + \RequirePackage{hyperref} + \hypersetup{hidelinks} + \urlstyle{same} + } +\fi + +\RequirePackage{xcolor} + +\colorlet{accent}{blue!70!black} +\colorlet{emphasis}{black} +\colorlet{heading}{black} +\colorlet{headingrule}{black} +\colorlet{subheading}{emphasis} +\colorlet{body}{black!80!white} +\colorlet{name}{heading} +\colorlet{tagline}{accent} +\newcommand{\itemmarker}{{\small\textbullet}} +\newcommand{\ratingmarker}{\faCircle} + +\RequirePackage{tikz} +\usetikzlibrary{arrows} +\RequirePackage[skins]{tcolorbox} +\RequirePackage[inline]{enumitem} +\setlist{leftmargin=*,labelsep=0.5em,nosep,itemsep=0.25\baselineskip,after=\vspace{0.25\baselineskip}} +\setlist[itemize]{label=\itemmarker} +\RequirePackage{graphicx} +\RequirePackage{etoolbox} +\RequirePackage{dashrule} +\RequirePackage{multirow,tabularx} +\RequirePackage{changepage} +% \RequirePackage{marginfix} + +\setlength{\parindent}{0pt} +\newcommand{\divider}{\textcolor{body!30}{\hdashrule{\linewidth}{0.6pt}{0.5ex}}\medskip} + +\newenvironment{fullwidth}{% + \begin{adjustwidth}{}{\dimexpr-\marginparwidth-\marginparsep\relax}} + {\end{adjustwidth}} + +%% v1.3.1 \detokenize will break UTF-8 in pdflatex +%% Using alternative from https://tex.stackexchange.com/a/530911/226 +\newcommand{\utffriendlydetokenize}[1]{% +\scantokens{% + \catcode`\_=12% +% \catcode`\^=12% +% \catcode`\{=12% +% \catcode`\}=12% + \catcode`\&=12% + \catcode`\$=12% + \catcode`\#=12% + \catcode`\~=12% +% \catcode`\\=12% + {#1}% +}% +} +%% v1.3: Incorporating hyperlinks +%% v1.3.1: using \unfriendlydetokenize to avoid +%% breaking unicode +\ExplSyntaxOn +\NewDocumentCommand{\printinfo}{m m o}{% + \IfNoValueTF{#3}{% + \mbox{\textcolor{accent}{\normalfont #1}~\utffriendlydetokenize{#2}\hspace{2em}}% + }{% + \if@withhyper% + \mbox{\textcolor{accent}{\normalfont #1}~ + \href{#3}{\utffriendlydetokenize{#2}}\hspace{2em}} + \else% + \ClassWarning{Please specify [withhyper] option to enable hyperlinks. Printing out full hyperlink prefix #1 for now.}% + \mbox{\textcolor{accent}{\normalfont #1}~{\utffriendlydetokenize{#3#2}}\hspace{2em}}% + \fi% + }% +}% + +%% v1.3: Exploring convenient creation of fields +\NewDocumentCommand{\NewInfoField}{m m o}{% + \IfNoValueF{#3}{\csdef{#1 hyperprefix}{#3}}% + \csdef{#1 symbol}{#2}% + \csdef{#1}##1{% + \if@withhyper + \IfNoValueTF {#3} + {\printinfo{\csuse{#1 symbol}}{##1}}% + {\printinfo{\csuse{#1 symbol}}{##1}[\csuse{#1 hyperprefix}##1]}% + \else + \printinfo{\csuse{#1 symbol}}{##1}% + \fi% + } +} +\ExplSyntaxOff + +\newcommand{\name}[1]{\def\@name{#1}} +\newcommand{\tagline}[1]{\def\@tagline{#1}} +\newcommand{\personalinfo}[1]{\def\@personalinfo{#1}} +\NewInfoField{email}{\faAt}[mailto:] +\NewInfoField{mailaddress}{\faEnvelope} +\NewInfoField{phone}{\faPhone}[tel:] +\NewInfoField{homepage}{\faGlobe}[https://] +\NewInfoField{twitter}{\faTwitter}[https://twitter.com/] +\NewInfoField{linkedin}{\faLinkedin}[https://linkedin.com/in/] +\NewInfoField{github}{\faGithub}[https://github.com/] +\NewInfoField{orcid}{\aiOrcid}[https://orcid.org/] +\NewInfoField{location}{\faMapMarker} + +% v1.2: Support for multiple photos +\newlength{\altacv@photos@width} +\newlength{\altacv@photo@diam@left} +\newlength{\altacv@photo@diam@right} +\def\altacv@left@photos{} +\def\altacv@right@photos{} + +\newcommand{\@makeaphoto}[2]{% + \begin{minipage}{#1}% + \if@normalphoto + \includegraphics[width=\linewidth]{#2} + \else + \tikz\path[fill overzoom image={#2}]circle[radius=0.5\linewidth]; + \fi% + \end{minipage}% +} + +\newcommand{\altacv@add@photo@left}[1]{% + \appto{\altacv@left@photos}{% + \@makeaphoto{\altacv@photo@diam@left}{#1}\hspace{1ex}% + }% + \addtolength{\altacv@photos@width}{\altacv@photo@diam@left}% + \addtolength{\altacv@photos@width}{1ex}% +} +\newcommand{\altacv@add@photo@right}[1]{% + \appto{\altacv@right@photos}{% + \@makeaphoto{\altacv@photo@diam@right}{#1}\hspace{1ex}% + }% + \addtolength{\altacv@photos@width}{\altacv@photo@diam@right}% + \addtolength{\altacv@photos@width}{1ex}% +} +\newcommand{\photoL}[2]{% + \setlength{\altacv@photo@diam@left}{#1}% + \forcsvlist{\altacv@add@photo@left}{#2}% +} +\newcommand{\photoR}[2]{% + \setlength{\altacv@photo@diam@right}{#1}% + \forcsvlist{\altacv@add@photo@right}{#2}% +} +\let\photo\photoR + +\newcommand{\namefont}{\Huge\bfseries} +\newcommand{\taglinefont}{\large\bfseries} +\newcommand{\personalinfofont}{\footnotesize\bfseries} +\newcommand{\cvsectionfont}{\LARGE\bfseries} +\newcommand{\cvsubsectionfont}{\large\bfseries} + +\newcommand{\makecvheader}{% + \begingroup + \altacv@left@photos\hfill% + \begin{minipage}{\dimexpr\linewidth-\altacv@photos@width}% + \raggedright% + {\namefont\color{name}\MakeUppercase{\@name}\par} + \medskip + {\taglinefont\color{tagline}\@tagline\par} + \medskip + {\personalinfofont\@personalinfo\par} + \end{minipage}\hfill% + \altacv@right@photos\par% + \endgroup\medskip +} + +\renewenvironment{quote}{\color{accent}\itshape\large}{\par} + +\newcommand{\cvsection}[2][]{% + \bigskip% + \ifstrequal{#1}{}{}{\marginpar{\vspace*{\dimexpr1pt-\baselineskip}\raggedright\input{#1}}}% + {\color{heading}\cvsectionfont\MakeUppercase{#2}}\\[-1ex]% + {\color{headingrule}\rule{\linewidth}{2pt}\par}\medskip +} + +\newcommand{\cvsubsection}[1]{% + \smallskip% + {\color{subheading}\cvsubsectionfont{#1}\par}\medskip +} + +% v1.1.4: fixes inconsistent font size +\newcommand{\cvevent}[4]{% + {\large\color{emphasis}#1\par} + \smallskip\normalsize + \ifstrequal{#2}{}{}{ + \textbf{\color{accent}#2}\par + \smallskip} + \ifstrequal{#3}{}{}{{\small\makebox[0.5\linewidth][l]{\faCalendar~#3}}}% + \ifstrequal{#4}{}{}{{\small\makebox[0.5\linewidth][l]{\faMapMarker~#4}}}\par + \medskip\normalsize +} + +\newcommand{\cvachievement}[3]{% + \begin{tabularx}{\linewidth}{@{}p{2em} @{\hspace{1ex}} >{\raggedright\arraybackslash}X@{}} + \multirow{2}{*}{\Large\color{accent}#1} & \bfseries\textcolor{emphasis}{#2}\\ + & #3 + \end{tabularx}% + \smallskip +} + +\newcommand{\cvtag}[1]{% + \tikz[baseline]\node[anchor=base,draw=body!30,rounded corners,inner xsep=1ex,inner ysep =0.75ex,text height=1.5ex,text depth=.25ex]{#1}; +} + +\newcommand{\cvskill}[2]{% +\textcolor{emphasis}{\textbf{#1}}\hfill +\foreach \x in {1,...,5}{% + \space{\ifnumgreater{\x}{#2}{\color{body!30}}{\color{accent}}\ratingmarker}}\par% +} + +% Adapted from @Jake's answer at http://tex.stackexchange.com/a/82729/226 +\newcommand{\wheelchart}[4][0]{% + \begingroup\centering + \def\innerradius{#3}% + \def\outerradius{#2}% + % Calculate total + \pgfmathsetmacro{\totalnum}{0}% + \foreach \value/\colour/\name in {#4} {% + \pgfmathparse{\value+\totalnum}% + \global\let\totalnum=\pgfmathresult% + }% + \begin{tikzpicture} + + % Calculate the thickness and the middle line of the wheel + \pgfmathsetmacro{\wheelwidth}{\outerradius-\innerradius} + \pgfmathsetmacro{\midradius}{(\outerradius+\innerradius)/2} + \pgfmathsetmacro{\totalrot}{-90 + #1} + + % Rotate so we start from the top + \begin{scope}[rotate=\totalrot] + + % Loop through each value set. \cumnum keeps track of where we are in the wheel + \pgfmathsetmacro{\cumnum}{0} + \foreach \value/\width/\colour/\name in {#4} { + \pgfmathsetmacro{\newcumnum}{\cumnum + \value/\totalnum*360} + + % Calculate the percent value + \pgfmathsetmacro{\percentage}{\value/\totalnum*100} + % Calculate the mid angle of the colour segments to place the labels + \pgfmathsetmacro{\midangle}{-(\cumnum+\newcumnum)/2} + + % This is necessary for the labels to align nicely + \pgfmathparse{ + (-\midangle>180?"west":"east") + } \edef\textanchor{\pgfmathresult} + \pgfmathparse{ + (-\midangle>180?"flush left":"flush right") + } \edef\textalign{\pgfmathresult} + \pgfmathsetmacro\labelshiftdir{1-2*(-\midangle<180)} + + % Draw the color segments. Somehow, the \midrow units got lost, so we add 'pt' at the end. Not nice... + \filldraw[draw=white,fill=\colour] (-\cumnum:\outerradius) arc (-\cumnum:-(\newcumnum):\outerradius) -- + (-\newcumnum:\innerradius) arc (-\newcumnum:-(\cumnum):\innerradius) -- cycle; + + % Draw the data labels + \draw [*-,thin,emphasis] node [append after command={(\midangle:\midradius pt) -- (\midangle:\outerradius + 1ex) -- (\tikzlastnode)}] at (\midangle:\outerradius + 1ex) [xshift=\labelshiftdir*0.5cm,inner sep=1ex, outer sep=0pt, text width=\width,anchor=\textanchor,align=\textalign,font=\small,text=body]{\name}; + % Set the old cumulated angle to the new value + \global\let\cumnum=\newcumnum + } + \end{scope} +% \draw[gray] (0,0) circle (\outerradius) circle (\innerradius); + \end{tikzpicture}\par + \endgroup +} + +\newcommand{\cvref}[3]{% + \smallskip + \textcolor{emphasis}{\textbf{#1}}\par + \begin{description}[font=\color{accent},style=multiline,leftmargin=1.35em,align=left] + \item[\small\normalfont\emailsymbol] #2 + \item[\small\normalfont\mailaddresssymbol] #3 + \end{description} +% \medskip +} + +\newenvironment{cvcolumn}[1]{\begin{minipage}[t]{#1}\raggedright}{\end{minipage}} + +\RequirePackage[backend=biber,style=authoryear,sorting=ydnt]{biblatex} +%% For removing numbering entirely when using a numeric style +% \setlength{\bibhang}{1em} +% \DeclareFieldFormat{labelnumberwidth}{\makebox[\bibhang][l]{\itemmarker}} +% \setlength{\biblabelsep}{0pt} +\defbibheading{pubtype}{\cvsubsection{#1}} +\renewcommand{\bibsetup}{\vspace*{-\baselineskip}} +\AtEveryBibitem{\makebox[\bibhang][l]{\itemmarker}} +\setlength{\bibitemsep}{0.25\baselineskip} + +% v1.1.2: make it easier to add a sidebar aligned with top of next page +\RequirePackage{afterpage} +\newcommand{\addsidebar}[2][]{\marginpar{% + \ifstrequal{#1}{}{}{\vspace*{#1}}% + \input{#2}}% +} +\newcommand{\addnextpagesidebar}[2][]{\afterpage{\addsidebar[#1]{#2}}} + +\AtBeginDocument{% + \pagestyle{empty} + \color{body} + \raggedright +} diff --git a/cv.tex b/cv.tex index c83baf5..82f844d 100644 --- a/cv.tex +++ b/cv.tex @@ -1,72 +1,161 @@ -\documentclass{mcv} +\documentclass[10pt,a4paper,ragged2e,withhyper]{altacv} +\geometry{left=1.25cm,right=1.25cm,top=1.5cm,bottom=1.5cm,columnsep=1.2cm} -\author{Mateja Mari\'c} -\email{mail@matejamaric.com} -\homepage{matejamaric.com} -\github{MatejaMaric} +% Change the font if you want to, depending on whether +% you're using pdflatex or xelatex/lualatex +\ifxetexorluatex + % If using xelatex or lualatex: + \setmainfont{Lato} +\else + % If using pdflatex: + \usepackage[default]{lato} +\fi -\begin{document} +\definecolor{NiceBlue}{HTML}{61a8ff} +\definecolor{SlateGrey}{HTML}{2E2E2E} +\definecolor{LightGrey}{HTML}{666666} +\colorlet{heading}{NiceBlue} +\colorlet{headingrule}{NiceBlue} +\colorlet{subheading}{NiceBlue} +\colorlet{accent}{NiceBlue} +\colorlet{emphasis}{SlateGrey} +\colorlet{body}{LightGrey} -\makecvtitle - -\section{Education} - -\cvedu -{2019--Present} -{Bachelor of Applied Science} -{School of Electrical and Computer Engineering of Applied Studies} -{https://viser.edu.rs} -{Belgrade - Serbia} -{\textit{New Computer Technologies}} - -\cvedu -{2015--2019} -{Computer Electrotechnician} -{Electrical Engineering High School ``Nikola Tesla''} -{http://teslabg.edu.rs} -{Belgrade - Serbia} -{} - -\section{Languages} -\cvitem{Serbian}{Native} -\cvitem{English}{Fluent} - -\section{Skills} -\cvitem{Advance}{HTML5, CSS3, JavaScript, PHP (Laravel), SQL (MariaDB), Git, GNU/Linux, C/C++} -\cvitem{Intermediate}{Bash Scripting, Python, RegEx, \LaTeX} -\cvitem{Used}{Vue.js, Java, C\#, OpenBSD, x86\_64 ASM, Scheme (Lisp)} - -\section{Experience} -%\cvjob{}{}{}{}{}{} - -\subsection{Web Development} -\cvproject{Serbian YOTA Website}{\url{https://yota.yu1srs.org.rs}}{ -Website I made for Serbian section of international youth amateur radio organization ``Youngsters On The Air'' (\url{https://www.ham-yota.com/}). -Made primarily to handle frequency reservations and special call signs management, -but it also has simple news and gallery management. -It's made with the help of Laravel, MariaDB, jQuery and Bootstrap. -You can take a look at source code on: \url{https://git.matejamaric.com/yota-laravel} -} +\renewcommand{\itemmarker}{{\small\textbullet}} +\renewcommand{\ratingmarker}{\faCircle} -\subsection{GNU/Linux Administration} -\cvproject{Mail Server}{}{ -I host my very own mail server that serves my domain. It runs OpenSMTPD, Dovecot and Rspamd. -I host it on an unmanaged Virtual Private Server with full root and VNC access, where I configured everything from ground up. -It is the project I am most proud of, given all the technicalities that go into it and time I had to allocate for them. -I plan on switching to Postfix instead of OpenSMTPD and adding MariaDB to manage virtual users and domains, effectively making it enterprise-grade. +%% My additional commands. %% +\NewInfoField{githubinfo}{\faGithub}[https://] +\newcommand{\myGithubUsername}{MatejaMaric} +\newcommand{\cvproject}[3]{ + {\large\color{emphasis}#1\par} + \smallskip\normalsize + \ifstrequal{#2}{}{}{{\small\makebox[0.5\linewidth][l]{\faGlobe~\href{https://#2}{#2}}}} + \ifstrequal{#3}{}{}{{\small\makebox[0.5\linewidth][l]{\faGithub~\href{https://github.com/\myGithubUsername/#3}{#3}}}}\par + \medskip\normalsize } +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\cvproject{Git Server}{\url{https://git.matejamaric.com}}{ -I have a git server that I use for my public and private repositories. It runs Gitolite and serves public repositories with Cgit, -git-http-backend and Apache.\\ -I also have a blog post about it: \url{https://matejamaric.com/blog/git-server/} +\begin{document} +\name{Mateja Mari\'c} +\tagline{} +\personalinfo{ + \location{Belgrade, Serbia} + \homepage{matejamaric.com} + \email{mail@matejamaric.com} + \githubinfo{github.com/\myGithubUsername} + %\linkedin{} + %\phone{+000 00 000 0000} } -\subsection{3D Graphics Programming} -\cvproject{3D Software Render}{\url{https://github.com/MatejaMaric/erender}}{ -Barycentric 3D render that I made back when I was interested in computer graphics. -It's written entirely from scratch in C++ using SFML library for screen buffer, making it cross-platform. -It implements OBJ loader, Z-buffering, translation, transformation, rotation and projection matrix. -} +\makecvheader + +%% Depending on your tastes, you may want to make fonts of itemize environments slightly smaller +\AtBeginEnvironment{itemize}{\small} + + +\cvsection{Experience} + +\cvsubsection{Web Development} + +\cvproject{Serbian YOTA Website}{yota.yu1srs.org.rs}{yota-laravel} + +\begin{itemize} +\item Website I made for Serbian section of international youth amateur radio organization ``Youngsters On The Air'' (\href{https://www.ham-yota.com/}{www.ham-yota.com}). +\item Made primarily to handle frequency reservations and special call signs management, but it also has simple news and gallery management system. +\item It's made with the help of Laravel, Vue.js, MariaDB and Bootstrap. +\end{itemize} + +\divider + +\cvsubsection{GNU/Linux Administration} + +\cvproject{Mail Server}{}{} + +\begin{itemize} +\item I host my very own mail server that serves my domain. It runs OpenSMTPD, Dovecot and Rspamd. +\item Hosted on an unmanaged Virtual Private Server with full root and VNC access, where I configured everything from ground up. +\end{itemize} + +\medskip + +\cvproject{Git Server}{git.matejamaric.com}{} + +\begin{itemize} +\item I have a git server that I use for my public and private repositories. It runs Gitolite and serves public repositories with Cgit, git-http-backend and Apache. +\item I have a blog post about it: \url{https://matejamaric.com/blog/git-server/} +\end{itemize} + +\divider + +\cvsubsection{Graphics Programming} + +\cvproject{3D Software Render}{}{erender} + +\begin{itemize} +\item Barycentric 3D render that I made back when I was interested in computer graphics. +\item Written entirely from scratch in C++ using SFML library for screen buffer, making it cross-platform. +\item Implements OBJ loader, Z-buffering, translation, transformation, rotation and projection matrix. +\end{itemize} + + +\cvsection{Technologies} + +\cvsubsection{Project Experience} +\cvtag{HTML5} +\cvtag{CSS3} +\cvtag{JavaScript (Vue.js \& Vuex)} +\cvtag{PHP (Laravel)} +\cvtag{SQL (MariaDB)} +\cvtag{Git} +\cvtag{GNU/Linux} +\cvtag{C/C++} + +\divider + +\cvsubsection{Occasionally using} +\cvtag{Bash Scripting} +\cvtag{Python} +\cvtag{RegEx} +\cvtag{\LaTeX} + +\divider + +\cvsubsection{Previously used} +\cvtag{Java} +\cvtag{C\#} +\cvtag{OpenBSD} +\cvtag{x86\_64 ASM} +\cvtag{Scheme (Lisp)} + +\smallskip + + +\cvsection{Languages} + +\begin{itemize} + \item \textbf{Serbian (native)} + \item \textbf{English (fluent)} +\end{itemize} + + +\cvsection{Education} + +\cvevent{B.A.Sc in New Computer Technologies}{School of Electrical and Computer Engineering of Applied Studies}{2019 -- Present}{Belgrade, Serbia} + +\divider + +\cvevent{Computer Electrotechnician}{Electrical Engineering High School ``Nikola Tesla''}{2015 -- 2019}{Belgrade, Serbia} + + +\cvsection{Interests} + +\cvtag{Unix-like operating systems} +\cvtag{Free (as in freedom) software} +\cvtag{Web development} +\cvtag{Web technologies} + +\cvtag{Networking} +\cvtag{Minimalist software} \end{document} diff --git a/mcv.cls b/mcv.cls deleted file mode 100644 index d79ebdb..0000000 --- a/mcv.cls +++ /dev/null @@ -1,59 +0,0 @@ -\NeedsTeXFormat{LaTeX2e} - -\ProvidesClass{mcv} - -\LoadClass[a4paper,10pt]{article} - -\RequirePackage[utf8]{inputenc} -\RequirePackage[margin=25mm]{geometry} - -\RequirePackage{hyperref} - -\RequirePackage{titling} -\RequirePackage{titlesec} - -% Set default font to Fira Sans Light using sfdefault option -\RequirePackage[sfdefault,light]{FiraSans} - -% \RequirePackage[defaultsans]{opensans} -% \renewcommand{\familydefault}{\sfdefault} - -% Add Font Awesome -\RequirePackage{fontawesome} - -% Info commands -\newcommand*{\email}[1] { - \def\@email{{\small\faEnvelope}~#1} -} - -\newcommand*{\homepage}[1] { - \def\@homepage{{\small\faGlobe}~#1} -} - -\newcommand*{\github}[1] { - \def\@github{{\small\faGithub}~#1} -} - -\newcommand*{\makecvtitle} { - \begin{flushleft} - \huge\bfseries - \theauthor \hfill CV - \normalsize\mdseries - \end{flushleft} -} - -\newcommand{\cvedu}[6] { - -} - -\newcommand{\cvitem}[2] { - -} - -\newcommand{\cvjob}[6] { - -} - -\newcommand{\cvproject}[3] { -#3 -} -- cgit v1.2.3