Personal resume site at just3ws.com
- HTML - Primary resume
- Full History - Complete career timeline
- Plain Text
- Markdown
- Home - Navigation hub and context
- Start Here - Time-boxed archive entry paths
- Archive Status - Metadata and transcript quality snapshot
- Writing - Technical posts
- Interviews - Interview archive
- One-off Videos - One-off talks and recordings
- SCMC Videos - Software Craftsmanship McHenry County archive
- Canonical interview timeline lives in
_data/interviews.yml - Canonical video assets live in
_data/video_assets.yml - Interview conference metadata lives in
_data/interview_conferences.yml - Interview community metadata lives in
_data/interview_communities.yml - Trusted source registry lives in
_data/resources.yml - One-off metadata lives in
_data/oneoff_videos.yml - SCMC metadata lives in
_data/scmc_videos.yml - Canonical taxonomy vocabulary lives in
_data/taxonomy.yml - Primary navigation model lives in
_data/navigation.yml - Generated pages:
bin/sync_interview_asset_links.rbbin/generate_video_asset_pages.rbbin/generate_interview_pages.rbbin/generate_interview_taxonomy_pages.rbbin/generate_context_summaries.rb
- Shared generator helpers:
src/generators/core/meta.rbsrc/generators/core/text.rbsrc/generators/core/yaml_io.rb
- Validation:
bin/pipeline ci(CI core pipeline)bin/pipeline smoke(browser smoke checks)bin/validate_data_uniqueness.rb+bin/validate_data_integrity.rbbin/validate_archive_surfaces.rbbin/validate_repo_hygiene.rbbin/validate_metadata_completeness_budget.rbbin/validate_last_modified_output.rb
- mike@just3ws.com
- (847) 877-3825
For information on local development, build pipelines, and repository standards, please see CONTRIBUTING.md.
Full system documentation and operator runbooks are available in the Docs Index.
The project is built with Jekyll 4.x and uses a data-driven architecture.
- Canonical Data: Lives in
_data/(YAML). - Core Pipeline:
./bin/pipeline(Rake-based). - Automation: Specialized Ruby generators in
_plugins/.
GoatCounter page analytics are loaded globally in the minimal layout. Custom events are tracked via assets/js/goatcounter-events.js for:
mailto:link clickstel:link clicks- Resume/file download-style links
- Outbound link clicks (including video hosts like YouTube/Vimeo)
Missed path tracking is captured in 404.html as an event:
path:/event/missed-pathtitle: requested URL path + query string