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