A Salty Vet · Field Reference · Cleared for public release
Project file2026
Problem
The work was scattered across LinkedIn, coursework, live products, and private repositories. Scattered evidence reads like no evidence. This site is the single credible home.
Role
Owner, subject, product designer, site publisher, resume source steward
Date
2026
Tools
Dependency-free Node build, Cloudflare Pages, fact-sync build gate, security headers
PortfolioResumeGISCybersecuritySEOPersonal Brand
W
Work detail

A Salty Vet

LivePublicArchive Growing

The public proof surface: portfolio, operator profile, writing hub, and learning record — held to the same standard as the products it describes.

Claim: a portfolio should have to prove itself like a product.

Receipt: you're reading it. Static build, security headers, status labels on every project, and a fact-sync gate that fails the build when a public count drifts from a product surface. A stale number can't ship from here by accident.

Status honesty: the site is live; the archive is not finished. Credentials, maps, dashboards, and lab notes get added as each clears review — Under Review means exactly that, not "coming soon" theater.

Artifacts

Screenshots and visual proof.

A Salty Vet illustrated logo with GIS equipment, field notes, and coffee.
Brand anchor for A Salty Vet: geospatial work, veteran perspective, field notes, and dry humor.

Receipts

Outcomes and lessons.

Outcomes

  • Cloudflare-ready static foundation with a dependency-free build.
  • Content model separates public facts from material still in clearance.
  • Fact-sync gate: stale counts fail the build before they can fail your trust.
  • Positioned around geospatial work, cybersecurity growth, data, web development, and operations.

Lessons

  • A portfolio earns trust the same way a product does: evidence and boundaries.

This is the workbench for the public identity. It's allowed to be ambitious; it isn't allowed to be vague. Public claims stay limited to facts that can be backed — everything else carries a status label instead.