My most up-to-date CV, based on the Awesome-CV template.
This project requires XeLaTeX to be installed and available in your PATH.
macOS:
# Option 1: Smaller install without GUI tools (recommended)
brew install --cask mactex-no-gui
# Option 2: Full MacTeX with GUI tools
brew install --cask mactex
# If MacTeX is already installed but not in PATH, add it:
export PATH="/Library/TeX/texbin:$PATH"Linux:
# Ubuntu/Debian
sudo apt-get install texlive-xetex texlive-fonts-extra
# Fedora
sudo dnf install texlive-xetex texlive-fontawesomeUse the Makefile to build your CV:
make # Build full CV (default)
make cv # Build full CV (cv.pdf)
make cv_short # Build short CV (cv_short.pdf)
make cv_staff # Build staff-level CV (cv_staff.pdf)
make coverletter # Build cover letter (coverletter.pdf)
make build-all # Build all documents
make clean # Remove build artifacts (keep PDFs)
make clean-all # Remove all generated files including PDFs
make update-version # Update version and date to current
make help # Show available commandsThe repository uses centralized version management. To update the date across all documents:
make update-version
# or
./update-version.shThis updates version.tex and README.md with the current date.
Alternatively, compile directly using XeLaTeX:
xelatex cv.tex- cv.tex - Full curriculum vitae with comprehensive details including research, patents, and publications
- cv_short.tex - Condensed version emphasizing education and skills
- cv_staff.tex - Staff-level CV focusing on leadership impact and technical expertise
- coverletter.tex - Cover letter template
The repository uses a modular architecture:
cv/- Content sections for the full CVcv_short/- Content sections for the short CVcv_staff/- Content sections for the staff-level CVcoverletter/- Content sections for the cover lettershared/- Sections reused across variants (research, patents, honors, education); used by the full and staff CVsawesome-cv.cls- LaTeX class file for stylingfonts/- Custom fonts used by the template
To modify content, edit the corresponding .tex files in each directory. Sections in
shared/ are inherited by cv.tex and cv_staff.tex, so edit them once to update both.
The repository includes pre-commit hooks to maintain code quality and prevent common mistakes:
# Setup (requires Python)
pip install pre-commit # or: brew install pre-commit
./setup-hooks.sh
# Or manually:
pre-commit installThe hooks will automatically:
- Clean LaTeX build artifacts before commits
- Check for trailing whitespace and line endings
- Prevent committing large files
- Lint LaTeX files with chktex
- Ensure consistent formatting
To bypass hooks when needed: git commit --no-verify
The repository includes automated CI/CD that:
- Lints all LaTeX files on every push
- Automatically builds all CV variants
- Uploads PDFs as downloadable artifacts
- Can be manually triggered from the Actions tab
To create a versioned release with PDF attachments:
# Update version first
make update-version
# Commit changes
git add .
git commit -m "Update CV for [date/purpose]"
# Create and push a version tag
git tag v2025.11
git push origin master --tagsThe GitHub Actions workflow will automatically:
- Build all CV documents
- Create a GitHub release
- Attach PDFs and checksums to the release
- Make PDFs downloadable from the Releases page
Since PDFs are now gitignored, use GitHub Releases or Actions artifacts to download built PDFs.
Template: Awesome-CV by Claud D. Park, licensed under CC BY-SA 4.0
Updated: June 2026