summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md6
-rw-r--r--altacv.cls421
-rw-r--r--cv.tex213
-rw-r--r--mcv.cls59
4 files changed, 573 insertions, 126 deletions
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
-}