Developer CV


This curriculum vitae/resume template is tailored for software developers to display their skills and experience in a clean and simple way. The top of the template contains space for profiles and contact information on various platforms and uses familiar FontAwesome icons. Skills in various technologies and platforms are displayed at a glance in a skill bar chart and bubbles of varying sizes. Experience at different firms is listed in an ordered list and includes examples of technologies used at each position. Finally, a free-form set of side-by-side sections let the user add any other information they would like to include.


This template was originally created by Jan Vorisek based on a template by Jan Küster. It has been extensively modified for this website by Vel.


The MIT License


Usage Guide


This template compiles with standard pdflatex. There are no special requirements outside of packages that are supplied with a full distribution of TeX.

Spanning Multiple Pages

If your content doesn’t fit on one page, it will automatically wrap to the next page at the next reasonable location between entries in lists, such as for Experience or Education. LaTeX will decide where this should occur, and if you don’t like this behaviour, you can simply add a \newpage command to wherever you would like to manually break to the next page. Be wary that changing content upstream of such a break will shift its position up or down.


This template uses the FontAwesome icons in the black boxes at the top. Many icons are available and you can find a PDF with the template that has examples of all of them along with the command to display them. Icons are added with a command like this: \icon{Phone}{12}{+1 123 456 789}\\. The first argument is the FontAwesome identifier for the icon you would like to use, this is simply the text after \fa in the FontAwesome PDF. For example, the command for the previous phone icon would be \faPhone. The second argument of the \icon command is the width and height of the square box that encloses it, you can adjust this as needed. Finally, the third argument is the text to the right of the icon box, be careful to keep this short or it will be difficult to fit everything into the width of the page.


This template uses the Raleway font. A number of other options that also look good are available in the class file. Simply copy one of these into the template and uncomment it to use a different font.

Positioning Content on the Page

This template makes extensive use of the minipage environment for positioning elements next to each other on the page. If you’d like to make a new set of elements, it’s recommended to copy an existing example from the template and modify the percentages. Make sure they add up to 100% whenever adjusting minipages.

CV Sections

New sections (the labels with white text on a black background) are created using the \cvsect{} command. This takes a single argument for the section text.

Bar Chart

The skills bar chart is created using a barchart environment. The environment takes a single argument for the maximum width a bar can take up at 100% width, in cm. Inside this environment, use the \baritem{}{} command to add new bars. The first argument to this command is the skill label and the second is the percentage width the bar should take up of the maximum width specified for the environment. Use whole numbers from 1-100 for this.


Bubbles are created using the \bubbles{} command. The only argument to this is a string specifying the number of bubbles and their sizes and labels. This must be in the following format: \bubbles{5/Eclipse, 6/git} where the number is the relative size of the bubble and the text to right of the slash delimiter is the bubble label. Each bubble should be separated by a comma from the previous one.

CV Entry Lists

Important information with multiple entries lives in entry lists. These are created using the entrylist environment. Inside this environment, each entry is added using the \entry command. This command takes 4 arguments, the first is the date range on the left, the second is the entry heading, the third is the entry qualifier and the fourth is the entry description. The entry description can include a monospace list of technologies as follows: \texttt{PHP}\slashsep\texttt{JS}}. If you don’t need any of these elements in the entry, leave its argument empty rather than removing it entirely.

Open Template for Free Editing Online:

Open in Overleaf

Download Template

{ Download .zip } { Preview PDF }

Have a Question or Comment About This Template?

{ Ask a Question }