{
  "$schema": "https://raw.githubusercontent.com/jsonresume/resume-schema/v1.0.0/schema.json",
  "basics": {
    "name": "Mateusz Śliwa",
    "label": "Data and AI engineer who ships mobile apps",
    "email": "sliwa.mateo@gmail.com",
    "url": "https://mateuszsliwa.dev",
    "summary": "I have an MSc in data engineering and a BA in economics. I built EcoSort, an iPhone app on the App Store, and the LLM pipeline behind it, which would rather hold a date back than publish a wrong one. I work with AI coding agents daily, build tools for them and test LLMs before I trust them.",
    "location": {
      "city": "Zielona Góra",
      "region": "Lubuskie",
      "countryCode": "PL"
    },
    "profiles": [
      {
        "network": "GitHub",
        "username": "MSliwa01",
        "url": "https://github.com/MSliwa01"
      }
    ]
  },
  "education": [
    {
      "institution": "University of Zielona Góra",
      "area": "MSc in data engineering",
      "startDate": "2025",
      "endDate": "2026"
    },
    {
      "institution": "University of Zielona Góra",
      "area": "BA in economics",
      "startDate": "2021",
      "endDate": "2024"
    }
  ],
  "projects": [
    {
      "name": "EcoSort",
      "description": "Waste collection dates, reminders and widgets for each address · 6 municipalities",
      "roles": [
        "creator and sole developer"
      ],
      "highlights": [
        "Built a pipeline that reads schedules one month or table section per LLM call: two reads with different prompts, a third on disagreement, code checks for holidays, Sundays and rhythm gaps, and my own YOLO detector as a fallback.",
        "On six hard scans (2,190 cells) the best of three prompt versions got 24.5% of cells wrong. Over three full runs the pipeline published 82.2% of cells with no wrong date and held the other 17.8% back instead of guessing. The ground truth is 966 manual decisions, and the pipeline was tuned on these documents.",
        "Wrote the FastAPI and PostgreSQL backend with TERYT address matching, a React admin panel, the SwiftUI app, an unreleased Jetpack Compose Android app, a Gemini assistant with PII scrubbing and Docker Compose on a VPS."
      ],
      "url": "https://mateuszsliwa.dev/ecosort",
      "urls": [
        "https://mateuszsliwa.dev/ecosort",
        "https://ecosort.pl",
        "https://apps.apple.com/pl/app/ecosort/id6785674008"
      ]
    },
    {
      "name": "TrueSky",
      "description": "Weather drawn as a painted landscape, an iPhone app on the App Store since 9 October 2026",
      "highlights": [
        "Expo, React Native and Skia; free, with a monthly or lifetime Pro purchase through RevenueCat."
      ],
      "url": "https://mateuszsliwa.dev/truesky",
      "urls": [
        "https://mateuszsliwa.dev/truesky",
        "https://apps.apple.com/pl/app/truesky-weather/id6816346955"
      ]
    },
    {
      "name": "Win probability model for Counter-Strike 2",
      "description": "Python, pandas, Parquet, XGBoost, LightGBM, CatBoost, SHAP · FastAPI and React app in Docker",
      "roles": [
        "master's thesis"
      ],
      "highlights": [
        "Parsed recordings of 9,196 professional maps into 16.8 million observations from 187,361 rounds and compared 9 models with match-grouped cross-validation, bootstrap tests and ablations. In quarterly walk-forward tests XGBoost reached ROC-AUC 0.81–0.82, with calibration error (ECE) 0.009."
      ],
      "url": "https://mateuszsliwa.dev/thesis"
    },
    {
      "name": "Skin lesion classifier",
      "description": "PyTorch, Optuna, MLflow, Grad-CAM, Streamlit, Docker",
      "roles": [
        "machine learning course project"
      ],
      "highlights": [
        "Trained a custom CNN and a fine-tuned EfficientNet-B0 on the HAM10000 images, with focal loss, class-balanced sampling, MixUp and test-time augmentation. EfficientNet reached AUC 0.93 and 0.95 recall on malignant lesions."
      ],
      "url": "https://mateuszsliwa.dev/skin"
    },
    {
      "name": "wwxd (\"What would X do?\")",
      "description": "Python, Typer, yt-dlp, faster-whisper, rapidfuzz · a Claude Code plugin",
      "roles": [
        "open source"
      ],
      "highlights": [
        "Turns one person's talks, podcasts and essays into a wiki of their positions; an agent answers \"what would X do?\" with timestamped quotes, and a script found 158 of 160 of them word for word. A blind judge from another lab (Google) preferred it to plain Claude on 34 of 40 questions. It doesn't predict opinions not yet voiced."
      ],
      "url": "https://mateuszsliwa.dev/wwxd",
      "urls": [
        "https://mateuszsliwa.dev/wwxd",
        "https://github.com/MSliwa01/wwxd"
      ]
    },
    {
      "name": "storeshots and macsim",
      "description": "App Store screenshots · an iOS Simulator for agents on Linux",
      "roles": [
        "open source tools for AI coding agents"
      ],
      "highlights": [],
      "url": "https://mateuszsliwa.dev/storeshots",
      "urls": [
        "https://mateuszsliwa.dev/storeshots",
        "https://mateuszsliwa.dev/macsim",
        "https://github.com/MSliwa01/storeshots",
        "https://github.com/MSliwa01/macsim"
      ]
    }
  ],
  "skills": [
    {
      "name": "Languages",
      "keywords": [
        "Python",
        "SQL",
        "TypeScript",
        "JavaScript",
        "Swift",
        "Kotlin",
        "Bash"
      ]
    },
    {
      "name": "Data and ML",
      "keywords": [
        "pandas",
        "NumPy",
        "Parquet",
        "scikit-learn",
        "XGBoost",
        "LightGBM",
        "CatBoost",
        "PyTorch",
        "SHAP",
        "Optuna",
        "MLflow",
        "OpenCV",
        "YOLO",
        "OCR",
        "Selenium"
      ]
    },
    {
      "name": "LLM and AI",
      "keywords": [
        "LLM evaluation",
        "prompt design",
        "Anthropic API",
        "Gemini API",
        "Whisper",
        "Claude Code",
        "Codex",
        "Cursor"
      ]
    },
    {
      "name": "Backend and infra",
      "keywords": [
        "FastAPI",
        "PostgreSQL",
        "SQLAlchemy",
        "Alembic",
        "REST APIs",
        "Docker Compose",
        "Linux",
        "Git"
      ]
    },
    {
      "name": "Mobile and web",
      "keywords": [
        "SwiftUI",
        "Jetpack Compose",
        "React"
      ]
    }
  ],
  "certificates": [
    {
      "name": "Cambridge C1 Advanced",
      "date": "2025",
      "issuer": "Cambridge University Press & Assessment"
    }
  ],
  "languages": [
    {
      "language": "Polish",
      "fluency": "Native"
    },
    {
      "language": "English",
      "fluency": "C1 (Cambridge C1 Advanced, 2025)"
    },
    {
      "language": "German",
      "fluency": "A2"
    }
  ],
  "meta": {
    "version": "v1.0.0",
    "canonical": "https://mateuszsliwa.dev/resume.json",
    "lastModified": "2026-10-13"
  }
}
