Skip to content

Latest commit

Β 

History

27 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Ryan Johnson β€” Resume

A static resume site with two variants built from shared content:

  • leadership β€” the default, published at ryanjohnson.ca
  • ic β€” senior IC framing, PDF-only by default (never uploaded, never linked)

Layout

.
β”œβ”€β”€ build.js          renders both variants + PDFs into dist/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ template.html design shell (HTML + inline CSS + inline JS) with slots
β”‚   └── content.js    ALL resume content: shared facts + per-variant framing
β”œβ”€β”€ fonts/            self-hosted woff2 (Inter, JetBrains Mono, Source Serif 4)
β”œβ”€β”€ deploy.sh         uploads dist/index.html + fonts to S3, invalidates CloudFront
└── dist/             generated output (gitignored)
    β”œβ”€β”€ index.html                          published variant
    β”œβ”€β”€ leadership/index.html               preview (noindex)
    β”œβ”€β”€ ic/index.html                       preview (noindex)
    β”œβ”€β”€ Ryan_Johnson_Engineering_Leader.pdf
    └── Ryan_Johnson_Senior_Engineer.pdf

Edit content

Everything lives in src/content.js:

  • Shared facts (contact, employers, titles, dates, skills, education) live in shared β€” edit once, both variants update.
  • Variant framing (tagline, chip, Director-role lede and bullets, earlier-experience summary) lives in variants.leadership and variants.ic.

Rules enforced by the build: no em dashes in resume prose (use commas, colons, parentheses, or periods; date-range en dashes are fine). Titles, dates, and metrics are shared values so they cannot drift between variants.

Design changes (CSS, layout, chrome) go in src/template.html.

Build

npm run build

Renders both HTML variants and exports both PDFs via headless Chrome (uses your installed Google Chrome; override with CHROME_BIN=/path/to/chrome, or skip PDFs with SKIP_PDF=1).

The variant published at the site root defaults to leadership; override with:

PUBLISHED_VARIANT=ic npm run build

Run locally

npm run dev

Serves dist/ at http://localhost:3000. Previews: /leadership/ and /ic/.

Deploy

npm run deploy

Builds, then uploads dist/index.html + fonts to the S3 bucket behind the CloudFront distribution and invalidates /index.html. The IC preview and the PDFs are intentionally never uploaded.

PDFs

Both PDFs are regenerated on every build via the print stylesheet (US Letter, two pages at comfortable type):

  • dist/Ryan_Johnson_Engineering_Leader.pdf
  • dist/Ryan_Johnson_Senior_Engineer.pdf

About

resume! BOOMπŸ’₯

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages