Skip to content
Go back

Building CV with NodeJS, Grunt and Travis

Edit page

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:

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:

<body>
  <div class="personal">
    <h1 class="name">{{ person.name }}</h1>
    <p class="position">{{ person.position }}</p>
...

And here’s a piece of JSON with CV data:

{
  "person": {
    "name": "Andrey Agibalov",
    "position": "Team Leader / Software Architect",
...

Together they make a CV HTML page:

I then use grunt-html-pdf to convert this HTML page to PDF:

As soon as both documents are ready, grunt-gh-pages plugin publishes them to GitHub Pages (here’s the HTML and here’s the 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.


Edit page
Share this post on:

Previous Post
Lightweight E2E testing for Spring Boot / Angular applications
Next Post
Thinking in Inequalities