├── Resume.pdf ├── preview.jpg ├── profile.png ├── preview_2.jpg ├── .github └── FUNDING.yml ├── fonts ├── FontAwesome.ttf ├── Roboto-Bold.ttf ├── Roboto-Light.ttf ├── Roboto-Thin.ttf ├── Roboto-Italic.ttf ├── Roboto-Medium.ttf ├── Roboto-Regular.ttf ├── Roboto-BoldItalic.ttf ├── Roboto-ThinItalic.ttf ├── Roboto-LightItalic.ttf └── Roboto-MediumItalic.ttf ├── .gitignore ├── cv ├── languages.tex ├── summary.tex ├── publications.tex ├── skills.tex ├── achievements.tex ├── experience.tex ├── interests.tex ├── education.tex ├── references.bib └── projects.tex ├── README.md ├── resume.tex ├── LICENSE └── russell.cls /Resume.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/themagicalmammal/Resume/HEAD/Resume.pdf -------------------------------------------------------------------------------- /preview.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/themagicalmammal/Resume/HEAD/preview.jpg -------------------------------------------------------------------------------- /profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/themagicalmammal/Resume/HEAD/profile.png -------------------------------------------------------------------------------- /preview_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/themagicalmammal/Resume/HEAD/preview_2.jpg -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | ko_fi: themagicalmammal 2 | custom: [ 'buymeacoffee.com/dipannanda', ] 3 | -------------------------------------------------------------------------------- /fonts/FontAwesome.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/themagicalmammal/Resume/HEAD/fonts/FontAwesome.ttf -------------------------------------------------------------------------------- /fonts/Roboto-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/themagicalmammal/Resume/HEAD/fonts/Roboto-Bold.ttf -------------------------------------------------------------------------------- /fonts/Roboto-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/themagicalmammal/Resume/HEAD/fonts/Roboto-Light.ttf -------------------------------------------------------------------------------- /fonts/Roboto-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/themagicalmammal/Resume/HEAD/fonts/Roboto-Thin.ttf -------------------------------------------------------------------------------- /fonts/Roboto-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/themagicalmammal/Resume/HEAD/fonts/Roboto-Italic.ttf -------------------------------------------------------------------------------- /fonts/Roboto-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/themagicalmammal/Resume/HEAD/fonts/Roboto-Medium.ttf -------------------------------------------------------------------------------- /fonts/Roboto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/themagicalmammal/Resume/HEAD/fonts/Roboto-Regular.ttf -------------------------------------------------------------------------------- /fonts/Roboto-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/themagicalmammal/Resume/HEAD/fonts/Roboto-BoldItalic.ttf -------------------------------------------------------------------------------- /fonts/Roboto-ThinItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/themagicalmammal/Resume/HEAD/fonts/Roboto-ThinItalic.ttf -------------------------------------------------------------------------------- /fonts/Roboto-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/themagicalmammal/Resume/HEAD/fonts/Roboto-LightItalic.ttf -------------------------------------------------------------------------------- /fonts/Roboto-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/themagicalmammal/Resume/HEAD/fonts/Roboto-MediumItalic.ttf -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ### TeX ### 2 | ## Core latex/pdflatex auxiliary files: 3 | *.aux 4 | *.lof 5 | *.log 6 | *.lot 7 | *.fls 8 | *.out 9 | *.toc 10 | 11 | ## BibLaTeX auxiliary files: 12 | *.bbl 13 | *.bcf 14 | *.blg 15 | 16 | ## Intermediate documents: 17 | *.dvi 18 | *-converted-to.* 19 | <<<<<<< HEAD 20 | 21 | ### Editor ### 22 | ## Vim & Emacs temp files: 23 | .*sw[op] 24 | *~ 25 | 26 | ### Mac OS X ### 27 | ## Mac OS X metadata files: 28 | *.DS_Store 29 | -------------------------------------------------------------------------------- /cv/languages.tex: -------------------------------------------------------------------------------- 1 | %------------------------------------------------------------------------------- 2 | % SECTION TITLE 3 | %------------------------------------------------------------------------------- 4 | \cvsection{Languages} 5 | 6 | %------------------------------------------------------------------------------- 7 | % CONTENT 8 | %------------------------------------------------------------------------------- 9 | \begin{cvskills} 10 | 11 | %--------------------------------------------------------- 12 | \cvskill 13 | {English} % Language 14 | {Professional proficiency} % Type 15 | 16 | %--------------------------------------------------------- 17 | \cvskill 18 | {Hindi} % Language 19 | {Native proficiency} % Type 20 | 21 | \end{cvskills} 22 | -------------------------------------------------------------------------------- /cv/summary.tex: -------------------------------------------------------------------------------- 1 | %------------------------------------------------------------------------------- 2 | % SECTION TITLE 3 | %------------------------------------------------------------------------------- 4 | \cvsection{Personal Profile} 5 | 6 | 7 | %------------------------------------------------------------------------------- 8 | % CONTENT 9 | %------------------------------------------------------------------------------- 10 | \begin{cvparagraph} 11 | 12 | %--------------------------------------------------------- 13 | A University of Leeds graduate student who is enrolled in the Data Science and Analysis programme. Dedicated to software engineering, having two or more years of expertise, and specialising in full-stack web development, algorithms, and machine learning. Searching mostly for Machine Learning, Data Engineer, and Python Development positions. 14 | \end{cvparagraph} -------------------------------------------------------------------------------- /cv/publications.tex: -------------------------------------------------------------------------------- 1 | %------------------------------------------------------------------------------- 2 | % SECTION TITLE 3 | %------------------------------------------------------------------------------- 4 | \cvsection{Publications} 5 | 6 | %------------------------------------------------------------------------------- 7 | % SUBSECTION TITLE 8 | %------------------------------------------------------------------------------- 9 | \cvsubsection{Journal Articles} 10 | 11 | \begin{refsection} 12 | \nocite{Khan2014Incentive} 13 | \nocite{Selimi2015Cloud} 14 | 15 | \newrefcontext[sorting=ydnt] 16 | \printbibliography[ 17 | heading=none 18 | ] 19 | \end{refsection} 20 | 21 | %------------------------------------------------------------------------------- 22 | % SUBSECTION TITLE 23 | %------------------------------------------------------------------------------- 24 | \cvsubsection{Conference Proceedings} 25 | 26 | \begin{refsection} 27 | \nocite{Khan2014Prototyping} 28 | 29 | \newrefcontext[sorting=ydnt] 30 | \printbibliography[ 31 | heading=none 32 | ] 33 | \end{refsection} -------------------------------------------------------------------------------- /cv/skills.tex: -------------------------------------------------------------------------------- 1 | %------------------------------------------------------------------------------- 2 | % SECTION TITLE 3 | %------------------------------------------------------------------------------- 4 | \cvsection{Skills} 5 | 6 | 7 | %------------------------------------------------------------------------------- 8 | % CONTENT 9 | %------------------------------------------------------------------------------- 10 | \begin{cvskills} 11 | 12 | %--------------------------------------------------------- 13 | \cvskill 14 | {Programming} % Category 15 | {Python (Pandas, PyTorch, NumPy, Scikit‑learn. etc.), R(ggplot2), PHP, C/C++, HTML/CSS, JavaScript, SQL.} % Skills 16 | 17 | %--------------------------------------------------------- 18 | \cvskill 19 | {Miscellaneous} % Category 20 | {Linux, Shell (Bash/Zsh), \LaTeX (Overleaf/R Markdown), Tableau, Microsoft Office, Firebase, Git.} % Skills 21 | %--------------------------------------------------------- 22 | \cvskill 23 | {Soft Skills} % Category 24 | {Time Management, Teamwork, Problem-solving, Documentation, Engaging Presentation.} % Skills 25 | 26 | \end{cvskills} 27 | -------------------------------------------------------------------------------- /cv/achievements.tex: -------------------------------------------------------------------------------- 1 | %------------------------------------------------------------------------------- 2 | % SECTION TITLE 3 | %------------------------------------------------------------------------------- 4 | \cvsection{Achievements} 5 | 6 | 7 | 8 | %------------------------------------------------------------------------------- 9 | % CONTENT 10 | %------------------------------------------------------------------------------- 11 | \begin{cvhonors} 12 | 13 | %--------------------------------------------------------- 14 | \cvhonor 15 | {319/340} % Award 16 | {Graduate Record Examinations (GRE)} % Event 17 | {India} % Location 18 | {2019} % Date(s) 19 | \cvhonor 20 | {Elite} % Award 21 | {DBMS NPTEL Exam} % Event 22 | {India} % Location 23 | {2018} % Date(s) 24 | \cvhonor 25 | {Elite} % Award 26 | {C NPTEL Exam} % Event 27 | {India} % Location 28 | {2018} % Date(s) 29 | \cvhonor 30 | {Winner} % Award 31 | {Smart India Hackathon (SIH)} % Event 32 | {India} % Location 33 | {2019} % Date(s) 34 | \cvhonor 35 | {Level 3} % Award 36 | {TablaNiketan Exam} % Event 37 | {India} % Location 38 | {2014} % Date(s) 39 | \cvhonor 40 | {Level 1} % Award 41 | {National Talent Search Exam (NTSE)} % Event 42 | {India} % Location 43 | {2014} % Date(s) 44 | \end{cvhonors} -------------------------------------------------------------------------------- /cv/experience.tex: -------------------------------------------------------------------------------- 1 | %------------------------------------------------------------------------------- 2 | % SECTION TITLE 3 | %------------------------------------------------------------------------------- 4 | \cvsection{Work Experience} 5 | 6 | 7 | %------------------------------------------------------------------------------- 8 | % CONTENT 9 | %------------------------------------------------------------------------------- 10 | \begin{cventries} 11 | 12 | %--------------------------------------------------------- 13 | \cventry 14 | {Software Engineer} % Job title 15 | {Indian Institute of Technology} % Organisation 16 | {Indore, India} % Location 17 | {Sept 2020 - Aug 2021} % Date(s) 18 | { 19 | \begin{cvitems} % Description(s) of tasks/responsibilities 20 | \item {Collaborated with a four-person team to develop a CNN model that utilised YOLO as a foundation to improve the accuracy of ambient lighting conditions in the Mobile net architecture.} 21 | \item {Automated and optimised the data handling process for traffic signs, working with Ubuntu 20.04 did shell scripting, and employed other Linux tools.} 22 | \item {Significantly boosted the model's accuracy by 60\%, which was yielding an accuracy of 70-78\% under Indian street light. The older models, had an accuracy of 10-15\%.} 23 | \item {\textbf{Technical Skills:} Python with PyTorch, NumPy, Matplotlib, Pandas, Scikit-learn, C++, Ubuntu Linux, Linux tools, Apt, Scripting, Git.} 24 | \item {\textbf{Soft Skills:} Teamwork, Time Management, Communication, Presentation skills.} 25 | \end{cvitems} 26 | } 27 | 28 | \end{cventries} 29 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # $\color[RGB]{250,100,122} Information$ 4 | 5 | This resume template has been developed with the guidance of coaches at the University of Leeds, ensuring it aligns with the standards set forth by the Russell Group in the United Kingdom. 6 | 7 | # $\color[RGB]{250,100,122} Preview$ 8 | 9 | |prev | prev2| 10 | |:-------------------------:|:-------------------------:| 11 | 12 | # $\color[RGB]{250,100,122} Contribute$ 13 | This project is open to contributions of all kinds. Fork the repo, make your changes, and submit a pull request. Every contribution counts! 14 | 15 | Thanks for considering contributing to this project. Let's make it awesome together! 16 | 17 | # $\color[RGB]{0,200,0} Óverleaf$ 18 | You can edit this [here](https://www.overleaf.com/latex/templates/russelresume/zqnypvvjsfvq). 19 | 20 | # $\color[RGB]{250,100,122} References$ 21 | 22 | 23 | # $\color[RGB]{250,100,122} Credits$ 24 | ![avatar](https://images.weserv.nl/?url=avatars.githubusercontent.com/u/1484002?v=4&h=50&w=50&fit=cover&mask=circle&maxage=7d) 25 | ![avatar](https://images.weserv.nl/?url=avatars.githubusercontent.com/u/26139260?v=4&h=50&w=50&fit=cover&mask=circle&maxage=7d) 26 | ![avatar](https://images.weserv.nl/?url=avatars.githubusercontent.com/u/13283410?v=4&h=50&w=50&fit=cover&mask=circle&maxage=7d) 27 | 28 | 29 | -------------------------------------------------------------------------------- /cv/interests.tex: -------------------------------------------------------------------------------- 1 | %------------------------------------------------------------------------------- 2 | % SECTION TITLE 3 | %------------------------------------------------------------------------------- 4 | 5 | 6 | \cvsection{Interests} 7 | 8 | 9 | %------------------------------------------------------------------------------- 10 | % CONTENT 11 | %------------------------------------------------------------------------------- 12 | \begin{cvskills} 13 | %--------------------------------------------------------- 14 | \cvskill 15 | {Cooking} % Interest 16 | {I love cooking. I am an expert in most Indian-style cooking, enjoy baking and making my own pizza.} % Description 17 | 18 | %--------------------------------------------------------- 19 | \cvskill 20 | {Linux} % Interest 21 | {Since 2017, I have been in love with Linux. I recently switched to Mac OS, which feels like a premium of Linux.} % Description 22 | %--------------------------------------------------------- 23 | \cvskill 24 | {Technical Writing} % Interest 25 | {I write descriptive blogs about Linux some of them are on my \href{https://github.com/themagicalmammal/howtodebuntu}{GitHub} and \href{https://medium.com/@d19cyber}{Medium}.} % Description 26 | %--------------------------------------------------------- 27 | \cvskill 28 | {Art} % Interest 29 | {I have always enjoyed drawing since I was a child. Recently, I have shifted to digital art mostly on \href{https://www.deviantart.com/themagicalmammal}{Deviantart}.} % Description 30 | %--------------------------------------------------------- 31 | \cvskill 32 | {Video Games} % Interest 33 | {I always had the gaming gene. I mostly play on my phone and occasionally on my switch.} % Description 34 | %--------------------------------------------------------- 35 | \cvskill 36 | {Swimming} % Interest 37 | {I started swimming when I was 12. Going through submerged things while holding my breath was the most exciting part.} % Description 38 | 39 | \end{cvskills} -------------------------------------------------------------------------------- /cv/education.tex: -------------------------------------------------------------------------------- 1 | %------------------------------------------------------------------------------- 2 | % SECTION TITLE 3 | %------------------------------------------------------------------------------- 4 | \cvsection{Education} 5 | 6 | 7 | %------------------------------------------------------------------------------- 8 | % CONTENT 9 | %------------------------------------------------------------------------------- 10 | \begin{cventries} 11 | 12 | %--------------------------------------------------------- 13 | \cventry 14 | {MSc in Data Science and Analysis} % Degree 15 | {University of Leeds} % Institution 16 | {Leeds, UK} % Location 17 | {Sept 2021 - Current} % Date(s) 18 | { 19 | \begin{cvitems} % Description(s) bullet points 20 | \item {Head of School International Excellence Scholar} 21 | \item {Working as a PAL Mentor} 22 | \item {\textbf{Courses:} Data Science, Programming for Data Science, Knowledge Representation and Reasoning, Statistical Theory and Methods, Learning Skills through Case Studies, Artificial Intelligence, Machine Learning, Statistical Learning} 23 | \end{cvitems} 24 | } 25 | 26 | \cventry 27 | {BTech in Information Technology} % Degree 28 | {Madhav Institute of Technology and Science} % Institution 29 | {Gwalior, India} % Location 30 | {May 2016 - May 2020} % Date(s) 31 | { 32 | \begin{cvitems} % Description(s) bullet points 33 | \item {Graduated with Distinction} 34 | \item {Selected for Industrial Visit among the top of the class} 35 | \end{cvitems} 36 | } 37 | 38 | \cventry 39 | {High School} % Degree 40 | {Atomic Energy Central School} % Institution 41 | {Indore, India} % Location 42 | {Apr 2014 - Apr 2016} % Date(s) 43 | { 44 | \begin{cvitems} % Description(s) bullet points 45 | \item {Passed with Distinction} 46 | \item {Specialised in Physics, Chemistry, and Maths with Computer Science} 47 | \end{cvitems} 48 | } 49 | %--------------------------------------------------------- 50 | \end{cventries} 51 | -------------------------------------------------------------------------------- /cv/references.bib: -------------------------------------------------------------------------------- 1 | %------------------------------------------------------------------------------- 2 | % REPLACE WITH YOUR PUBLICATIONS 3 | %------------------------------------------------------------------------------- 4 | @Article{Khan2014Incentive, 5 | author = {Khan, Amin M and B{\"{u}}y{\"{u}}ksahin, {\"{U}}mit C. and Freitag, Felix}, 6 | title = {{Incentive-based resource assignment and regulation for collaborative cloud services in community networks}}, 7 | journal = {Journal of Computer and System Sciences}, 8 | year = {2015}, 9 | volume = {81}, 10 | number = {8}, 11 | pages = {1479--1495}, 12 | month = dec, 13 | doi = {10.1016/j.jcss.2014.12.023}, 14 | issn = {00220000}, 15 | url = {http://www.sciencedirect.com/science/article/pii/S0022000014001871 http://linkinghub.elsevier.com/retrieve/pii/S0022000014001871} 16 | } 17 | 18 | @Article{Selimi2015Cloud, 19 | author = {Selimi, Mennan and Khan, Amin M and Dimogerontakis, Emmanouil and Freitag, Felix and Centelles, Roger Pueyo}, 20 | title = {{Cloud services in the Guifi.net community network}}, 21 | journal = {Computer Networks}, 22 | year = {2015}, 23 | volume = {93}, 24 | number = {P2}, 25 | pages = {373--388}, 26 | month = dec, 27 | doi = {10.1016/j.comnet.2015.09.007}, 28 | issn = {13891286}, 29 | url = {http://linkinghub.elsevier.com/retrieve/pii/S1389128615003175} 30 | } 31 | 32 | @InProceedings{Khan2014Prototyping, 33 | author = {Khan, Amin M and Buyuksahin, Umit Cavus and Freitag, Felix}, 34 | title = {{Prototyping Incentive-Based Resource Assignment for Clouds in Community Networks}}, 35 | booktitle = {28th IEEE International Conference on Advanced Information Networking and Applications (AINA 2014)}, 36 | year = {2014}, 37 | pages = {719--726}, 38 | address = {Victoria, Canada}, 39 | month = may, 40 | publisher = {IEEE}, 41 | doi = {10.1109/AINA.2014.88}, 42 | isbn = {978-1-4799-3630-4}, 43 | url = {http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=6838735} 44 | } -------------------------------------------------------------------------------- /cv/projects.tex: -------------------------------------------------------------------------------- 1 | %------------------------------------------------------------------------------- 2 | % SECTION TITLE 3 | %------------------------------------------------------------------------------- 4 | \cvsection{University Projects} 5 | 6 | 7 | %------------------------------------------------------------------------------- 8 | % CONTENT 9 | %------------------------------------------------------------------------------- 10 | \begin{cventries} 11 | 12 | %--------------------------------------------------------- 13 | \cventry 14 | {University of Leeds} % Organisation 15 | {The Relation between GDP and IMR} % Project 16 | {Leeds, UK} % Location 17 | {Feb 2022 - Apr 2022} % Date(s) 18 | { 19 | \begin{cvitems} % Description(s) of project 20 | \item {Analysing data from 1960 to 2020 and discover patterns in the data that show trends between Gross domestic product per capita, Infant Mortality rate, Literacy Rate, and Industrial Development.} 21 | \item {Study cross‑sectional, longitudinal, and among various countries to find variations in trends and get the historical data to back up the change in the trend of our data.} 22 | \item {Specific case studies were traced back to trends seen in the UK and how they affected the GDP and IMR.} 23 | \item {\textbf{Technical Skills:} Tableau, Overleaf, LaTeX.} 24 | \item {\textbf{Soft Skills:} Time Management, Teamwork, Presentation skills, Report writing.} 25 | \end{cvitems} 26 | } 27 | 28 | 29 | %--------------------------------------------------------- 30 | \cventry 31 | {University of Leeds} % Organisation 32 | {IPL Analysis} % Project 33 | {Leeds, UK} % Location 34 | {Nov 2021 - Dec 2021} % Date(s) 35 | { 36 | \begin{cvitems} % Description(s) of project 37 | \item {Analysing data from 2008 to 2015 to discover patterns such as trends, correlations, and probabilities.} 38 | \item {Finding the differences between the best teams and players in various fields, as well as their performance on the field and the opponents.} 39 | \item {\textbf{Technical Skills:} Python with Pandas, matplotlib, Seaborn.} 40 | \item {\textbf{Soft Skills:} Presentation skills, Leadership, Teamwork, Logical Thinking.} 41 | \end{cvitems} 42 | } 43 | 44 | %--------------------------------------------------------- 45 | \cventry 46 | {University of Leeds} % Organisation 47 | {Study of the behavior of Serial Killers} % Project 48 | {Leeds, UK} % Location 49 | {Oct 2021 - Dec 2021} % Date(s) 50 | { 51 | \begin{cvitems} % Description(s) of project 52 | \item {Study of serial killers behavior with various motives such as convenience (did not want children or spouse), enjoyment, power, escape, or avoiding arrest.} 53 | \item {Finding patterns in their starting and ending ages (when they are caught) and other factors of killing, as well as how it varies with different motives.} 54 | \item {\textbf{Technical Skills:} R with ggplot2, tidyr, R Markdown.} 55 | \item {\textbf{Soft Skills:} Report writing, Logical Thinking, Critical Thinking.} 56 | \end{cvitems} 57 | } 58 | 59 | %--------------------------------------------------------- 60 | \end{cventries} 61 | -------------------------------------------------------------------------------- /resume.tex: -------------------------------------------------------------------------------- 1 | %------------------------------------------------------------------------------- 2 | % CONFIGURATIONS 3 | %------------------------------------------------------------------------------- 4 | % A4 paper size by default, use 'letterpaper' for US letter 5 | \documentclass[11pt, a4paper]{russell} 6 | 7 | % Configure page margins with geometry 8 | \geometry{left=1.4cm, top=.8cm, right=1.4cm, bottom=1.8cm, footskip=.5cm} 9 | 10 | % Specify the location of the included fonts 11 | \fontdir[fonts/] 12 | 13 | % Color for highlights 14 | % russell Colors: russell-emerald, russell-skyblue, russell-red, russell-pink, russell-orange 15 | % russell-nephritis, russell-concrete, russell-darknight, russell-purple 16 | \colorlet{russell}{russell-black} 17 | % Uncomment if you would like to specify your own color 18 | % \definecolor{russell}{HTML}{CA63A8} 19 | 20 | % Colors for text 21 | % Uncomment if you would like to specify your own color 22 | % \definecolor{darktext}{HTML}{414141} 23 | % \definecolor{text}{HTML}{333333} 24 | % \definecolor{graytext}{HTML}{5D5D5D} 25 | % \definecolor{lighttext}{HTML}{999999} 26 | 27 | % Set false if you don't want to highlight section with russell color 28 | \setbool{acvSectionColorHighlight}{true} 29 | 30 | % If you would like to change the social information separator from a pipe (|) to something else 31 | \renewcommand{\acvHeaderSocialSep}{\quad\textbar\quad} 32 | 33 | 34 | %------------------------------------------------------------------------------- 35 | % PERSONAL INFORMATION 36 | % Comment any of the lines below if they are not required 37 | %------------------------------------------------------------------------------- 38 | % Available options: circle|rectangle,edge/noedge,left/right 39 | % \photo[rectangle,edge,right]{./examples/profile} 40 | \name{Doe}{John} 41 | % \position{Software Architect{\enskip\cdotp\enskip}Security Expert} 42 | \address{YOUR ADDRESS} 43 | 44 | \mobile{000000000000} 45 | \email{thisis@fakeemail.com} 46 | %\dateofbirth{January 1st, 1970} 47 | \homepage{themagicalmammal.vercel.app} 48 | \github{themagicalmammal} 49 | \linkedin{themagicalmammal} 50 | % \gitlab{gitlab-id} 51 | % \stackoverflow{SO-id}{SO-name} 52 | % \twitter{@twit} 53 | % \skype{skype-id} 54 | % \reddit{reddit-id} 55 | % \medium{madium-id} 56 | % \kaggle{kaggle-id} 57 | % \googlescholar{googlescholar-id}{name-to-display} 58 | %% \firstname and \lastname will be used 59 | % \googlescholar{googlescholar-id}{} 60 | % \extrainfo{extra information} 61 | 62 | % \quote{``Simplicity is deceptively complicated."} 63 | 64 | 65 | %------------------------------------------------------------------------------- 66 | % BIBLIOGRAPHY 67 | %------------------------------------------------------------------------------- 68 | \addbibresource{cv/references.bib} 69 | 70 | %------------------------------------------------------------------------------- 71 | \begin{document} 72 | 73 | % Print the header with above personal informations 74 | % Give optional argument to change alignment(C: center, L: left, R: right) 75 | \makecvheader 76 | 77 | % Print the footer with 3 arguments(,
, ) 78 | % Leave any of these blank if they are not needed 79 | \makecvfooter 80 | {\today} 81 | {} 82 | {\thepage} 83 | 84 | %------------------------------------------------------------------------------- 85 | % CV/RESUME CONTENT 86 | % Each section is imported separately, open each file in turn to modify content 87 | %------------------------------------------------------------------------------- 88 | \input{cv/summary.tex} 89 | \input{cv/education.tex} 90 | \input{cv/experience.tex} 91 | \input{cv/projects.tex} 92 | \input{cv/skills.tex} 93 | \input{cv/achievements.tex} 94 | \input{cv/publications.tex} 95 | \input{cv/interests.tex} 96 | \input{cv/languages.tex} 97 | 98 | \vspace*{\fill} 99 | \centering{\textbf{References available upon request.}} 100 | %------------------------------------------------------------------------------- 101 | \end{document} 102 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The LaTeX Project Public License 2 | =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 3 | 4 | LPPL Version 1.3c 2022-08-13 5 | 6 | Copyright 1999 2002-2022 LaTeX3 Project 7 | Everyone is allowed to distribute verbatim copies of this 8 | license document, but modification of it is not allowed. 9 | 10 | 11 | PREAMBLE 12 | ======== 13 | 14 | The LaTeX Project Public License (LPPL) is the primary license under 15 | which the LaTeX kernel and the base LaTeX packages are distributed. 16 | 17 | You may use this license for any work of which you hold the copyright 18 | and which you wish to distribute. This license may be particularly 19 | suitable if your work is TeX-related (such as a LaTeX package), but 20 | it is written in such a way that you can use it even if your work is 21 | unrelated to TeX. 22 | 23 | The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE', 24 | below, gives instructions, examples, and recommendations for authors 25 | who are considering distributing their works under this license. 26 | 27 | This license gives conditions under which a work may be distributed 28 | and modified, as well as conditions under which modified versions of 29 | that work may be distributed. 30 | 31 | We, the LaTeX3 Project, believe that the conditions below give you 32 | the freedom to make and distribute modified versions of your work 33 | that conform with whatever technical specifications you wish while 34 | maintaining the availability, integrity, and reliability of 35 | that work. If you do not see how to achieve your goal while 36 | meeting these conditions, then read the document `cfgguide.tex' 37 | and `modguide.tex' in the base LaTeX distribution for suggestions. 38 | 39 | 40 | DEFINITIONS 41 | =========== 42 | 43 | In this license document the following terms are used: 44 | 45 | `Work' 46 | Any work being distributed under this License. 47 | 48 | `Derived Work' 49 | Any work that under any applicable law is derived from the Work. 50 | 51 | `Modification' 52 | Any procedure that produces a Derived Work under any applicable 53 | law -- for example, the production of a file containing an 54 | original file associated with the Work or a significant portion of 55 | such a file, either verbatim or with modifications and/or 56 | translated into another language. 57 | 58 | `Modify' 59 | To apply any procedure that produces a Derived Work under any 60 | applicable law. 61 | 62 | `Distribution' 63 | Making copies of the Work available from one person to another, in 64 | whole or in part. Distribution includes (but is not limited to) 65 | making any electronic components of the Work accessible by 66 | file transfer protocols such as FTP or HTTP or by shared file 67 | systems such as Sun's Network File System (NFS). 68 | 69 | `Compiled Work' 70 | A version of the Work that has been processed into a form where it 71 | is directly usable on a computer system. This processing may 72 | include using installation facilities provided by the Work, 73 | transformations of the Work, copying of components of the Work, or 74 | other activities. Note that modification of any installation 75 | facilities provided by the Work constitutes modification of the Work. 76 | 77 | `Current Maintainer' 78 | A person or persons nominated as such within the Work. If there is 79 | no such explicit nomination then it is the `Copyright Holder' under 80 | any applicable law. 81 | 82 | `Base Interpreter' 83 | A program or process that is normally needed for running or 84 | interpreting a part or the whole of the Work. 85 | 86 | A Base Interpreter may depend on external components but these 87 | are not considered part of the Base Interpreter provided that each 88 | external component clearly identifies itself whenever it is used 89 | interactively. Unless explicitly specified when applying the 90 | license to the Work, the only applicable Base Interpreter is a 91 | `LaTeX-Format' or in the case of files belonging to the 92 | `LaTeX-format' a program implementing the `TeX language'. 93 | 94 | 95 | 96 | CONDITIONS ON DISTRIBUTION AND MODIFICATION 97 | =========================================== 98 | 99 | 1. Activities other than distribution and/or modification of the Work 100 | are not covered by this license; they are outside its scope. In 101 | particular, the act of running the Work is not restricted and no 102 | requirements are made concerning any offers of support for the Work. 103 | 104 | 2. You may distribute a complete, unmodified copy of the Work as you 105 | received it. Distribution of only part of the Work is considered 106 | modification of the Work, and no right to distribute such a Derived 107 | Work may be assumed under the terms of this clause. 108 | 109 | 3. You may distribute a Compiled Work that has been generated from a 110 | complete, unmodified copy of the Work as distributed under Clause 2 111 | above, as long as that Compiled Work is distributed in such a way that 112 | the recipients may install the Compiled Work on their system exactly 113 | as it would have been installed if they generated a Compiled Work 114 | directly from the Work. 115 | 116 | 4. If you are the Current Maintainer of the Work, you may, without 117 | restriction, modify the Work, thus creating a Derived Work. You may 118 | also distribute the Derived Work without restriction, including 119 | Compiled Works generated from the Derived Work. Derived Works 120 | distributed in this manner by the Current Maintainer are considered to 121 | be updated versions of the Work. 122 | 123 | 5. If you are not the Current Maintainer of the Work, you may modify 124 | your copy of the Work, thus creating a Derived Work based on the Work, 125 | and compile this Derived Work, thus creating a Compiled Work based on 126 | the Derived Work. 127 | 128 | 6. If you are not the Current Maintainer of the Work, you may 129 | distribute a Derived Work provided the following conditions are met 130 | for every component of the Work unless that component clearly states 131 | in the copyright notice that it is exempt from that condition. Only 132 | the Current Maintainer is allowed to add such statements of exemption 133 | to a component of the Work. 134 | 135 | a. If a component of this Derived Work can be a direct replacement 136 | for a component of the Work when that component is used with the 137 | Base Interpreter, then, wherever this component of the Work 138 | identifies itself to the user when used interactively with that 139 | Base Interpreter, the replacement component of this Derived Work 140 | clearly and unambiguously identifies itself as a modified version 141 | of this component to the user when used interactively with that 142 | Base Interpreter. 143 | 144 | b. Every component of the Derived Work contains prominent notices 145 | detailing the nature of the changes to that component, or a 146 | prominent reference to another file that is distributed as part 147 | of the Derived Work and that contains a complete and accurate log 148 | of the changes. 149 | 150 | c. No information in the Derived Work implies that any persons, 151 | including (but not limited to) the authors of the original version 152 | of the Work, provide any support, including (but not limited to) 153 | the reporting and handling of errors, to recipients of the 154 | Derived Work unless those persons have stated explicitly that 155 | they do provide such support for the Derived Work. 156 | 157 | d. You distribute at least one of the following with the Derived Work: 158 | 159 | 1. A complete, unmodified copy of the Work; 160 | if your distribution of a modified component is made by 161 | offering access to copy the modified component from a 162 | designated place, then offering equivalent access to copy 163 | the Work from the same or some similar place meets this 164 | condition, even though third parties are not compelled to 165 | copy the Work along with the modified component; 166 | 167 | 2. Information that is sufficient to obtain a complete, 168 | unmodified copy of the Work. 169 | 170 | 7. If you are not the Current Maintainer of the Work, you may 171 | distribute a Compiled Work generated from a Derived Work, as long as 172 | the Derived Work is distributed to all recipients of the Compiled 173 | Work, and as long as the conditions of Clause 6, above, are met with 174 | regard to the Derived Work. 175 | 176 | 8. The conditions above are not intended to prohibit, and hence do not 177 | apply to, the modification, by any method, of any component so that it 178 | becomes identical to an updated version of that component of the Work as 179 | it is distributed by the Current Maintainer under Clause 4, above. 180 | 181 | 9. Distribution of the Work or any Derived Work in an alternative 182 | format, where the Work or that Derived Work (in whole or in part) is 183 | then produced by applying some process to that format, does not relax or 184 | nullify any sections of this license as they pertain to the results of 185 | applying that process. 186 | 187 | 10. a. A Derived Work may be distributed under a different license 188 | provided that license itself honors the conditions listed in 189 | Clause 6 above, in regard to the Work, though it does not have 190 | to honor the rest of the conditions in this license. 191 | 192 | b. If a Derived Work is distributed under a different license, that 193 | Derived Work must provide sufficient documentation as part of 194 | itself to allow each recipient of that Derived Work to honor the 195 | restrictions in Clause 6 above, concerning changes from the Work. 196 | 197 | 11. This license places no restrictions on works that are unrelated to 198 | the Work, nor does this license place any restrictions on aggregating 199 | such works with the Work by any means. 200 | 201 | 12. Nothing in this license is intended to, or may be used to, prevent 202 | complete compliance by all parties with all applicable laws. 203 | 204 | 205 | NO WARRANTY 206 | =========== 207 | 208 | There is no warranty for the Work. Except when otherwise stated in 209 | writing, the Copyright Holder provides the Work `as is', without 210 | warranty of any kind, either expressed or implied, including, but not 211 | limited to, the implied warranties of merchantability and fitness for a 212 | particular purpose. The entire risk as to the quality and performance 213 | of the Work is with you. Should the Work prove defective, you assume 214 | the cost of all necessary servicing, repair, or correction. 215 | 216 | In no event unless required by applicable law or agreed to in writing 217 | will The Copyright Holder, or any author named in the components of the 218 | Work, or any other party who may distribute and/or modify the Work as 219 | permitted above, be liable to you for damages, including any general, 220 | special, incidental or consequential damages arising out of any use of 221 | the Work or out of inability to use the Work (including, but not limited 222 | to, loss of data, data being rendered inaccurate, or losses sustained by 223 | anyone as a result of any failure of the Work to operate with any other 224 | programs), even if the Copyright Holder or said author or said other 225 | party has been advised of the possibility of such damages. 226 | 227 | 228 | MAINTENANCE OF THE WORK 229 | ======================= 230 | 231 | The Work has the status `author-maintained' if the Copyright Holder 232 | explicitly and prominently states near the primary copyright notice in 233 | the Work that the Work can only be maintained by the Copyright Holder 234 | or simply that it is `author-maintained'. 235 | 236 | The Work has the status `maintained' if there is a Current Maintainer 237 | who has indicated in the Work that they are willing to receive error 238 | reports for the Work (for example, by supplying a valid e-mail 239 | address). It is not required for the Current Maintainer to acknowledge 240 | or act upon these error reports. 241 | 242 | The Work changes from status `maintained' to `unmaintained' if there 243 | is no Current Maintainer, or the person stated to be Current 244 | Maintainer of the work cannot be reached through the indicated means 245 | of communication for a period of six months, and there are no other 246 | significant signs of active maintenance. 247 | 248 | You can become the Current Maintainer of the Work by agreement with 249 | any existing Current Maintainer to take over this role. 250 | 251 | If the Work is unmaintained, you can become the Current Maintainer of 252 | the Work through the following steps: 253 | 254 | 1. Make a reasonable attempt to trace the Current Maintainer (and 255 | the Copyright Holder, if the two differ) through the means of 256 | an Internet or similar search. 257 | 258 | 2. If this search is successful, then enquire whether the Work 259 | is still maintained. 260 | 261 | a. If it is being maintained, then ask the Current Maintainer 262 | to update their communication data within one month. 263 | 264 | b. If the search is unsuccessful or no action to resume active 265 | maintenance is taken by the Current Maintainer, then announce 266 | within the pertinent community your intention to take over 267 | maintenance. (If the Work is a LaTeX work, this could be 268 | done, for example, by posting to comp.text.tex.) 269 | 270 | 3a. If the Current Maintainer is reachable and agrees to pass 271 | maintenance of the Work to you, then this takes effect 272 | immediately upon announcement. 273 | 274 | b. If the Current Maintainer is not reachable and the Copyright 275 | Holder agrees that maintenance of the Work be passed to you, 276 | then this takes effect immediately upon announcement. 277 | 278 | 4. If you make an `intention announcement' as described in 2b. above 279 | and after three months your intention is challenged neither by 280 | the Current Maintainer nor by the Copyright Holder nor by other 281 | people, then you may arrange for the Work to be changed so as 282 | to name you as the (new) Current Maintainer. 283 | 284 | 5. If the previously unreachable Current Maintainer becomes 285 | reachable once more within three months of a change completed 286 | under the terms of 3b) or 4), then that Current Maintainer must 287 | become or remain the Current Maintainer upon request provided 288 | they then update their communication data within one month. 289 | 290 | A change in the Current Maintainer does not, of itself, alter the fact 291 | that the Work is distributed under the LPPL license. 292 | 293 | If you become the Current Maintainer of the Work, you should 294 | immediately provide, within the Work, a prominent and unambiguous 295 | statement of your status as Current Maintainer. You should also 296 | announce your new status to the same pertinent community as 297 | in 2b) above. 298 | 299 | 300 | WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE 301 | ====================================================== 302 | 303 | This section contains important instructions, examples, and 304 | recommendations for authors who are considering distributing their 305 | works under this license. These authors are addressed as `you' in 306 | this section. 307 | 308 | Choosing This License or Another License 309 | ---------------------------------------- 310 | 311 | If for any part of your work you want or need to use *distribution* 312 | conditions that differ significantly from those in this license, then 313 | do not refer to this license anywhere in your work but, instead, 314 | distribute your work under a different license. You may use the text 315 | of this license as a model for your own license, but your license 316 | should not refer to the LPPL or otherwise give the impression that 317 | your work is distributed under the LPPL. 318 | 319 | The document `modguide.tex' in the base LaTeX distribution explains 320 | the motivation behind the conditions of this license. It explains, 321 | for example, why distributing LaTeX under the GNU General Public 322 | License (GPL) was considered inappropriate. Even if your work is 323 | unrelated to LaTeX, the discussion in `modguide.tex' may still be 324 | relevant, and authors intending to distribute their works under any 325 | license are encouraged to read it. 326 | 327 | A Recommendation on Modification Without Distribution 328 | ----------------------------------------------------- 329 | 330 | It is wise never to modify a component of the Work, even for your own 331 | personal use, without also meeting the above conditions for 332 | distributing the modified component. While you might intend that such 333 | modifications will never be distributed, often this will happen by 334 | accident -- you may forget that you have modified that component; or 335 | it may not occur to you when allowing others to access the modified 336 | version that you are thus distributing it and violating the conditions 337 | of this license in ways that could have legal implications and, worse, 338 | cause problems for the community. It is therefore usually in your 339 | best interest to keep your copy of the Work identical with the public 340 | one. Many works provide ways to control the behavior of that work 341 | without altering any of its licensed components. 342 | 343 | How to Use This License 344 | ----------------------- 345 | 346 | To use this license, place in each of the components of your work both 347 | an explicit copyright notice including your name and the year the work 348 | was authored and/or last substantially modified. Include also a 349 | statement that the distribution and/or modification of that 350 | component is constrained by the conditions in this license. 351 | 352 | Here is an example of such a notice and statement: 353 | 354 | %% pig.dtx 355 | %% Copyright 2005 M. Y. Name 356 | % 357 | % This work may be distributed and/or modified under the 358 | % conditions of the LaTeX Project Public License, either version 1.3 359 | % of this license or (at your option) any later version. 360 | % The latest version of this license is in 361 | % http://www.latex-project.org/lppl.txt 362 | % and version 1.3 or later is part of all distributions of LaTeX 363 | % version 2005/12/01 or later. 364 | % 365 | % This work has the LPPL maintenance status `maintained'. 366 | % 367 | % The Current Maintainer of this work is M. Y. Name. 368 | % 369 | % This work consists of the files pig.dtx and pig.ins 370 | % and the derived file pig.sty. 371 | 372 | Given such a notice and statement in a file, the conditions 373 | given in this license document would apply, with the `Work' referring 374 | to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being 375 | generated from `pig.dtx' using `pig.ins'), the `Base Interpreter' 376 | referring to any `LaTeX-Format', and both `Copyright Holder' and 377 | `Current Maintainer' referring to the person `M. Y. Name'. 378 | 379 | If you do not want the Maintenance section of LPPL to apply to your 380 | Work, change `maintained' above into `author-maintained'. 381 | However, we recommend that you use `maintained', as the Maintenance 382 | section was added in order to ensure that your Work remains useful to 383 | the community even when you can no longer maintain and support it 384 | yourself. 385 | 386 | Derived Works That Are Not Replacements 387 | --------------------------------------- 388 | 389 | Several clauses of the LPPL specify means to provide reliability and 390 | stability for the user community. They therefore concern themselves 391 | with the case that a Derived Work is intended to be used as a 392 | (compatible or incompatible) replacement of the original Work. If 393 | this is not the case (e.g., if a few lines of code are reused for a 394 | completely different task), then clauses 6b and 6d shall not apply. 395 | 396 | 397 | Important Recommendations 398 | ------------------------- 399 | 400 | Defining What Constitutes the Work 401 | 402 | The LPPL requires that distributions of the Work contain all the 403 | files of the Work. It is therefore important that you provide a 404 | way for the licensee to determine which files constitute the Work. 405 | This could, for example, be achieved by explicitly listing all the 406 | files of the Work near the copyright notice of each file or by 407 | using a line such as: 408 | 409 | % This work consists of all files listed in manifest.txt. 410 | 411 | in that place. In the absence of an unequivocal list it might be 412 | impossible for the licensee to determine what is considered by you 413 | to comprise the Work and, in such a case, the licensee would be 414 | entitled to make reasonable conjectures as to which files comprise 415 | the Work. 416 | -------------------------------------------------------------------------------- /russell.cls: -------------------------------------------------------------------------------- 1 | %------------------------------------------------------------------------------- 2 | % Identification 3 | %------------------------------------------------------------------------------- 4 | \ProvidesClass{russell}[2017/02/05 v1.6.1 russell Curriculum Vitae Class] 5 | \NeedsTeXFormat{LaTeX2e} 6 | 7 | 8 | %------------------------------------------------------------------------------- 9 | % Class options 10 | % 11 | % (need to be done before the external package loading, for example because 12 | % we need \paperwidth, \paperheight and \@ptsize to be defined before loading 13 | % geometry and fancyhdr) 14 | %------------------------------------------------------------------------------- 15 | % Options for draft or final 16 | \DeclareOption{draft}{\setlength\overfullrule{5pt}} 17 | \DeclareOption{final}{\setlength\overfullrule{0pt}} 18 | % Inherit options of article 19 | \DeclareOption*{% 20 | \PassOptionsToClass{\CurrentOption}{article} 21 | } 22 | \ProcessOptions\relax 23 | \LoadClass{article} 24 | 25 | 26 | %------------------------------------------------------------------------------- 27 | % 3rd party packages 28 | %------------------------------------------------------------------------------- 29 | % make fixed length table 30 | \RequirePackage{array} 31 | % handle list environment 32 | \RequirePackage{enumitem} 33 | % handle text alignment 34 | \RequirePackage{ragged2e} 35 | % configure page layout 36 | \RequirePackage{geometry} 37 | % make header & footer effeciently 38 | \RequirePackage{fancyhdr} 39 | % manage colors 40 | \RequirePackage{xcolor} 41 | % use \ifxetex-\else-\fi statement 42 | \RequirePackage{ifxetex} 43 | % use \if-\then-\else statement 44 | \RequirePackage{xifthen} 45 | % use a toolbox of programming tools 46 | \RequirePackage{etoolbox} 47 | % change line spacing in specific environment 48 | \RequirePackage{setspace} 49 | % manage fonts 50 | \RequirePackage[quiet]{fontspec} 51 | % To support LaTeX quoting style 52 | \defaultfontfeatures{Ligatures=TeX} 53 | % manage math fonts 54 | \RequirePackage{unicode-math} 55 | % use icons from font-awesome 56 | \RequirePackage{fontawesome5} 57 | \RequirePackage{roboto} 58 | \RequirePackage[default,opentype]{sourcesanspro} 59 | % Needed for the photo ID 60 | \RequirePackage[skins]{tcolorbox} 61 | % deal a paragraphs 62 | \RequirePackage{parskip} 63 | % deal hyperlink 64 | \RequirePackage[hidelinks,unicode,pdfpagelabels=false]{hyperref} 65 | \hypersetup{% 66 | pdftitle={}, 67 | pdfauthor={}, 68 | pdfsubject={}, 69 | pdfkeywords={} 70 | } 71 | % Solves issues Warning: File `cv.out' has changed 72 | \RequirePackage{bookmark} 73 | 74 | %------------------------------------------------------------------------------- 75 | % Configuration for directory locations 76 | %------------------------------------------------------------------------------- 77 | % Configure an optional directory location for fonts(default: 'fonts/') 78 | % Not required anymore but left in place for backward compatability. 79 | \newcommand*{\fontdir}[1][fonts/]{\def\@fontdir{#1}} 80 | 81 | %------------------------------------------------------------------------------- 82 | % Configuration for layout 83 | %------------------------------------------------------------------------------- 84 | %% Page Layout 85 | % Configure page margins with geometry 86 | \geometry{left=2.0cm, top=1.5cm, right=2.0cm, bottom=2.0cm, footskip=.5cm} 87 | 88 | %% Header & Footer 89 | % Set offset to each header and footer 90 | \fancyhfoffset{0em} 91 | % Remove head rule 92 | \renewcommand{\headrulewidth}{0pt} 93 | % Clear all header & footer fields 94 | \fancyhf{} 95 | % Enable if you want to make header or footer using fancyhdr 96 | \pagestyle{fancy} 97 | 98 | 99 | %------------------------------------------------------------------------------- 100 | % Configuration for colors 101 | %------------------------------------------------------------------------------- 102 | % Gray-scale colors 103 | \definecolor{white}{HTML}{FFFFFF} 104 | \definecolor{black}{HTML}{000000} 105 | \definecolor{darkgray}{HTML}{333333} 106 | \definecolor{gray}{HTML}{5D5D5D} 107 | \definecolor{lightgray}{HTML}{999999} 108 | % Basic colors 109 | \definecolor{green}{HTML}{C2E15F} 110 | \definecolor{orange}{HTML}{FDA333} 111 | \definecolor{purple}{HTML}{D3A4F9} 112 | \definecolor{red}{HTML}{FB4485} 113 | \definecolor{blue}{HTML}{6CE0F1} 114 | % Text colors 115 | \definecolor{darktext}{HTML}{414141} 116 | \colorlet{text}{darkgray} 117 | \colorlet{graytext}{gray} 118 | \colorlet{lighttext}{lightgray} 119 | \colorlet{sectiondivider}{gray} 120 | % russell colors 121 | \definecolor{russell-emerald}{HTML}{00A388} 122 | \definecolor{russell-skyblue}{HTML}{0395DE} 123 | \definecolor{russell-red}{HTML}{DC3522} 124 | \definecolor{russell-purple}{HTML}{A32CC4} 125 | \definecolor{russell-pink}{HTML}{EF4089} 126 | \definecolor{russell-orange}{HTML}{FF6138} 127 | \definecolor{russell-nephritis}{HTML}{27AE60} 128 | \definecolor{russell-concrete}{HTML}{95A5A6} 129 | \definecolor{russell-darknight}{HTML}{131A28} 130 | \definecolor{russell-black}{HTML}{000000} 131 | \colorlet{russell}{russell-red} 132 | 133 | % Boolean value to switch section color highlighting 134 | \newbool{acvSectionColorHighlight} 135 | \setbool{acvSectionColorHighlight}{true} 136 | 137 | % russell section color 138 | \def\@sectioncolor#1#2#3{% 139 | \ifbool{acvSectionColorHighlight}{{\color{russell}#1#2#3}}{#1#2#3}% 140 | } 141 | 142 | 143 | %------------------------------------------------------------------------------- 144 | % Configuration for fonts 145 | %------------------------------------------------------------------------------- 146 | \newcommand*{\headerfont}{\roboto} 147 | \newcommand*{\headerfontlight}{\robotolight} 148 | \newcommand*{\footerfont}{\sourcesanspro} 149 | \newcommand*{\bodyfont}{\sourcesanspro} 150 | \newcommand*{\bodyfontlight}{\sourcesansprolight} 151 | 152 | %------------------------------------------------------------------------------- 153 | % Configuration for styles 154 | %------------------------------------------------------------------------------- 155 | % Configure styles for each CV elements 156 | % For fundamental structures 157 | \newcommand*{\headerfirstnamestyle}[1]{{\fontsize{20pt}{1em}\headerfont\color{text} #1}} 158 | \newcommand*{\headerlastnamestyle}[1]{{\fontsize{20pt}{1em}\headerfont\color{text} #1}} 159 | \newcommand*{\headerpositionstyle}[1]{{\fontsize{7.6pt}{1em}\bodyfont\scshape\color{russell} #1}} 160 | \newcommand*{\headeraddressstyle}[1]{{\fontsize{8pt}{1em}\headerfont\itshape\color{lighttext} #1}} 161 | \newcommand*{\headersocialstyle}[1]{{\fontsize{6.8pt}{1em}\headerfont\color{text} #1}} 162 | \newcommand*{\headerquotestyle}[1]{{\fontsize{9pt}{1em}\bodyfont\itshape\color{darktext} #1}} 163 | \newcommand*{\footerstyle}[1]{{\fontsize{8pt}{1em}\footerfont\scshape\color{lighttext} #1}} 164 | \newcommand*{\sectionstyle}[1]{{\fontsize{16pt}{1em}\bodyfont\bfseries\color{text}\@sectioncolor #1}} 165 | \newcommand*{\subsectionstyle}[1]{{\fontsize{12pt}{1em}\bodyfont\scshape\textcolor{text}{#1}}} 166 | \newcommand*{\paragraphstyle}{\fontsize{9pt}{1em}\bodyfontlight\upshape\color{text}} 167 | 168 | % For elements of entry 169 | \newcommand*{\entrytitlestyle}[1]{{\fontsize{10pt}{1em}\bodyfont\bfseries\color{darktext} #1}} 170 | \newcommand*{\entrypositionstyle}[1]{{\fontsize{9pt}{1em}\bodyfont\color{graytext} #1}} 171 | \newcommand*{\entrydatestyle}[1]{{\fontsize{8pt}{1em}\bodyfontlight\slshape\color{graytext} #1}} 172 | \newcommand*{\entrylocationstyle}[1]{{\fontsize{9pt}{1em}\bodyfontlight\slshape\color{russell} #1}} 173 | \newcommand*{\descriptionstyle}[1]{{\fontsize{9pt}{1em}\bodyfontlight\upshape\color{text} #1}} 174 | 175 | % For elements of subentry 176 | \newcommand*{\subentrytitlestyle}[1]{{\fontsize{8pt}{1em}\bodyfont\mdseries\color{graytext} #1}} 177 | \newcommand*{\subentrypositionstyle}[1]{{\fontsize{7pt}{1em}\bodyfont\scshape\color{graytext} #1}} 178 | \newcommand*{\subentrydatestyle}[1]{{\fontsize{7pt}{1em}\bodyfontlight\slshape\color{graytext} #1}} 179 | \newcommand*{\subentrylocationstyle}[1]{{\fontsize{7pt}{1em}\bodyfontlight\slshape\color{russell} #1}} 180 | \newcommand*{\subdescriptionstyle}[1]{{\fontsize{8pt}{1em}\bodyfontlight\upshape\color{text} #1}} 181 | 182 | % For elements of honor 183 | \newcommand*{\honortitlestyle}[1]{{\fontsize{9pt}{1em}\bodyfont\color{graytext} #1}} 184 | \newcommand*{\honorpositionstyle}[1]{{\fontsize{9pt}{1em}\bodyfont\bfseries\color{darktext} #1}} 185 | \newcommand*{\honordatestyle}[1]{{\fontsize{9pt}{1em}\bodyfont\color{graytext} #1}} 186 | \newcommand*{\honorlocationstyle}[1]{{\fontsize{9pt}{1em}\bodyfontlight\slshape\color{russell} #1}} 187 | 188 | % For elements of skill 189 | \newcommand*{\skilltypestyle}[1]{{\fontsize{10pt}{1em}\bodyfont\bfseries\color{darktext} #1}} 190 | \newcommand*{\skillsetstyle}[1]{{\fontsize{9pt}{1em}\bodyfontlight\color{text} #1}} 191 | 192 | % For elements of the cover letter 193 | \newcommand*{\lettersectionstyle}[1]{{\fontsize{14pt}{1em}\bodyfont\bfseries\color{text}\@sectioncolor #1}} 194 | \newcommand*{\recipientaddressstyle}[1]{{\fontsize{9pt}{1em}\bodyfont\scshape\color{graytext} #1}} 195 | \newcommand*{\recipienttitlestyle}[1]{{\fontsize{11pt}{1em}\bodyfont\bfseries\color{darktext} #1}} 196 | \newcommand*{\lettertitlestyle}[1]{{\fontsize{10pt}{1em}\bodyfontlight\bfseries\color{darktext} \underline{#1}}} 197 | \newcommand*{\letterdatestyle}[1]{{\fontsize{9pt}{1em}\bodyfontlight\slshape\color{graytext} #1}} 198 | \newcommand*{\lettertextstyle}{\fontsize{10pt}{1.4em}\bodyfontlight\upshape\color{graytext}} 199 | \newcommand*{\letternamestyle}[1]{{\fontsize{10pt}{1em}\bodyfont\bfseries\color{darktext} #1}} 200 | \newcommand*{\letterenclosurestyle}[1]{{\fontsize{10pt}{1em}\bodyfontlight\slshape\color{lighttext} #1}} 201 | 202 | 203 | %------------------------------------------------------------------------------- 204 | % Commands for personal information 205 | %------------------------------------------------------------------------------- 206 | % Define photo ID 207 | % Usage: \photo[circle|rectangle,edge|noedge,left|right]{} 208 | \newcommand{\photo}[2][circle,edge,left]{% 209 | \def\@photo{#2} 210 | \@for\tmp:=#1\do{% 211 | \ifthenelse{\equal{\tmp}{circle} \or \equal{\tmp}{rectangle}}% 212 | {\let\@photoshape\tmp}{}% 213 | \ifthenelse{\equal{\tmp}{edge} \or \equal{\tmp}{noedge}}% 214 | {\let\@photoedge\tmp}{}% 215 | \ifthenelse{\equal{\tmp}{left} \or \equal{\tmp}{right}}% 216 | {\let\@photoalign\tmp}{}% 217 | }% 218 | } 219 | \def\@photoshape{circle} 220 | \def\@photoedge{edge} 221 | \def\@photoalign{left} 222 | 223 | % Define writer's name 224 | % Usage: \name{}{} 225 | % Usage: \firstname{} 226 | % Usage: \lastname{} 227 | % Usage: \familyname{} 228 | \newcommand*{\name}[2]{\def\@firstname{#1}\def\@lastname{#2}} 229 | \newcommand*{\firstname}[1]{\def\@firstname{#1}} 230 | \newcommand*{\lastname}[1]{\def\@lastname{#1}} 231 | \newcommand*{\familyname}[1]{\def\@lastname{#1}} 232 | \def\@familyname{\@lastname} 233 | 234 | % Define writer's address 235 | % Usage: \address{
} 236 | \newcommand*{\address}[1]{\def\@address{#1}} 237 | 238 | % Define writer's position 239 | % Usage: \position{} 240 | \newcommand*{\position}[1]{\def\@position{#1}} 241 | 242 | % Defines writer's mobile (optional) 243 | % Usage: \mobile{} 244 | \newcommand*{\mobile}[1]{\def\@mobile{#1}} 245 | 246 | % Defines writer's email (optional) 247 | % Usage: \email{} 248 | \newcommand*{\email}[1]{\def\@email{#1}} 249 | 250 | % Defines writer's date of birth (optional) 251 | % Usage: \dateofbirth{} 252 | \newcommand*{\dateofbirth}[1]{\def\@dateofbirth{#1}} 253 | 254 | % Defines writer's homepage (optional) 255 | % Usage: \homepage{} 256 | \newcommand*{\homepage}[1]{\def\@homepage{#1}} 257 | 258 | % Defines writer's github (optional) 259 | % Usage: \github{} 260 | \newcommand*{\github}[1]{\def\@github{#1}} 261 | 262 | % Defines writer's gitlab (optional) 263 | % Usage: \gitlab{} 264 | \newcommand*{\gitlab}[1]{\def\@gitlab{#1}} 265 | 266 | % Defines writer's bitbucket (optional) 267 | % Usage: \bitbucket{} 268 | \newcommand*{\bitbucket}[1]{\def\@bitbucket{#1}} 269 | 270 | % Defines writer's stackoverflow profile (optional) 271 | % Usage: \stackoverflow{}{} 272 | % e.g.https://stackoverflow.com/users/123456/sam-smith 273 | % would be \stackoverflow{123456}{sam-smith} 274 | \newcommand*{\stackoverflow}[2]{\def\@stackoverflowid{#1}\def\@stackoverflowname{#2}} 275 | 276 | % Defines writer's linked-in (optional) 277 | % Usage: \linkedin{} 278 | \newcommand*{\linkedin}[1]{\def\@linkedin{#1}} 279 | 280 | % Defines writer's orcid (optional) 281 | % Usage: \orcid{} 282 | \newcommand*{\orcid}[1]{\def\@orcid{#1}} 283 | 284 | % Defines writer's twitter (optional) 285 | % Usage: \twitter{} 286 | \newcommand*{\twitter}[1]{\def\@twitter{#1}} 287 | 288 | % Defines writer's Mastodon (optional) 289 | % Usage: \mastodon{}{} 290 | \newcommand*{\mastodon}[2]{\def\@mastodoninstance{#1}\def\@mastodonname{#2}} 291 | 292 | % Defines writer's resarchgate (optional) 293 | % Usage: \researchgate{} 294 | \newcommand*{\researchgate}[1]{\def\@researchgate{#1}} 295 | 296 | % Defines writer's skype (optional) 297 | % Usage: \skype{} 298 | \newcommand*{\skype}[1]{\def\@skype{#1}} 299 | 300 | % Defines writer's reddit (optional) 301 | % Usage: \reddit{} 302 | \newcommand*{\reddit}[1]{\def\@reddit{#1}} 303 | 304 | % Defines writer's xing (optional) 305 | % Usage: \xing{} 306 | \newcommand*{\xing}[1]{\def\@xing{#1}} 307 | 308 | % Defines writer's medium profile (optional) 309 | % Usage: \medium{} 310 | \newcommand*{\medium}[1]{\def\@medium{#1}} 311 | 312 | % Defines writer's kaggle (optional) 313 | % Usage: \kaggle{} 314 | \newcommand*{\kaggle}[1]{\def\@kaggle{#1}} 315 | 316 | % Defines writer's google scholar profile (optional) 317 | % Usage: \googlescholar{}{} 318 | % e.g.https://scholar.google.co.uk/citations?user=wpZDx1cAAAAJ 319 | % would be \googlescholar{wpZDx1cAAAAJ}{Name-to-display-next-icon} 320 | % If 'googlescholar-name' is not provided than it defaults to 321 | % '\firstname \lastname' 322 | \newcommand*{\googlescholar}[2]{% 323 | \def\@googlescholarid{#1}% 324 | \ifthenelse{\equal{#2}{}}{% 325 | \def\@googlescholarname{\@firstname~\@lastname}% 326 | }{% 327 | \def\@googlescholarname{#2}% 328 | }% 329 | } 330 | 331 | % Defines writer's extra information (optional) 332 | % Usage: \extrainfo{} 333 | \newcommand*{\extrainfo}[1]{\def\@extrainfo{#1}} 334 | 335 | % Defines writer's quote (optional) 336 | % Usage: \quote{} 337 | \renewcommand*{\quote}[1]{\def\@quote{#1}} 338 | 339 | % Defines recipient's information (cover letter only) 340 | % Usage: \recipient{}{} 341 | % Usage: \recipientname{} 342 | % Usage: \recipientaddress{} 343 | \newcommand*{\recipient}[2]{\def\@recipientname{#1}\def\@recipientaddress{#2}} 344 | \newcommand*{\recipientname}[1]{\def\@recipientname{#1}} 345 | \newcommand*{\recipientaddress}[1]{\def\@recipientaddress{#1}} 346 | 347 | % Defines the title for letter (cover letter only, optional) 348 | % Usage: \lettertitle{} 349 | \newcommand*{\lettertitle}[1]{\def\@lettertitle{#1}} 350 | 351 | % Defines the date for letter (cover letter only) 352 | % Usage: \letterdate{<date>} 353 | \newcommand*{\letterdate}[1]{\def\@letterdate{#1}} 354 | 355 | % Defines a message of opening for letter (cover letter only) 356 | % Usage: \letteropening{<message>} 357 | \newcommand*{\letteropening}[1]{\def\@letteropening{#1}} 358 | 359 | % Defines a message of closing for letter (cover letter only) 360 | % Usage: \letterclosing{<message>} 361 | \newcommand*{\letterclosing}[1]{\def\@letterclosing{#1}} 362 | 363 | % Defines an enclosure for letter (cover letter only, optional) 364 | % Usage: \letterenclosure[<enclosure name>]{<enclosure>} 365 | \newcommand*{\letterenclname}[1][Enclosure]{\def\@letterenclname{#1}} 366 | \newcommand*{\letterenclosure}[2][]{% 367 | % if an optional argument is provided, use it to redefine \enclname 368 | \ifthenelse{\equal{#1}{}}{}{\def\@letterenclname{#1}} 369 | \def\@letterenclosure{#2} 370 | } 371 | 372 | 373 | %------------------------------------------------------------------------------- 374 | % Commands for extra 375 | %------------------------------------------------------------------------------- 376 | %% Define helper macros a user can change easily 377 | % Header 378 | \newcommand{\acvHeaderNameDelim}{\space} 379 | \newcommand{\acvHeaderAfterNameSkip}{.4mm} 380 | \newcommand{\acvHeaderAfterPositionSkip}{.4mm} 381 | \newcommand{\acvHeaderAfterAddressSkip}{-.5mm} 382 | \newcommand{\acvHeaderIconSep}{\space} 383 | \newcommand{\acvHeaderSocialSep}{\quad\textbar\quad} 384 | \newcommand{\acvHeaderAfterSocialSkip}{6mm} 385 | \newcommand{\acvHeaderAfterQuoteSkip}{5mm} 386 | 387 | % Others 388 | \newcommand{\acvSectionTopSkip}{3mm} 389 | \newcommand{\acvSectionContentTopSkip}{2.5mm} 390 | 391 | 392 | %------------------------------------------------------------------------------- 393 | % Commands for utilities 394 | %------------------------------------------------------------------------------- 395 | % Use to align an element of tabular table 396 | \newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}} 397 | \newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}} 398 | \newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}m{#1}} 399 | 400 | % Use to draw horizontal line with specific thickness 401 | \def\vhrulefill#1{\leavevmode\leaders\hrule\@height#1\hfill \kern\z@} 402 | 403 | % Use to execute conditional statements by checking empty string 404 | \newcommand*{\ifempty}[3]{\ifthenelse{\isempty{#1}}{#2}{#3}} 405 | 406 | 407 | %------------------------------------------------------------------------------- 408 | % Commands for elements of CV structure 409 | %------------------------------------------------------------------------------- 410 | % Define a header for CV 411 | % Usage: \makecvheader 412 | \newcommand*{\makecvheader}[1][C]{% 413 | \newcommand*{\drawphoto}{% 414 | \ifthenelse{\isundefined{\@photo}}{}{% 415 | \newlength{\photodim} 416 | \ifthenelse{\equal{\@photoshape}{circle}}% 417 | {\setlength{\photodim}{1.3cm}}% 418 | {\setlength{\photodim}{1.8cm}}% 419 | \ifthenelse{\equal{\@photoedge}{edge}}% 420 | {\def\@photoborder{darkgray}}% 421 | {\def\@photoborder{none}}% 422 | \begin{tikzpicture}% 423 | \node[\@photoshape, draw=\@photoborder, line width=0.3mm, inner sep=\photodim, fill overzoom image=\@photo] () {}; 424 | \end{tikzpicture} 425 | }% 426 | } 427 | \newlength{\headertextwidth} 428 | \newlength{\headerphotowidth} 429 | \ifthenelse{\isundefined{\@photo}}{ 430 | \setlength{\headertextwidth}{\textwidth} 431 | \setlength{\headerphotowidth}{0cm} 432 | }{% 433 | \setlength{\headertextwidth}{0.76\textwidth} 434 | \setlength{\headerphotowidth}{0.24\textwidth} 435 | }% 436 | \begin{minipage}[c]{\headerphotowidth}% 437 | \ifthenelse{\equal{\@photoalign}{left}}{\raggedright\drawphoto}{} 438 | \end{minipage} 439 | \begin{minipage}[c]{\headertextwidth} 440 | \ifthenelse{\equal{#1}{L}}{\raggedright}{\ifthenelse{\equal{#1}{R}}{\raggedleft}{\centering}} 441 | \headerfirstnamestyle{\@firstname}\headerlastnamestyle{{}\acvHeaderNameDelim\@lastname}% 442 | \\[\acvHeaderAfterNameSkip]% 443 | \ifthenelse{\isundefined{\@position}}{}{\headerpositionstyle{\@position\\[\acvHeaderAfterPositionSkip]}}% 444 | \ifthenelse{\isundefined{\@address}}{}{\headeraddressstyle{\@address\\[\acvHeaderAfterAddressSkip]}}% 445 | \headersocialstyle{% 446 | \newbool{isstart}% 447 | \setbool{isstart}{true}% 448 | \ifthenelse{\isundefined{\@mobile}}% 449 | {}% 450 | {% 451 | \href{tel:\@mobile}{\faMobile\acvHeaderIconSep\@mobile}% 452 | \setbool{isstart}{false}% 453 | }% 454 | \ifthenelse{\isundefined{\@email}}% 455 | {}% 456 | {% 457 | \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% 458 | \href{mailto:\@email}{\faEnvelope\acvHeaderIconSep\@email}% 459 | }% 460 | \ifthenelse{\isundefined{\@dateofbirth}}% 461 | {}% 462 | {% 463 | \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% 464 | % \mbox prevents wrapping of elements% 465 | \mbox{\faBirthdayCake\acvHeaderIconSep\@dateofbirth}% 466 | }% 467 | \ifthenelse{\isundefined{\@homepage}}% 468 | {}% 469 | {% 470 | \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% 471 | \href{http://\@homepage}{\faHome\acvHeaderIconSep\@homepage}% 472 | }% 473 | \ifthenelse{\isundefined{\@github}}% 474 | {}% 475 | {% 476 | \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% 477 | \href{https://github.com/\@github}{\faGithubSquare\acvHeaderIconSep\@github}% 478 | }% 479 | \ifthenelse{\isundefined{\@gitlab}}% 480 | {}% 481 | {% 482 | \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% 483 | \href{https://gitlab.com/\@gitlab}{\faGitlab\acvHeaderIconSep\@gitlab}% 484 | }% 485 | \ifthenelse{\isundefined{\@bitbucket}}% 486 | {}% 487 | {% 488 | \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% 489 | \href{https://bitbucket.com/\@bitbucket}{\faBitbucket\acvHeaderIconSep\@bitbucket}% 490 | }% 491 | \ifthenelse{\isundefined{\@stackoverflowid}}% 492 | {}% 493 | {% 494 | \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% 495 | \href{https://stackoverflow.com/users/\@stackoverflowid}{\faStackOverflow\acvHeaderIconSep\@stackoverflowname}% 496 | }% 497 | \ifthenelse{\isundefined{\@linkedin}}% 498 | {}% 499 | {% 500 | \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% 501 | \href{https://www.linkedin.com/in/\@linkedin}{\faLinkedin\acvHeaderIconSep\@linkedin}% 502 | }% 503 | \ifthenelse{\isundefined{\@orcid}}% 504 | {}% 505 | {% 506 | \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% 507 | \href{https://orcid.org/\@orcid}{\faOrcid\acvHeaderIconSep\@orcid}% 508 | }% 509 | \ifthenelse{\isundefined{\@twitter}}% 510 | {}% 511 | {% 512 | \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% 513 | \href{https://twitter.com/\@twitter}{\faTwitter\acvHeaderIconSep\@twitter}% 514 | }% 515 | \ifthenelse{\isundefined{\@mastodonname}}% 516 | {}% 517 | {% 518 | \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% 519 | \href{https://\@mastodoninstance/@\@mastodonname}{\faMastodon\acvHeaderIconSep\@mastodonname}% 520 | }% 521 | \ifthenelse{\isundefined{\@skype}}% 522 | {}% 523 | {% 524 | \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% 525 | \faSkype\acvHeaderIconSep\@skype% 526 | }% 527 | \ifthenelse{\isundefined{\@reddit}}% 528 | {}% 529 | {% 530 | \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% 531 | \href{https://www.reddit.com/user/\@reddit}{\faReddit\acvHeaderIconSep\@reddit}% 532 | }% 533 | \ifthenelse{\isundefined{\@researchgate}}% 534 | {}% 535 | {% 536 | \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% 537 | \href{https://www.researchgate.net/profile/\@researchgate}{\faResearchgate\acvHeaderIconSep\@researchgate}% 538 | }% 539 | \ifthenelse{\isundefined{\@xing}}% 540 | {}% 541 | {% 542 | \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% 543 | \href{https://www.xing.com/profile/\@xing}{\faXingSquare\acvHeaderIconSep\@xing} 544 | }% 545 | \ifthenelse{\isundefined{\@medium}}% 546 | {}% 547 | {% 548 | \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% 549 | \href{https://medium.com/@\@medium}{\faMedium\acvHeaderIconSep\@medium}% 550 | }% 551 | \ifthenelse{\isundefined{\@kaggle}}% 552 | {}% 553 | {% 554 | \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% 555 | \href{https://kaggle.com/\@kaggle}{\faKaggle\acvHeaderIconSep\@kaggle}% 556 | }% 557 | \ifthenelse{\isundefined{\@googlescholarid}}% 558 | {}% 559 | {% 560 | \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% 561 | \href{https://scholar.google.com/citations?user=\@googlescholarid}{\faGraduationCap\acvHeaderIconSep\@googlescholarname}% 562 | }% 563 | \ifthenelse{\isundefined{\@extrainfo}}% 564 | {}% 565 | {% 566 | \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% 567 | \@extrainfo% 568 | }% 569 | } \\[\acvHeaderAfterSocialSkip]% 570 | \ifthenelse{\isundefined{\@quote}}% 571 | {}% 572 | {\headerquotestyle{\@quote\\}\vspace{\acvHeaderAfterQuoteSkip}}% 573 | \end{minipage}% 574 | \begin{minipage}[c]{\headerphotowidth}% 575 | \ifthenelse{\equal{\@photoalign}{right}}{\raggedleft\drawphoto}{} 576 | \end{minipage} 577 | } 578 | 579 | % Define a footer for CV 580 | % Usage: \makecvfooter{<left>}{<center>}{<right>} 581 | \newcommand*{\makecvfooter}[3]{% 582 | \fancyfoot{} 583 | \fancyfoot[L]{\footerstyle{#1}} 584 | \fancyfoot[C]{\footerstyle{#2}} 585 | \fancyfoot[R]{\footerstyle{#3}} 586 | } 587 | 588 | % Define a section for CV 589 | % Usage: \cvsection{<section-title>} 590 | \newcommand{\cvsection}[1]{% 591 | \vspace{\acvSectionTopSkip} 592 | \sectionstyle{#1} 593 | \phantomsection 594 | \color{sectiondivider}\vhrulefill{0.9pt} 595 | } 596 | 597 | % Define a subsection for CV 598 | % Usage: \cvsubsection{<subsection-title>} 599 | \newcommand{\cvsubsection}[1]{% 600 | \vspace{\acvSectionContentTopSkip} 601 | \vspace{-3mm} 602 | \subsectionstyle{#1} 603 | \phantomsection 604 | } 605 | 606 | % Define a paragraph for CV 607 | \newenvironment{cvparagraph}{% 608 | \vspace{\acvSectionContentTopSkip} 609 | \vspace{-3mm} 610 | \paragraphstyle 611 | }{% 612 | \par 613 | \vspace{2mm} 614 | } 615 | 616 | % Define an environment for cventry 617 | \newenvironment{cventries}{% 618 | \vspace{\acvSectionContentTopSkip} 619 | \begin{center} 620 | }{% 621 | \end{center} 622 | } 623 | % Define an entry of cv information 624 | % Usage: \cventry{<position>}{<title>}{<location>}{<date>}{<description>} 625 | \newcommand*{\cventry}[5]{% 626 | \vspace{-2.0mm} 627 | \setlength\tabcolsep{0pt} 628 | \setlength{\extrarowheight}{0pt} 629 | \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} L{\textwidth - 4.5cm} R{4.5cm}} 630 | \ifempty{#2#3} 631 | {\entrypositionstyle{#1} & \entrydatestyle{#4} \\} 632 | {\entrytitlestyle{#2} & \entrylocationstyle{#3} \\ 633 | \entrypositionstyle{#1} & \entrydatestyle{#4} \\} 634 | \multicolumn{2}{L{\textwidth}}{\descriptionstyle{#5}} 635 | \end{tabular*}% 636 | } 637 | 638 | % Define an environment for cvsubentry 639 | \newenvironment{cvsubentries}{% 640 | \begin{center} 641 | }{% 642 | \end{center} 643 | } 644 | % Define a subentry of cv information 645 | % Usage: \cvsubentry{<position>}{<title>}{<date>}{<description>} 646 | \newcommand*{\cvsubentry}[4]{% 647 | \setlength\tabcolsep{0pt} 648 | \setlength{\extrarowheight}{0pt} 649 | \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} L{\textwidth - 4.5cm} R{4.5cm}} 650 | \setlength\leftskip{0.2cm} 651 | \subentrytitlestyle{#2} & \ifthenelse{\equal{#1}{}} 652 | {\subentrydatestyle{#3}}{} 653 | \ifthenelse{\equal{#1}{}} 654 | {} 655 | {\subentrypositionstyle{#1} & \subentrydatestyle{#3} \\} 656 | \ifthenelse{\equal{#4}{}} 657 | {} 658 | {\multicolumn{2}{L{17.0cm}}{\subdescriptionstyle{#4}} \\} 659 | \end{tabular*} 660 | } 661 | 662 | % Define an environment for cvhonor 663 | \newenvironment{cvhonors}{% 664 | \vspace{\acvSectionContentTopSkip} 665 | \vspace{-2mm} 666 | \begin{center} 667 | \setlength\tabcolsep{0pt} 668 | \setlength{\extrarowheight}{0pt} 669 | \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} C{1.5cm} L{\textwidth - 4.0cm} R{2.5cm}} 670 | }{% 671 | \end{tabular*} 672 | \end{center} 673 | } 674 | % Define a line of cv information(honor, award or something else) 675 | % Usage: \cvhonor{<position>}{<title>}{<location>}{<date>} 676 | \newcommand*{\cvhonor}[4]{% 677 | \honordatestyle{#4} & \honorpositionstyle{#1}, \honortitlestyle{#2} & \honorlocationstyle{#3} \\ 678 | } 679 | 680 | % Define an environment for cvskill 681 | \newenvironment{cvskills}{% 682 | \vspace{\acvSectionContentTopSkip} 683 | \vspace{-2.0mm} 684 | \begin{center} 685 | \setlength\tabcolsep{1ex} 686 | \setlength{\extrarowheight}{0pt} 687 | \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} r L{\textwidth * \real{0.9}}} 688 | }{% 689 | \end{tabular*} 690 | \end{center} 691 | } 692 | % Define a line of cv information(skill) 693 | % Usage: \cvskill{<type>}{<skillset>} 694 | \newcommand*{\cvskill}[2]{% 695 | \skilltypestyle{#1} & \skillsetstyle{#2} \\ 696 | } 697 | 698 | \newcommand*{\cvskilltop}[2]{% 699 | \begin{minipage}[t]{\linewidth} 700 | \textbf{#1} \\ #2 701 | \end{minipage} 702 | \\ 703 | } 704 | 705 | % Define an environment for cvitems(for cventry) 706 | \newenvironment{cvitems}{% 707 | \vspace{-4.0mm} 708 | \begin{justify} 709 | \begin{itemize}[leftmargin=2ex, nosep, noitemsep] 710 | \setlength{\parskip}{0pt} 711 | \renewcommand{\labelitemi}{\bullet} 712 | }{% 713 | \end{itemize} 714 | \end{justify} 715 | \vspace{-4.0mm} 716 | } 717 | 718 | 719 | %------------------------------------------------------------------------------- 720 | % Commands for elements of Cover Letter 721 | %------------------------------------------------------------------------------- 722 | % Define an environment for cvletter 723 | \newenvironment{cvletter}{% 724 | \lettertextstyle 725 | }{% 726 | } 727 | 728 | % Define a section for the cover letter 729 | % Usage: \lettersection{<section-title>} 730 | \newcommand{\lettersection}[1]{% 731 | \par\addvspace{2.5ex} 732 | \phantomsection{} 733 | \lettersectionstyle{#1} 734 | \color{sectiondivider}\vhrulefill{0.9pt} 735 | \par\nobreak\addvspace{0.4ex} 736 | \lettertextstyle 737 | } 738 | 739 | % Define a title of the cover letter 740 | % Usage: \makelettertitle 741 | \newcommand*{\makelettertitle}{% 742 | \vspace{8.4mm} 743 | \setlength\tabcolsep{0pt} 744 | \setlength{\extrarowheight}{0pt} 745 | \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} L{\textwidth - 4.5cm} R{4.5cm}} 746 | \recipienttitlestyle{\@recipientname} & \letterdatestyle{\@letterdate} 747 | \end{tabular*} 748 | \begin{singlespace} 749 | \recipientaddressstyle{\@recipientaddress} \\\\ 750 | \end{singlespace} 751 | \ifthenelse{\isundefined{\@lettertitle}} 752 | {} 753 | {\lettertitlestyle{\@lettertitle} \\} 754 | \lettertextstyle{\@letteropening} 755 | } 756 | 757 | % Define a closing of the cover letter 758 | % Usage: \makeletterclosing 759 | \newcommand*{\makeletterclosing}{% 760 | \vspace{3.4mm} 761 | \lettertextstyle{\@letterclosing} \\\\ 762 | \letternamestyle{\@firstname\ \@lastname} 763 | \ifthenelse{\isundefined{\@letterenclosure}} 764 | {\\} 765 | {% 766 | \\\\\\ 767 | \letterenclosurestyle{\@letterenclname: \@letterenclosure} \\ 768 | } 769 | } 770 | 771 | 772 | %------------------------------------------------------------------------------- 773 | % Bibliography 774 | %------------------------------------------------------------------------------- 775 | %\RequirePackage[style=verbose, maxnames=99, sorting=ydnt]{biblatex} 776 | \RequirePackage[ % BibLaTeX 777 | sorting=ydnt, % Sorts entries by year (descending order), name, title 778 | style=verbose, 779 | doi=false, 780 | isbn=true, 781 | url=false, 782 | eprint=false, 783 | backref = false, % include back references in bibliography 784 | maxcitenames=3, % affects only the citations in the document body 785 | maxbibnames=99, % affects only the bibliography, pass 99 to print all 786 | hyperref=true, 787 | block=none, 788 | backend=biber % {Options: bibtex, biber} 789 | ]{biblatex} 790 | 791 | % Avoid splitting entries across page break (only for 3 or fewer lines) 792 | % Tip: http://tex.stackexchange.com/a/51261 793 | \AtBeginEnvironment{thebibliography}{% 794 | \clubpenalty10000 795 | \@clubpenalty \clubpenalty 796 | \widowpenalty10000 797 | \interlinepenalty5000} 798 | 799 | % Customized format, based on Fancy CV template created by Adrien Friggeri 800 | \DeclareFieldFormat[article]{title}{#1\par} 801 | \DeclareFieldFormat[inproceedings]{title}{#1\par} 802 | \DeclareFieldFormat[misc]{title}{#1\par} 803 | \DeclareFieldFormat[report]{title}{#1\par} 804 | \DeclareFieldFormat[incollection]{title}{#1\par} 805 | 806 | \DeclareBibliographyDriver{article}{% 807 | \fontsize{9pt}{1em}\bodyfont% 808 | \printfield{title}% 809 | \newblock% 810 | \printnames{author}% 811 | \par% 812 | \newblock% 813 | {% 814 | \fontsize{8pt}{1em}\bodyfontlight\color{graytext}% 815 | \usebibmacro{journal}% 816 | \setunit{\space}% 817 | \printfield{pages}% 818 | \newunit% 819 | \printlist{publisher}% 820 | \setunit*{\addcomma\space}% 821 | \printfield{year}% 822 | \newunit% 823 | } 824 | \par\vspace{0.3\baselineskip} 825 | } 826 | 827 | \DeclareBibliographyDriver{inproceedings}{% 828 | \fontsize{9pt}{1em}\bodyfont% 829 | \printfield{title}% 830 | \newblock% 831 | \printnames{author}% 832 | \par% 833 | \newblock% 834 | {% 835 | \fontsize{8pt}{1em}\bodyfontlight\color{graytext}% 836 | \printfield{booktitle}% 837 | \setunit{\addcomma\space}% 838 | \printfield{year}% 839 | \setunit{\addcomma\space}% 840 | \printlist{location}% 841 | \newunit% 842 | } 843 | \par\vspace{0.3\baselineskip} 844 | } 845 | 846 | \DeclareBibliographyDriver{incollection}{% 847 | \fontsize{9pt}{1em}\bodyfont% 848 | \printfield{title}% 849 | \newblock% 850 | \printnames{author}% 851 | \par% 852 | \newblock% 853 | {% 854 | \fontsize{8pt}{1em}\bodyfontlight\color{graytext}% 855 | \printfield{booktitle}% 856 | \setunit{\addcomma\space}% 857 | \printfield{year}% 858 | \setunit{\addcomma\space}% 859 | \printlist{location}% 860 | \newunit% 861 | } 862 | \par\vspace{0.3\baselineskip} 863 | } 864 | 865 | \DeclareBibliographyDriver{misc}{% 866 | \fontsize{9pt}{1em}\bodyfont% 867 | \printfield{title}% 868 | \newblock% 869 | \printnames{author}% 870 | \par% 871 | \newblock% 872 | {% 873 | \fontsize{8pt}{1em}\bodyfontlight\color{graytext}% 874 | \printfield{booktitle}% 875 | \setunit*{\addcomma\space}% 876 | \printfield{note}% 877 | \setunit*{\addcomma\space}% 878 | \printfield{year}% 879 | \setunit{\addcomma\space}% 880 | \printlist{location}% 881 | \newunit% 882 | } 883 | \par\vspace{0.3\baselineskip} 884 | } 885 | 886 | \DeclareBibliographyDriver{report}{% 887 | \fontsize{9pt}{1em}\bodyfont% 888 | \printfield{title}% 889 | \newblock% 890 | \printnames{author}% 891 | \par% 892 | \newblock% 893 | {% 894 | \fontsize{8pt}{1em}\bodyfontlight\color{graytext}% 895 | \printfield{type}% 896 | \setunit{\space}% 897 | \printfield{number}% 898 | \setunit{\addcomma\space}% 899 | \printfield{year}% 900 | \newunit% 901 | } 902 | \par\vspace{0.3\baselineskip} 903 | } 904 | 905 | % New syntax for flexible backend (BibLaTeX > v3.3) 906 | \DeclareNameFormat{author}{% 907 | \fontsize{9pt}{1em}\bodyfont% 908 | \renewcommand*{\multinamedelim}{\addcomma\addspace}% 909 | \nameparts{#1}% 910 | \ifthenelse{\value{listcount}=1} 911 | {\ifblank{\namepartgiven}{}{\namepartgiven\space}% 912 | \namepartfamily}% 913 | {\ifblank{\namepartgiven}{}{\namepartgiven\space}% 914 | \namepartfamily}% 915 | \ifthenelse{\value{listcount}<\value{liststop}} 916 | {\addcomma\space} 917 | {} 918 | } 919 | --------------------------------------------------------------------------------