Write a workflow from scratch — set up .github/workflows/ci.yml, choose triggers with on:, and build jobs from run: commands and uses: actions.
Control order and parallelism — chain jobs with needs:, and run one job across multiple versions or OSes with strategy: matrix.
Pick the right runner — GitHub-hosted vs. self-hosted, and when to run steps inside a container: instead.
Move data and secrets safely — pass files between jobs with artifacts, speed up installs with actions/cache, and handle credentials with repository secrets and scoped GITHUB_TOKEN permissions.
Decide when things run — if: conditions, environment approval gates, PR checks, scheduled runs, and continue-on-error.
You leave with a workflow, not just notes. The session builds .github/workflows/ci.yml incrementally — triggers, jobs, matrix, artifacts, secrets, conditions — so you finish with a working file you can drop into your own repository the same day.
It closes the gap between "the workflow is green" and "the workflow is correct." Most people copy a workflow from a template and never learn why files disappear between jobs, why a job runs on every push when it shouldn't, or why GITHUB_TOKEN had far more permission than it needed.
Real engineering decisions, not just YAML syntax. GitHub-hosted versus self-hosted runners, run: versus a marketplace action, when caching helps and when it silently poisons a build, which jobs deserve an approval gate — these are the trade-offs you'll be asked to defend at work.
A supply-chain security angle most tutorials skip. Third-party actions run with access to your repository, so you'll learn to pin actions to a commit SHA rather than a floating tag, scope permissions: down to the minimum, and understand why pull_request_target is the trigger that leaks secrets if you misuse it.
A practical code-quality layer you can enforce immediately. You'll see how Ruff and pre-commit end style debates locally, and why the identical check must also run as a job — because git commit --no-verify makes the local hook a convenience while the workflow plus a branch protection rule is the actual guarantee. Plus live Q&A: bring your own slow, flaky, or over-permissioned workflows.
Git fundamentals — cloning, branching, commits, and merge requests; you should be comfortable working on a feature branch.
Linux command line and Bash basics — navigating a filesystem, running commands, and reading a simple shell script, since every job you write is a list of shell commands.
Docker: containers and images — building an image, tagging it, and pushing to a registry; the Docker executor is the default path throughout the session.
I'm a Senior MLOps and LLMOps Engineer with 6+ years in AI, holding a master's in Informatics from Nile University. I've worked at Unifonic, Valeo, Aiactive Technologies, and Advanced Programs Co. I'm an MLOps instructor at ITI Cairo and founder of the MLOps MENA Community.