diff --git a/.gitignore b/.gitignore index f4cc275..cd7f585 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ *~ -*\# \ No newline at end of file +*\# +build/ \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..0691f0a --- /dev/null +++ b/Makefile @@ -0,0 +1,5 @@ +cv.pdf: + latexmk -f -xelatex -interaction=nonstopmode -output-directory=$(PWD)/build/ cv.tex + +.PHONY: build +build: cv.pdf diff --git a/cv.tex b/cv.tex new file mode 100644 index 0000000..3291e72 --- /dev/null +++ b/cv.tex @@ -0,0 +1,103 @@ +\documentclass{lxsameer_cv} + +\setname{Sameer}{Rahmani} +\setaddress{Dublin, Ireland} +\setmobile{+353 85 8559285} +\setmail{lxsameer@lxsameer.com} +\setposition{Senior Software Engineer} +%you can play with color of the template (red is also nice..) +\setlinkedinaccount{https://www.linkedin.com/in/lxsameer/} +\setgithubaccount{https://devheroes.codes/lxsameer} +\setthemecolor{red} + +\begin{document} +%Set variables +%You can add sections, texts, explanations just by copying the style below. +% Replace the dummy texts "\lipsum[1][x-x]\par" with actual texts. +%Create header +\headerview{} +\vspace{1ex} + + +%Sections + +\begin{multicols}{2}[] + + % Summary + \addblocktext{Summary}{% + I'm a software engineer by day and an amateur scientist by night who is + passionate about learning cutting edge technologies and adventuring in + the world of science. A Huge Free Software fan, contributor and advocate. + + I'm a language enthusiastic who implemented couple of languages and have + neck for implementing fine grain concurrency at low level. + + I'm a big data/distributed systems researcher who done several + implementation using tools like: Clojure, Kafka, Zookeeper, Mesos, Onyx, + Cassandra and some other fantastic tools. + } + %Education + \section{Education} + \experience{Azad University}{2005-2009} % chktex 8 + \explanation{B.S in Civil Engineering} + + % Skills + \section{Skills} + + \columnbreak{} + % Experience + \section{Experience} + % ==== + \role{Udemy}{Senior Staff Software Engineer}{2018-Present}{ + \jobdesc{ + \hspace{0.2cm} Played a key role in delivering the most important UFB project in + its lifetime (since 2015) which is the LearningPaths and moved to + SRE/Build team to improve the efficiency of our services and + development environments. We are using Python/Django, Docker, + AWS, K8s, Mesos, RabbitMQ, Kafka, Redshift, MySQL, Cassandra, + C/Rust and \ldots }} + + \role{PageFair}{Senior Software Engineer}{2017-2018}{ % chktex 8 + \jobdesc{ + \hspace{0.2cm} Successfully developed and maintained a very large scale and + complex system of several components using technologies like + NodeJS, Scala, Docker, AWS, Promethus, Python, Django, + PostgreSQL, RabbitMQ and \ldots }} + + \role{Buzzjective}{Senior Software Engineer}{2014-2017}{ % chktex 8 + \jobdesc{ + \hspace{0.2cm} Worked on a face to face identification service based on Germany + called identity.tm. We used RubyOnRails, AngularJS, PostgreSQL, + Websocket, WebRTC, Docker and \ldots + } + } + + \role{Yellowen}{Senior Software Engineer}{2010-2014}{ % chktex 8 + \jobdesc{ + \hspace{0.2cm} Successfully developed and managed serveral large scale web + and mobile projects Using RubyonRails, Clojure, Python/Django, + MongoDB, PostgreSQL, Riak, Redis, ElasticSearch, Fluentd, Cassandra, + Javascript and \ldots + } + } + + \role{Bayan}{Senior Software Engineer}{2009-2010}{ % chktex 8 + \jobdesc{ + \hspace{0.2cm} Worked on a large scale Python/Django SSO which is the beating +heart of Bayan services. We used MongoDB, Python, Django, +Celery, Memcached, PostgreSQL and \ldots + } + } + + \role{Yellowen}{Junior Software Engineer}{2005-2009}{ % chktex 8 + \jobdesc{ + \hspace{0.2cm} I mostly worked on a GIS software along side a huge automation + software which ran on 3000 school all over the country. We used: + Python/Django, Qt, PostGIS, PostgreSQL and \ldots + } + } + +\end{multicols} +%Footnote +\createfootnote{} +\end{document} diff --git a/images/avatar.jpg b/images/avatar.jpg new file mode 100644 index 0000000..2c83678 Binary files /dev/null and b/images/avatar.jpg differ diff --git a/lxsameer_cv.cls b/lxsameer_cv.cls new file mode 100644 index 0000000..2af3a81 --- /dev/null +++ b/lxsameer_cv.cls @@ -0,0 +1,247 @@ +%!TEX TS-program = xelatex +%!TEX encoding = UTF-8 Unicode +% Lxsameer's CV Latex class +% Copyright (C) 2022 Sameer Rahmani +% +% This program is free software; you can redistribute it and/or +% modify it under the terms of the GNU General Public License +% as published by the Free Software Foundation; either version 2 +% of the License, or (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program; if not, write to the Free Software +% Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +% This is a work based on Murat Can Karacabey's work + +\author{Sameer Rahmani} +% moved here I guess article class causes option clash with xcolor if used after loading the class +\RequirePackage[dvipsnames]{xcolor} +\LoadClass[11pt]{article} +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{lxsameer_cv}[2022/03/22 lxsameer's CV Class] +\RequirePackage[sfdefault]{noto} +\RequirePackage{multicol} +\RequirePackage{etoolbox} +\RequirePackage{pgffor} +\RequirePackage{titlesec} +\RequirePackage{tikz} +\RequirePackage{fontspec} +\RequirePackage[left=0.75in,top=0.3in,right=0.75in,bottom=0.6in]{geometry} % Document margins +\RequirePackage{hyperref} +\RequirePackage{fontawesome} +\RequirePackage{mfirstuc} +\RequirePackage{ifthen} +\RequirePackage{lipsum} +\RequirePackage{array} +\pagestyle{empty} + +%Setup + +\newcommand*{\setname}[2]{\def\@firstname{#1}\def\@lastname{#2}} +\newcommand*{\setaddress}[1]{\def\@address{#1}} +\newcommand*{\setmobile}[1]{\def\@mobile{#1}} +\newcommand*{\setposition}[1]{\def\@position{#1}} +\newcommand*{\setmail}[1]{\def\@mail{#1}} +\newcommand*{\setthemecolor}[1]{\def\@themecolor{#1}} +\newcommand*{\setlinkedinaccount}[1]{\def\@linkedinaccount{#1}} +\newcommand*{\setgithubaccount}[1]{\def\@githubaccount{#1}} + +%Setup for coverletter + +\newcommand*{\setcompanyname}[1]{\def\@companyname{#1}} +\newcommand*{\setcontactperson}[1]{\def\@contactperson{#1}} +\newcommand*{\setclaimedposition}[1]{\def\@claimedposition{#1}} + + +\hypersetup{ + colorlinks=true, + urlcolor=cyan, +} + +% View commands +% Header + +% can makebox also be used? +\newcommand\headerview{ +\begin{minipage}{0.25\linewidth} + \profpic{0.22}{images/avatar} +\end{minipage}% +\hfill +\begin{minipage}{0.45\linewidth} + \center \name \\[0.05cm] + \contact % address \ mobile \\ mail +\end{minipage} +} + +%profilpicture + +\newsavebox{\picbox} +\newcommand{\profpic}[2]{% + \savebox{\picbox}{% + \includegraphics[scale=#1]{#2}}% + \tikz\node [draw, circle,% + line width=4pt, color=white,% + minimum width=\wd\picbox,minimum height=\ht\picbox,% + path picture={ \node at (path picture bounding box.center)% + {\usebox{\picbox}};}]% + {};} + +%contactsubviews + + +\newcommand{\githubview}{\href{\@linkedinaccount}{\faLinkedinSquare\ \footnotesize linkedin}} +\newcommand{\linkedinview}{\href{\@githubaccount}{\faGithubSquare\ \footnotesize github}} + +\newcommand{\name}{% + {\large \@firstname \ \textsc{\@lastname}} +} + +\newcommand{\contact}{% + {\small \@address \cps \@mobile \\ \@mail% + \\% + \linkedinview \cps \githubview \\ + } % +} + +% Covverletterview + +\newcommand\coverletter[1]{ +\\ \coverlettersubview +\section{} \vspace{1ex} +\textbf{ Dear \@contactperson, \\[0.1cm]} + #1 +} + +\newcommand\coverlettersubview{ +\begin{tabular}{>{\scshape \bfseries \color{\@themecolor}}l >{\small }l} +Company: & \@companyname \\ +Position: & \@claimedposition \\ +\end{tabular} +} + + +% Helper commands + +\newcommand\ruleafter[1]{#1~{\color{black!60!\@themecolor}\hrulefill}} % a trick to put the line with parameter in \titleformat + +%colorfulpipeseperator + +\newcommand{\cps}{{\color{\@themecolor} \quad\textbar\quad}} +\newcommand{\cpshalf}{{\color{\@themecolor} \hspace{0.2em}\textbar\hspace{0.2em}}} + +\newcommand{\coloredbullet}{{\color{\@themecolor} \textbullet}} + +% Edit section styles + +\titleformat{\section} % Customise the \section command + {\large\bfseries\scshape\raggedright\color{\@themecolor}} % Make the \section headers large (\Large), + % small capitals (\scshape) and left aligned (\raggedright) + {}{0em} % Can be used to give a prefix to all sections, like 'Section ...' + {\ruleafter} % Can be used to insert code before the heading + +\titlespacing*{\section}{-1pt}{0pt}{0pt} + +% Textview commands + +%% \newcommand{\experience}[2]{% +%% \mbox{\hspace{1em} \scshape \textbf{#1} }% +%% } + +\newcommand{\datetext}[1]{% + {\textit{\tiny \mdseries \color{gray} #1 }} +} + +\newcommand{\experience}[2]{% + \begin{small} + {\hspace{1em} \textbf{\scshape \color{black!10!\@themecolor} #1}} + \end{small} + \hfill + \datetext{#2}\\[0cm] +} +% +\newcommand{\role}[4]{% + \vbox{ + \begin{small} + {\noindent \hspace{1em} \textbf{\scshape \color{black!10!\@themecolor} #1} \jobtitle{#2}} + \end{small} + \hfill + \datetext{#3}\\[0.2cm] + \begin{small} + #4 + \end{small} + } +} + +\newcommand{\jobtitle}[1]{% + {\tiny \color{black!20!gray} #1} +} + +\newcommand{\desc}[1]{% + \begin{minipage}{0.96\linewidth} \scriptsize #1 \end{minipage} \\[0.1cm] +} + +\newcommand{\jobdesc}[1]{% + \mbox{\hspace{1.2em} \scriptsize \desc{#1}}\\[0.3cm] +} + +\newcommand{\explanation}[1]{% + \mbox{\scshape \hspace{1.2em} \footnotesize #1}\\[0.05cm] +} + + +\newcommand{\explanationdetail}[1]{% + \indent \begin{minipage}{0.96\linewidth} \footnotesize #1 \end{minipage} \\[0.1cm] +} + +\newcommand{\itemwithtext}[1]{% + \begin{minipage}{\linewidth} \footnotesize \item #1 \end{minipage} +} + +\newcommand{\addblocktext}[2]{% + \section{#1} + \indent \explanationdetail{\hspace{4ex} #2} +} + +\newcommand\createskill[2]{% + \textsc{\textbf{#1}} & #2 +} + +\newcommand\createtablecontent[1]{% + \foreach \x [count=\xi] in {#1} {\ifthenelse{\xi=1}{\x}{\\ \x}} +} + +\newcommand\createskillsanothertry[1]{%not used + \begin{tabular}{r|l} + \createtablecontent{#1} + \end{tabular} +} + +\newcommand\createskills[1]{% +\explanationdetail{ + \begin{tabular}{rl} + \makeatletter + \@for\thisitem:=#1\do{\thisitem\\[0.1cm]} + \makeatother + \end{tabular} +} +} + +\newcommand\createbullets[1]{% + \renewcommand{\labelitemi}{\coloredbullet} + \begin{itemize} + \makeatletter + \@for\thisitem:=#1\do{\itemwithtext{\thisitem}} + \makeatother + \end{itemize} +} + +\newcommand\createfootnote{% + \renewcommand{\footnotesize}{\fontsize{7pt}{11pt}\selectfont} + \renewcommand\footnoterule{\rule{0.3\linewidth}{0.5pt}} + \let\thefootnote\relax\footnote{\today\ / \href{https://github.com/muratcankaracabey/latex_cv}{source code}}}