This repo contains the source for my CV:
- generate.py creates a website and PDF from a shared YAML source by using Jinja templates.
- The publications are rendered from a single BibTeX file. The abstracts are displayed in the website output and the selected publications here are highlighted.
- The YAML source links to all author websites, which will automatically be added to the publication lists in the website and PDF.
- GitHub stars are automatically scraped and cached on disk.
Dependencies are included in requirements.txt and can be installed
using pip with pip3 install -r requirements.txt.
make will call generate.py and
build the LaTeX documents with latexmk and biber.
The Makefile can also:
- Stage to my website with
make stage, - Start a local jekyll server of my website with updated
documents with
make jekyll, and - Push updated documents to my website with
make push.
Before make push, commit and push all changes in this CV repository.
The command refuses to publish if there are uncommitted or untracked files,
or if the current commit is not on the branch's remote upstream. It fetches
the upstream branch to verify this before building or staging the website.
Change the content in cv.yaml.
Publication venues in BibTeX's _venue field should omit the publication year.
The website and PDF append year automatically and fail generation if that year
also appears in _venue. Leave _venue empty to display just the year.
Every publication must have a nonempty abstract field. Website and PDF
generation reject missing, empty, or whitespace-only abstracts and identify the
publication that needs fixing.
Publication resource links use codeurl, dataurl, slidesurl, and talkurl
fields in BibTeX. Both the website and PDF render the corresponding code, data,
slides, and talk links; use dataurl for dataset repositories.
Paper awards are maintained in its honors list. Give an award a unique id
(for example, informs-ics-2026), then reference it in a publication's BibTeX
entry with awards={informs-ics-2026}. Multiple IDs can be separated by commas.
The website and PDF show each referenced award in an outlined trophy box below
the paper's venue, at the same text size, using the title and URL from Honors & Awards. Update the
award's title or URL only in cv.yaml; unknown or duplicate IDs fail generation.
An optional venue adds "at [venue]" in Honors & Awards, while the paper's
badge uses just the title to avoid repeating its venue.
You should also look through the template files to make sure there isn't any
special-case code that needs to be modified.
For team-authored reports, an optional _author_display BibTeX field overrides
the author line in the website and PDF while preserving the citation's author
field. Use LaTeX formatting, as in cv.yaml; for example,
_author_display={\href{https://reflection.ai/}{Reflection Team}}.
The Makefile can also start a Jekyll server and push the
new documents to another repository with make jekyll and make push.
- Strings in
cv.yamlshould be LaTeX (though, the actual LaTeX formatting should be in the left in the templates as much as possible). - If you do include any new LaTeX commands, make sure that one of the
REPLACEMENTSingenerate.pyconverts them properly. - The LaTeX templates use modified Jinja delimiters to avoid overlaps with
normal LaTeX. See
generate.pyfor details.
You are welcome to use this code with or without attribution in the documents you produce, and add a link back here if you want!
- Alessandro Checco
- Alex Sludds
- Amara Dinesh Kumar
- Boyo Chen
- Chaitanya Ahuja (code)
- Chaitanya Bapat
- Chieh Hubert Lin (林杰)
- Colin Clement (code)
- Daniel Schaefer
- David B. Lindell (code)
- Emir Ceyani (code)
- Franziska Meier
- Guojin Chen
- Jean Nassar
- Joan Cano
- Juan Martín Loyola (code)
- Jun Xiong
- Jérémie Lumbroso
- Krishnaditya Kancharla
- Lamin Juwara (code)
- Lizeth Joseline Fuentes Pérez (code)
- Marco Piccirilli
- Matthew L. Bendall
- Murali Koppula
- Nathan P. Lawrence (code)
- Nazim Coskun
- Nicholas J. Loman
- Nikos Doulaveras
- Norman Kabir
- Nurpeiis Baimukan
- Olalekan Ogunmolu
- Pieter Vanderpol
- Prachi Sudrik
- Pınar Demetçi
- Qian Ge
- Renan Souza (code)
- Songlin Jiang
- Stefan Doerr
- Steve T.K. Jan
- Swaminathan Gurumurthy
- Vinayakumar Ravi
- Wen-Yen Chang
- Wilka Carvalho
- Yann-Aël Le Borgne
- You-Feng Wu