Theme: Working like a professional software engineering team.
You are a Junior Software Engineer on Project Forge, a SaaS product built by a distributed team. This module takes you from "I can save a file" to operating Git and GitHub the way a professional engineer does: branching, reviewed pull requests, protected branches, CI gates, incident response, history hygiene, and disciplined releases. Every lesson is framed as an engineering ticket you close, with a hands-on lab, an investigation, and an AI-verification exercise.
| Step | What it means |
|---|---|
| Pick up a ticket | Each lesson is a ticket (GIT-1048, SEC-5001, …) with acceptance criteria |
| Read before you change | Investigate history and context first |
| Work on a branch | main is always releasable; all work happens on branches |
| Open a PR | Code reaches main only through reviewed, CI-passing pull requests |
| Verify, don't trust | Use AI as a tool, but draft → verify → log everything |
| Document | Keep an engineering notebook as your professional record |
The golden rule, throughout: never run a Git command you can't explain — especially history-changing ones (reset, rebase, filter-repo, force-push).
By the end you will be able to:
- Use Git's core model fluently — staging, commits, branches, merges — and explain why, not just how.
- Collaborate on GitHub: remotes, synchronization, pull requests, code review, and issue-based planning.
- Govern a repository with branch protection, CODEOWNERS, and required CI checks.
- Diagnose and fix a failing CI pipeline by fixing the cause, not bypassing the check.
- Rewrite history safely, recover "lost" work, and respond to a security incident in the correct order.
- Choose and justify a branching/collaboration model, and ship disciplined, versioned releases.
| # | Lesson | Competency | Ticket |
|---|---|---|---|
| 0 | Welcome to the Engineering Organization | Environment & Git Fundamentals | GIT-1000 |
| 1 | Investigate an Existing Repository | Repository Investigation | GIT-1010 |
| 2 | Save Your First Feature | Committing & Staging | GIT-1021 |
| 3 | Develop Your First Feature | Branching | GIT-1035 |
| 4 | Merge the Team's Work | Merging & Conflict Resolution | GIT-1048 |
| 5 | Recover from a Bad Change | Undoing & Recovering | GIT-1060 |
| 6 | Connect to the Engineering Platform | Remotes & Platform Auth | COLLAB-2001 |
| 7 | Synchronize with the Engineering Team | Synchronization | COLLAB-2014 |
| 8 | Open Your First Pull Request | PRs & Code Review | COLLAB-2028 |
| 9 | Plan the Sprint | Planning & Issue Tracking | COLLAB-2040 |
| 10 | Protect the Production Branch | Repository Governance | GOV-3001 |
| 11 | Investigate a Failed CI Pipeline | CI/CD | CI-4001 |
| 12 | Rewrite History Professionally | History Rewriting | GIT-1099 |
| 13 | Recover the Lost Work | Data Recovery | GIT-1112 |
| 14 | Respond to a Repository Security Incident | Security Incident Response | SEC-5001 |
| 15 | Scale the Engineering Organization | Scaling & Collaboration Models | COLLAB-2099 |
| 16 | Release Day | Release Engineering | REL-6001 |
| 17 | Project Forge Sprint 1 Capstone | Integrated Delivery | FORGE-9000 |
The module flows through six phases: Foundations / Local Git (0–5) → Platform & Collaboration (6–9) → Governance & Automation (10–11) → Advanced Git (12–14) → Scale & Delivery (15–16) → Capstone (17).
.
├── README.md # this file
├── MODULE_SYLLABUS.md # pacing, structure, deliverables
├── LEARNER_GUIDE.md # how to operate as an engineer here
├── INSTRUCTOR_GUIDE.md # facilitation and assessment
├── COMPETENCY_MATRIX.md # lesson → competency → skills
├── ASSESSMENT_RUBRIC.md # grading weights and performance levels
├── Lesson_00.md … Lesson_17.md # the 18 lessons
├── labs/ # hands-on labs + reproducible generators
├── solutions/ # worked solutions / answer keys
├── resources/ # cheatsheet, guides, glossary, templates
├── assignments/ # submission templates + capstone brief
└── instructor-notes/ # per-lesson facilitation notes
- Read
resources/environment-setup.mdand get Git ≥ 2.30 working with your identity configured. - Start your engineering notebook from
resources/engineering-notebook-template.md. - Open
Lesson_00.mdand pick up your first ticket. - Keep
resources/git-command-cheatsheet.mdandresources/troubleshooting-playbook.mdopen as you work.
Labs are local-first: scenarios are built by copy-paste generators in throwaway directories, and platform features (PRs, branch protection, CI) include offline fallbacks so you're never blocked. The GitHub-based paths are the real thing layered on top.