Skip to content

Printable resume, project write-ups and roles, cloud-native skills, GoatCounter analytics - #133

Merged
will-white merged 3 commits into
mainfrom
claude/eloquent-ptolemy-63puql
Oct 28, 2026
Merged

will-white merged 3 commits into
mainfrom
claude/eloquent-ptolemy-63puql

Conversation

@will-white

@will-white will-white commented Oct 27, 2026 •

Copy link
Copy Markdown
Owner

Portfolio and resume improvements from the review after #132. These are the items that need no new content from the author.

Changes

Printable resume. Printing /resume/ (or saving it as PDF from the browser) now gives a clean one-page document:

  • The site header, footer, background frame and "Download PDF" button are hidden. The page shows "William White" with a contact line (site · email · LinkedIn · GitHub) in their place.
  • Print-only spacing and type (html { font-size: 12px } in print; everything is sized in rem). The screen's side gutters are dropped, since @page sets the margins.
  • No page break inside a role, after a section heading, or inside Skills or Education. This keeps the layout tidy once a fourth role pushes it onto two pages.
  • dark: styles now apply on screen only (the @custom-variant dark is wrapped in @media screen). Printing from dark mode used to give near-white text on white paper. On screen, dark mode behaves exactly as before.

This also opens the door to generating the PDF from this page, instead of keeping it in the separate will-white.github.io/resume repo.

Projects

  • The homelab and doorbell project cards link to their blog posts ("Read the write-up →"), raised above the card's full-size click target.
  • Page title "My creative footprint on the internet." → "Things I've built, at work and at home.", with a matching search/share description.

Home

  • "View resume" and "Download PDF" buttons under the contact links. The PDF URL moves to lib/site.ts so the two pages share it.

Resume skills (second commit)

  • Go added under Languages, plus a new Cloud Native row: Docker, Kubernetes, Talos Linux, Flux (GitOps). The printed resume still fits on one page.

"My part" on professional project cards (second commit). Drafts for the author to check, taken only from claims already on the home page and resume:

  • SkySlope Forms: "Senior engineer, 2022–2024. Helped keep it at 99.999% uptime for 10,000+ daily concurrent users, and led a streaming and deferred-execution effort that cut cluster costs by 40%."
  • AgriNet: "Eight years at ARMtech Insurance Services, 2014–2022. Built a unified single sign-on for 10,000+ users and a 45x speedup of a core processing service."
  • MapLarge, RASI and Statue City Cruises are unchanged; the site has no detail on the author's part in them yet.

Analytics (third commit)

  • GoatCounter, which sets no cookies: page views, plus click events resume-pdf / resume-pdf-home on the two "Download PDF" buttons.
  • Off until configured. deploy.yml passes the GOATCOUNTER_CODE repository variable to the build as NEXT_PUBLIC_GOATCOUNTER_CODE. While the variable is unset, no script is loaded. I tested both states in a browser. The setup steps are in the README.

Structured data

  • The Person schema now includes knowsAbout (C#, .NET, TypeScript, React, Angular, Node.js, Go, Kubernetes, SQL, AWS), all taken from skills the site already states.

Testing

  • Prettier, lint, typecheck, build and the internal link check all pass.
  • Printed /resume/ to PDF (re-checked after the skills change) with Playwright from dark mode: one Letter page, light palette, no site chrome.
  • In Playwright, clicking "Read the write-up" opens the post rather than the card's GitHub link. Checked the homepage buttons and the projects page in dark mode visually.

Still needs the author

  • MapLarge role on the resume.
  • Context for RASI and Statue City Cruises (and their "My part" lines), which aren't on the resume.
  • Create a GoatCounter site and set the GOATCOUNTER_CODE repository variable to turn analytics on.
  • Optional: an availability line.

https://claude.ai/code/session_0196LghwXY1w3ByYdCGUjWJB


Generated by Claude Code

…ume CTA

- Resume prints as a clean one-page document: site chrome hidden, contact
  details shown in its place, tighter print spacing and type, and page
  breaks kept out of roles and section headings. dark: styles now apply
  on screen only, so printing from dark mode no longer produces
  near-white text.
- Projects: personal projects link to their blog write-ups; clearer page
  title and description.
- Home: "View resume" and "Download PDF" buttons under the contact links.
  The PDF URL now lives in lib/site.ts.
- Person structured data lists knowsAbout skills.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0196LghwXY1w3ByYdCGUjWJB
- Resume skills: Go under Languages, and a Cloud Native row (Docker,
  Kubernetes, Talos Linux, Flux/GitOps). Print spacing between sections
  trimmed so the printed resume stays on one page.
- Projects: SkySlope Forms and AgriNet cards say what I did on them,
  drawn from claims already on the home page and resume. MapLarge, RASI
  and Statue City Cruises are unchanged until there is detail to add.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0196LghwXY1w3ByYdCGUjWJB
Cookieless page-view counts, plus click events on the resume PDF links
(resume-pdf, resume-pdf-home). The deploy passes the GOATCOUNTER_CODE
repository variable to the build; while it is unset the site loads no
analytics script at all.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0196LghwXY1w3ByYdCGUjWJB
@will-white will-white changed the title Printable one-page resume, project write-up links, homepage resume CTA Printable resume, project write-ups and roles, cloud-native skills, GoatCounter analytics Oct 28, 2026
@will-white
will-white merged commit ecd129c into main Oct 28, 2026
1 check passed
@will-white
will-white deleted the claude/eloquent-ptolemy-63puql branch October 28, 2026 09:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants