Making a CV with LaTeX

For those of you who would like to create a better-looking curriculum vitae for prospective employers, consider using moderncv. This tutorial will help you get started.

I have to admit, one of the principal reasons for building the site is to have a personalized space on the internet that people (and potential employers) can use to get a sense of me as a potential employee. I can display some of my projects, talk about the work I do, and get some info about my interests. I used LinkedIn for a long time, but sometime ~2015 I realized it was becoming less useful for actual employer networking or job-searching. I recently decided I didn’t want to use their service any more, made this site, and took down my LinkedIn profile. Maybe sometime I’ll write more in-depth about it, perhaps once I’ve been out of the service for a while.

Anyway, that meant I’d need a proper curriculum vitae, or at least some written and preferably downloadable method for communicating details about my education, work experience, and qualifications. I had made a vita before, but I used Word and it showed. I knew a bit of LaTeX and I wanted to demonstrate what skills I had, plus maybe continue to work on them a bit, so I decided to make the entire CV with it.

I knew that I wanted to use a pre-canned template, vowing that some day I would write my own, eventually landing on moderncv. It looked relatively good for being a standardized template and seemed easy to use. Once you download it (manually, through either your TeX editor or, if you’re using Linux, through Synaptic), call the template at the very top of your .tex document:


…and you’re off and running.

This tutorial won’t focus on using the package, because you can currently find some helpful content out there on its use–not to mention the actual template, which includes an extensive system of very straightforward comments. I don’t want to re-hash their work. What I will spend a bit on, though, are the little improvements I made on it.


I didn’t like how the standard moderncv package rendered text, particularly because I didn’t like how it handled kerning on larger-point fonts. I opted to use EB Garamond, an open-source incarnation of the Garamond typeface family. Installed through the texlive-fonts-extra Linux package, I enabled it with:


I also made use of small capital letters throughout my vita, particularly for section and subsection headings, becuase I thought it added a nice touch and slightly improved readability for text-heavy sections. It can be safely used throughout the template by calling \textsc{your text here} anywhere you’d like to use it.

Relevant coursework bulleted items

After I listed out all of my coursework with \cvline entries and rendered it, I decided it left too much negative space on the page. Putting my courses in a bulleted format would be a more efficient approach. The code I used for that section can be seen here:

\section{\textsc{Relevant Coursework}}
    $\cdot$ Advanced Formal Methods Techniques & $\cdot$ Human Factors Research Methodology\\
    $\cdot$ Cognitive Engineering & $\cdot$ Human Information Processing\\
    $\cdot$ Cognitive Processes & $\cdot$ Industrial Hygiene\\
    $\cdot$ Design and Analysis of Experiments & $\cdot$ Java Programming I\\
    $\cdot$ Formal Methods in Human Factors & $\cdot$ Ontology Engineering\\
    $\cdot$ Home Health Innovations & $\cdot$ Sensing Realities\\
    $\cdot$ Human-Computer Interaction & $\cdot$ Safety in Human Factors\\

It may take some custom tinkering on your part, but I’ll provide a bit of explanation for the included commands:

Tasteful colors and formatting

The rest is up to you, your particular tastes, and what you think would make for a professional-looking vita. Using a bit of color in sparing fashion can add a bit of style to your document, so long as it isn’t too loud. LaTeX allows for an endless variety of customization and tweaking, so don’t shy away from using its capabilities to your advantage.

As always, if you find mistakes or have questions, please send an email.