Siddharth S Singh — résumés

This repository holds four résumés, one per kind of role, written in Typst from a shared template. The general one is the broadest; the others are tailored to a specific role.

Each build produces a PDF to attach to an application and an HTML page that reads well on a phone. Built files are not kept in git: every push to main rebuilds them, and a tagged push publishes the PDFs to a release, so the links below always resolve to the newest build.

Read or download

Résumé For Links
General Two pages. The broadest summary: hardware, systems, product, and tooling. read · PDF
Software engineer Systems and product engineering across TypeScript, Rust, and WebAssembly, including agent tooling. read · PDF
Full-stack TypeScript engineer Product work, front end through deploy. read · PDF
Hardware and electrical engineer CAD, fixturing, design for manufacture, PCBs. read · PDF

Contact: me@shantaram.xyz · shantaram.xyz · github.com/xyzshantaram · gitlab.com/xyzshantaram

Quickstart

git clone git@github.com:xyzshantaram/resume.git
cd resume
make site                                  # build everything into out/
python3 -m http.server -d out/site 8000    # then open http://localhost:8000

Typst builds the PDFs and Deno renders the HTML index. Typst downloads the basic-resume package itself on the first run.

cargo install --locked typst-cli           # or: brew install typst
curl -fsSL https://deno.land/install.sh | sh

Build targets

make          # build every PDF into out/, under its send-ready name
make html     # build the HTML pages into out/site/
make site     # both, plus this README rendered as the index
make clean

To work on one résumé, let Typst rebuild it on every save and keep a viewer open on the result:

typst watch 04-general.typ out/preview.pdf

HTML export in Typst is still marked experimental, so the build prints warnings about ignored page and padding rules. Those are expected. lib/shared.typ re-emits the parts that HTML export would otherwise drop.

Release

A tag publishes a release with every PDF attached. Tags are ISO 8601 basic with the local UTC offset, for example 20260903T001948+0530:

make tag                  # tags the current commit with the time right now
git push origin --tags

The workflow in .github/workflows/build.yaml builds on every push to main, deploys the GitHub Pages copy, and creates the release when the push is a tag.

Layout

Path What it is
0*.typ One résumé each. Content only.
lib/shared.typ The shared template: spacing, the contact row, links, projects, skills, references, and the HTML branch.
lib/page.css Styling for the HTML pages.
lib/icons/ The marks used in the contact row and next to links.
build-index.ts Renders this README into the GitHub Pages index.