Back in 2013 I realized that I don’t have a public CV and decided that I need one. I did not know what was the best way to get it, and I wanted it to be not a one-time creativity act, but a reusable solution.
A few ideas I had were:
- The final artifact I wanted to get was a PDF document
- I wanted to keep the content separate from design, so that new projects or position changes only require content update
- I wanted my CV to automatically get rebuilt and published every time I push my changes to GitHub.
Those days NodeJS was a trendy piece of technology and that was the only reason I did not pick something else. The solution is a Grunt build script that utilizes a few plugins to generate the CV and publish it to GitHub Pages.
I use grunt-swig-it to generate a CV HTML page based on Swig template and a plain JSON file with CV data. Here’s a piece of Swig template:
And here’s a piece of JSON with CV data:
Together they make a CV HTML page:
I then use grunt-html-pdf to convert this HTML page to PDF:
I have Travis CI configured to run the build and publish new version of my CV every time I push changes to the repository.
Here is the repository.