Skip to content

szmyty/profile

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

416 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Alan Szmyt - Software Engineer β€’ DevOps & Cloud β€’ AI-Assisted Systems

Version GitHub followers Profile Views GitHub Stars CI GitHub commit activity GitHub last commit Repo Size

All Contributors


πŸ‘€ About Me

πŸš€ Software engineer focusing on cloud-native systems, developer experience, creative automation, and AI-assisted tooling. I build high-quality, scalable platforms with strong emphasis on automation, security, and clarity.


πŸ’‘ Developer Experience

🎯 DX Philosophy

⚑ Automate the mundane β€’ πŸ”„ Fast feedback loops
πŸ“š Self-documenting code β€’ 🧩 Composable architectures


πŸ›οΈ Engineering Pillars

πŸ”’ Secure by default β€’ πŸ“ˆ Scalable by design
πŸ§ͺ Test-driven quality β€’ πŸ”§ Continuous improvement


πŸš€ What I Build

πŸ›  Developer tooling & CLIs β€’ ☁ Cloud-native platforms
πŸ€– AI-augmented workflows β€’ πŸ” CI/CD & automation systems




Build Profile Monitoring Tests

πŸ“Š Workflow Performance Dashboard

Workflow Performance

🌐 Live Dashboard

View the full interactive dashboard at:
πŸš€ https://szmyty.github.io/profile/

The dashboard automatically updates daily with the latest metrics from all workflows.




πŸ’» Developer Dashboard

Developer Dashboard

✨ Quote of the Day

Quote of the Day

πŸ“ My Location

My Location

🌦️ Today's Weather

Today's Weather

🎡 Latest SoundCloud Release

SoundCloud Latest Track


🧬 Oura Health Dashboard

Oura Health Dashboard

πŸ’« Oura Mood Dashboard

Oura Mood Dashboard



πŸ“Š System Status

System Status

πŸ“– View detailed monitoring documentation




πŸ”„ Unified Workflow Architecture

This repository uses a single, orchestrated workflow (build-profile.yml) that consolidates all profile updates into one cohesive pipeline. This architecture provides several key benefits:

Architecture Benefits

  • 🎯 Atomic Updates - All cards and data updated in a single commit
  • πŸ›‘οΈ Error Resilience - Continues on partial failures with automatic fallbacks
  • πŸ”§ Simplified Maintenance - One workflow to maintain instead of 8+ separate workflows
  • πŸ“Š Better Orchestration - Sequential phases with proper dependencies
  • πŸ› Easier Debugging - All logs consolidated in one workflow run

Pipeline Phases

The unified workflow executes in 10 sequential phases:

  1. Setup - Environment, dependencies, and caching
  2. Fetch All Data - Developer stats, Weather, Location, SoundCloud, Oura health
  3. Validate Data - JSON schema validation and sanity checks
  4. Generate SVG Cards - All card types with fallback handling
  5. Optimize SVGs - SVGO compression with advanced configuration
  6. Update README - Inject all cards into appropriate sections
  7. Build Dashboard - React dashboard compilation and deployment
  8. Lint (Report-Only) - MegaLinter diagnostics without blocking
  9. Commit & Push - Atomic commit of all changes with detailed message
  10. Build Summary - Comprehensive status report of all operations

Error Handling Strategy

The workflow never fails due to partial errors:

  • Failed data fetches fall back to cached data
  • Failed card generation produces fallback SVG cards
  • Failed validations log warnings but continue
  • Each step uses continue-on-error: true where appropriate

πŸ“– View workflow source




⚑ Performance Optimizations

This repository implements several performance optimizations to improve speed and reduce GitHub Actions usage:

  • πŸ”„ Parallel API Fetching - Fetch Oura, Weather, and SoundCloud data simultaneously (3x faster)
  • πŸ“Š Incremental SVG Generation - Skip regeneration when data hasn't changed (50-80% time savings)
  • πŸ“¦ Smart Python Dependency Caching - Multi-layer pip caching with composite actions (60-75% faster Python setup)
  • 🎨 Enhanced SVG Optimization - Advanced compression with path simplification (30-50% smaller files)
  • πŸ’Ύ Multi-Level Caching - Cache API responses, client IDs, and geocoding results

Results: 60-75% faster workflows, 60-70% lower GitHub Actions usage

Documentation: See WORKFLOW_CACHING.md for caching strategy and CACHING_BENCHMARKS.md for performance metrics.



πŸ” Monitoring & Observability

This repository includes comprehensive monitoring features:

  • πŸ“ˆ Workflow Metrics - Track run times, success/failure rates, and API call counts
  • 🎯 Status Dashboard - Visual display of system health and recent updates
  • 🚨 Automated Alerts - Automatic issue creation for repeated failures (3+ consecutive)
  • βœ… Data Quality Checks - Detection of missing fields, NaN values, and out-of-range metrics

πŸ“– View Monitoring Guide



πŸ”§ Troubleshooting

Encountering workflow failures? The troubleshooting guide covers common issues and solutions:

  • 🚦 Rate Limiting - GitHub API, Nominatim, and external API rate limits
  • πŸ“‹ Invalid JSON - Validation errors and malformed responses
  • 🌐 API Failures - SoundCloud, Open-Meteo, Mapbox, and Oura issues
  • πŸ”‘ Missing Keys - Handling missing fields and data validation
  • ⚑ Concurrency - Git conflicts and workflow collision prevention
  • ⏱️ Timeouts - HTTP request and workflow timeout handling
  • βœ… Schema Validation - Setting up and troubleshooting data validation

See TROUBLESHOOTING.md for detailed solutions.


πŸ“œ Logs

All workflow logs are stored in the logs/ directory with automatic rotation to prevent excessive file growth. The unified workflow generates logs for each operation:

  • logs/location/ - Location data fetching and card generation
  • logs/weather/ - Weather data fetching and card generation
  • logs/oura/ - Oura health data fetching and dashboard generation
  • logs/developer/ - Developer statistics and dashboard generation
  • logs/soundcloud/ - SoundCloud data fetching and card generation
  • logs/megalinter/ - MegaLinter diagnostic reports and summaries
  • logs/build-profile/ - Unified workflow execution logs (if created)

Log Features

  • Persistent Logging: All logs are committed on every workflow run, even if the workflow fails
  • Automatic Rotation: Logs automatically rotate when they exceed 5MB
  • Timestamped Entries: Each log entry includes UTC timestamps and severity levels (INFO, WARN, ERROR)
  • Command Tracking: All API calls, script executions, and their exit codes are logged
  • Troubleshooting: Use logs to debug workflow failures and track historical execution



πŸ› οΈ Development

Quick Start

πŸš€ Using GitHub Codespaces (Recommended)
  1. Click "Code" β†’ "Create codespace on main"
  2. Wait for the environment to set up automatically
  3. Start developing!
πŸ’» Local Development
# Install dependencies with Poetry (recommended)
pip install poetry
poetry install

# Or use pip with requirements.txt (alternative)
pip install -r requirements.txt
pip install -r requirements-dev.txt

# Install pre-commit hooks
poetry run pre-commit install  # if using Poetry
# or
pre-commit install              # if using pip

# Generate cards with mock data (no API keys needed)
./scripts/dev-mode.sh all

🎭 Running GitHub Actions Locally

Test workflows locally with act (available in devcontainer):

# List all workflows
act -l

# Run specific job
act -j test-python

# Run workflow with secrets
act -j build-profile --secret-file .secrets

See Local Development Guide for details.


πŸ“‹ Code Conventions

Script Naming: All Python scripts use dash-case naming (e.g., generate-card.py, update-readme.py).

Script Permissions: Python scripts that are directly executed by workflows are marked as executable. Library modules in scripts/lib/ are not executable.

Dependencies: Install required Python packages with Poetry (recommended) or pip:

# Using Poetry (pinned dependencies in poetry.lock for reproducibility)
pip install poetry
poetry install

# Or using pip (alternative)
pip install -r requirements.txt        # Core dependencies
pip install -r requirements-dev.txt    # Development tools

All dependencies are pinned to exact versions in pyproject.toml and poetry.lock to ensure reproducible builds and prevent breakage from upstream changes.

Theme Configuration: All visual styling (colors, fonts, spacing, dimensions) is centralized in config/theme.json.

Pre-commit Hooks: Run pre-commit run --all-files before committing to validate:

  • JSON schemas
  • SVG formatting
  • Python linting (black, flake8, isort)
  • Shell script validation (shellcheck)
  • File permissions

πŸ§ͺ Development Mode

Test card generation locally without API keys using mock data:

# Generate all cards
./scripts/dev-mode.sh all

# Generate specific cards
./scripts/dev-mode.sh soundcloud
./scripts/dev-mode.sh weather
./scripts/dev-mode.sh developer
./scripts/dev-mode.sh oura

Output is saved to dev-output/ directory. See data/mock/README.md for details on mock data.


πŸ“š Documentation
  • Local Development: Run GitHub Actions locally with act for faster iteration
  • Monitoring Guide: Monitoring, observability, and alerting features
  • Optimization Guide: Performance optimizations and caching strategies
  • Workflows: Complete guide to GitHub Actions workflows and their dependencies
  • Mock Data: Information about development mode and mock data
πŸ§ͺ Testing

Run the test suite:

python -m pytest tests/ -v



Footer



🀝 Open Source Community

Supporting and contributing to open-source initiatives


Open Collective Linux Foundation CNCF


Mozilla FSF Creative Commons


EFF Apache Open Source Initiative





πŸ“¬ Get In Touch

GitHub Email LinkedIn


Built with ❀️ and open-source tools


Powered by GitHub Actions Made with Python Automated with Poetry

Contributors ✨

Thanks goes to these wonderful people (emoji key):

Alan Szmyt
Alan Szmyt

πŸ’» 🎨 πŸ€” 🚧 πŸš‡ πŸ“–
GitHub Copilot
GitHub Copilot

πŸ’» πŸ€” πŸ”§ πŸ€–
Add your contributions

This project follows the all-contributors specification. Contributions of any kind welcome!

About

No description, website, or topics provided.

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors