diff --git a/moderncv/.gitignore b/moderncv/.gitignore index e04eef8..494d9d3 100644 --- a/moderncv/.gitignore +++ b/moderncv/.gitignore @@ -3,4 +3,5 @@ *.* !.gitignore !*.tex -!*.pdf \ No newline at end of file +!*.pdf +!*.cls \ No newline at end of file diff --git a/moderncv/Pedro_Cabral_CV_moderncv.pdf b/moderncv/Pedro_Cabral_CV_moderncv.pdf index ce83cf6..054ed52 100644 Binary files a/moderncv/Pedro_Cabral_CV_moderncv.pdf and b/moderncv/Pedro_Cabral_CV_moderncv.pdf differ diff --git a/moderncv/Pedro_Cabral_CV_moderncv.tex b/moderncv/Pedro_Cabral_CV_moderncv.tex index bd830f3..c36256e 100644 --- a/moderncv/Pedro_Cabral_CV_moderncv.tex +++ b/moderncv/Pedro_Cabral_CV_moderncv.tex @@ -1,5 +1,5 @@ -\documentclass[11pt,a4paper,sans]{moderncv} +\documentclass[11pt,a4paper,sans]{pedro-moderncv} \moderncvstyle{classic} % Style options: 'casual', 'classic', 'oldstyle', 'banking' \moderncvcolor{blue} % Color options: 'blue', 'orange', 'green', 'red', 'purple', 'grey', 'black' @@ -10,33 +10,43 @@ \title{Curriculum Vitae} \address{Rittmeisterkoppel 14C}{22359 Hamburg}{Germany} \phone[mobile]{+49-(0)-17657-909188} -\email{pmpcabral@gmail.com} -\homepage{https://git.sueo.de/pcabral} +\email{pmpcabral@posteo.de} +\homepage{git.sueo.de/pcabral} \social[]{} % Optional: GitHub, LinkedIn, etc. -\photo{../me_m_8x8_4x.jpg} +\photo[3.5cm][0pt]{../me_m_8x8_4x.jpg} + +\hyphenation{interpersonal} + +\linespread{1.05} \begin{document} \makecvtitle -\section{Profile} -\cvitem{Date of Birth}{January 17\textsuperscript{th}, 1988} -\cvitem{Place of Birth}{Setúbal, Portugal} -\cvitem{Nationality}{Portuguese} - -\section{Languages} -\cvitemwithcomment{Portuguese}{First Language}{} -\cvitemwithcomment{German}{Fluent}{} -\cvitemwithcomment{English}{Fluent}{} -\cvitemwithcomment{Spanish}{Good}{} -\cvitemwithcomment{French}{Basic}{} +\begin{minipage}[t]{0.48\textwidth} + \section{Profile} + \cvitem{Date of Birth}{January 17\textsuperscript{th}, 1988} + \cvitem{Place of Birth}{Setúbal, Portugal} + \cvitem{Nationality}{Portuguese} +\end{minipage}\hfill +\begin{minipage}[t]{0.48\textwidth} + \section{Languages} + \cvitemwithcomment{Portuguese}{First Language}{} + \cvitemwithcomment{German}{Fluent}{} + \cvitemwithcomment{English}{Fluent}{} + \cvitemwithcomment{Spanish}{Good}{} + \cvitemwithcomment{French}{Basic}{} +\end{minipage}\hfill \section{Experience} -\cventry{Feb 2017 -- Present}{Software Developer}{HR4YOU AG}{Großefehn, Germany}{}{ - PHP, JavaScript, SQL. +\cventry{Jun 2021 -- Jan 2025}{Software Developer}{For Sale Digital Internet-Agentur GmbH}{Hamburg, Germany}{}{ + PHP (\textit{native, Laravel, WordPress}), JavaScript (\textit{Vanilla, jQuery}), MySQL, Google Cloud Platform, TypeScript, React, Jenkins, ShipIt, Docker, Shopify. +} +\cventry{Feb 2017 -- May 2021}{Software Developer}{HR4YOU AG}{Großefehn, Germany}{}{ + PHP, JavaScript (\textit{Vanilla, jQuery}), MySQL, CSS, LESS. } \cventry{Sep 2014 -- Apr 2016}{Support \& Operations}{SAFIRA/KPMG}{Carnaxide, Portugal}{}{ - IBM Business Process Management, Forefront Identity Manager (FIM). + IBM Business Process Management, Forefront Identity Manager (\textit{FIM}). } \cventry{Apr 2013 -- Sep 2014}{Software Developer}{SAFIRA}{Carnaxide, Portugal}{}{ IBM BPM, IBM WebSphere Message Broker, SQL. @@ -46,6 +56,24 @@ \cventry{2013}{Bachelor of Science}{Faculdade de Ciências e Tecnologia, Universidade Nova de Lisboa}{Caparica, Portugal}{}{} \section{Skills} -\cvitem{Languages \& Tools}{PHP, OOP, JavaScript, jQuery, CSS, SQL, SOAP, REST, PL/SQL, XML} +\cvitem{Languages}{PHP, JavaScript (\textit{Vanilla}), TypeScript, MySQL, CSS, SCSS, HTML} +\cvitem{Frameworks \& Libraries}{Laravel, React, jQuery, Bootstrap} +\cvitem{Content Management Systems}{WordPress, Shopify} +\cvitem{Development Tools}{PHPStorm, Visual Studio Code, Git, Composer, npm, Vite} +\cvitem{DevOps \& Automation Tools}{Jenkins, ShipIt, Docker, Kubernetes, Google Cloud Platform} +\cvitem{Software Development Practices}{Test-Driven Development (TDD), Object-Oriented Programming (OOP), Mobile-First Design} +\cvitem{Soft Skills}{Effective team player, collaborator, and mentor; strong communication and interpersonal skills; experienced moderator} + +\section{About me} + +I believe there are no stupid questions --- only opportunities to learn, improve, and build better things together. + +\bigskip % bigger gap before Personal section + +When I'm not coding, you'll usually find me taking care of and entertaining my two lovely kids. + +\medskip % slightly smaller gap within Personal block + +I also love singing, acting, playing the didgeridoo, and chopping wood. I regularly take cold showers (or ice baths when temperatures drop below zero) in the morning. \end{document} diff --git a/moderncv/pedro-moderncv.cls b/moderncv/pedro-moderncv.cls new file mode 100644 index 0000000..d4fae48 --- /dev/null +++ b/moderncv/pedro-moderncv.cls @@ -0,0 +1,32 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{pedro-moderncv}[2026/02/24 Custom moderncv wrapper] + +\LoadClassWithOptions{moderncv} + +\RequirePackage{tikz} +\RequirePackage{etoolbox} + +\AtBeginDocument{% + \makeatletter + + % Safe scaled length + \newlength{\@photowidthscaled} + + \patchcmd{\makecvhead} + {\includegraphics[width=\@photowidth]{\@photo}} + {% + % Copy original width + \setlength{\@photowidthscaled}{\@photowidth} + % Scale safely (no calc/dimexpr/TikZ parser issues) + \setlength{\@photowidthscaled}{1.2\@photowidthscaled} + + \begin{tikzpicture} + \clip (0, 0) circle (\@photowidth/2); + \node at (-0.2cm, -0.3cm) { + \includegraphics[width=\@photowidthscaled]{\@photo} + }; + \end{tikzpicture} + } + {}{} + \makeatother +}