Why I Use LaTeX and GitHub Actions to Build My CV

Why I Use LaTeX and GitHub Actions to Build My CV

Two days ago, I gave a talk on Docker Community All Hands #6 on how to create your CV using LaTeX:

MS Word and comparable applications (like Google Docs and OpenOffice Writer) might be appropriate for creating a fast note or a small document. But, when creating your CV, the most valuable document you ever create, MS Word is a no-go. There was a time that I would reject a CV solely because it looked too "Word"y. Now, I still reject Wordy CVs, but I read them through to find an excuse.

ms-word.jpeg

The talk I gave has a brief section on why I use LaTeX and GitHub to create my CV, but I'll break it down a bit more in this piece.

Tech Stack

The tech stack that I use to create my CV is the following:

  • LaTeX
  • Overleaf
  • GitHub
  • GitHub Actions

LaTeX

Donald Knuth wrote The Art of Computer Programming, volume II, and reviewed the typesetting results. He didn't like it, as it was ugly and inferior to the classical hot metal typesetting. Then he spent 10 years creating his own typesetting software so that he can typeset his book with it. The result was TeX, the program that later became LaTeX.

LaTeX is very popular among academics and almost all books and scientific papers are written using it. The main reasons for LaTeX's popularity are the following:

  • It's platform independent. You type it in Linux and compile it in Mac, the result is the same.
  • It's modular. There is a principle in software engineering that is called DRY: Don't Repeat Yourself. In LaTeX, you can define things and reuse them.
  • It's pretty. The main reason Donald Knuth built TeX was that he wanted it to look pretty. Many awesome font families are integrated into the software to make it book publishing quality.
  • It separates the source from the output. So, you are in control. No "I moved this picture two pixels and all the hell broke loose".
  • It's free.

I would add one more reason to the batch:

  • Its source is human readable. Have you ever tried opening a Word file with Notepad or Vim? It's all gibberish. No one can read it, except for MS Word itself. It's pretty useless if you want to use some version control software like git to track the changes in your document. "Oh, in the last version I added some gibberish to the pre-existing gibberish. Very insightful."

Overleaf

LaTeX was made easy with Overleaf. Now you can just sign up and already write your first LaTeX document. No installation of LaTeX on your machine is required. There are tons of existing documents and templates made available by Overleaf that make the whole thing much smoother.

One of the best features of Overleaf is that it can be integrated with GitHub. You can pull and push the changes between the two platforms with a few clicks.

GitHub

Uploading your CV on GitHub has many benefits:

  • Versioning. You can always track different versions of your CV, go back in time, revert a change, see the changes, etc.
  • Availability. You're CV is always two clicks away. You can also give people who ask for the latest version of your CV just the link to the GitHub repo.
  • GitHub Actions. You can automate checks and builds for your CV.

Final Words

My CV is uploaded here:

github.com/aerabi/hacktoberfest-cv

You can use it as an example and build your own CV and automate its build.

This piece is the 3rd article in a 4er writeathon. The other pieces are the following: