This repository contains source files for generating my resume. I did a write-up about running a resume like a software project on my blog.
It can be used to generate a PDF-format resume, as well as a PDF-format cover letter, for various applications. It also acts as the source for a Github Pages-hosted version of the unabridged resume.
A GitHub Pages-hosted version of the resume is available at resume.phlippieb.dev. It is responsive and supports dark mode.
This repo requires you to install some dependencies.
Markdown is consumed and processed by pandoc, which can be installed on Mac by brew install pandoc
.
You then need an additional engine to create the PDF files. The make scripts in .scripts/
contain commented code to make use of either electron-pdf, pagesjs, or wkhtmltopdf. You only need one of these:
- electron-pdf
- My preference, as it seems like a neater install
npm install --global electron-pdf
- pages js
- Requires
puppeteer
and seemingly Chrome, so is a little heavier to install npm install --global pagedjs-cli pagedjs
- Requires
- wkhtmltopdf
- Produces the smallest PDF files, but doesn't handle custom fonts correctly, so only usable with the default sans-serif font
brew install wkhtmltopdf
Make sure your tool of choice is installed, then uncomment the appropriate section in make-pdf.sh.
The resume uses the Inter font. Get it here.
To work on the resume: edit resume.md
to edit the content of the resume, and edit resume.css
to change the style of the produced PDF or HTML. Run make pdf
to generate a PDF format resume artifact. Run make html
to generate a web page format, as it will be displayed on Github Pages (see Web Version).
To work on the cover letter: edit cover-letter.md
to edit the content of the cover letter, and edit cover-letter.css
to change the style of the produced PDF. Run make cover-letter
to generate a PDF format cover letter.
Run make clean
to remove all HTML and PDF files generated by any commands. This will clear all files matching .pdf and .html, which are also ignored by git, so take care not to lose anything important.
Spelling and grammar can be checked locally. I currently use Gramma: https://caderek.github.io/gramma
Example usage: gramma check resume.md
This project follows trunk-based development. The main
branch contains my complete resume. Tailored versions for specific applications are "released" by cutting a release branch, editing the content in resume.md
, and generating a PDF.
To action an application:
- Check out a release branch named like
application/<ISSUE NO>/<COMPANY NAME>
, where ISSUE NO is the number of the issue corresponding to the application - Update
resume.pdf
andresume.css
as needed to create an application-specific resume - Create a release (here)
- Name the release like
<COMPANY NAME>-v1.0.0
; bump the version for subsequent updates - Create a new tag (in GitHub) named like
<company name>-v1.0.0
(Company name in lowercase letters) - Upload the PDF version of the resume
- Name the release like
- Close the corresponding issue
To release to GitHub Pages (see Web Version), merge into the gh-pages
branch.