Welcome to the GitHub Copilot Hackathon! This repository helps your team drive real work outcomes using GitHub Copilot. Choose from 22 worked-example challenges that demonstrate proven outcome patterns, or bring your own app and run a hackathon on your own codebase.
Choose one of the 22 challenge tracks below. Each challenge maps to a specific business outcome and provides starter code, a devcontainer, and a progression path through real work. Use these to learn outcome-driven AI-assisted development patterns you can apply to your own work.
Run this hackathon on your own app or repository. The Bring Your Own Challenge (BYOC) kit provides a canvas to define your target outcome, templates to author a custom challenge, and a facilitator runbook to guide your session. This turns the hackathon into a working session that delivers a measurable result for your team.
See byoc/README.md for the full kit.
The repository includes 22 challenge tracks organized by the outcomes they help you deliver:
Each challenge below drives one or more measurable business outcomes. The six outcome categories are: Modernize Legacy Systems, Ship Product Features Faster, Raise Quality and Confidence, Automate Delivery and Ops Toil, Stand Up Cloud Platform Foundations, and Build AI-Powered Capabilities. See OUTCOMES.md for detailed definitions and the full challenge mapping.
- 📋 Challenge 0: Product Planning Track - Product planning, backlog management, documentation (no code) | Outcome: Ship Product Features Faster
- 🔧 Challenge 1: Web API Track - REST APIs, authentication, testing | Outcomes: Ship Product Features Faster, Raise Quality and Confidence
- 📊 Challenge 2: ML & AI Track - Data analysis, ML models, feature engineering | Outcome: Build AI-Powered Capabilities
- ☁️ Challenge 3: DevOps Track - Infrastructure as Code, containers, CI/CD | Outcomes: Automate Delivery and Ops Toil, Stand Up Cloud Platform Foundations
- 🎨 Challenge 4: Frontend Track - React, TypeScript, modern UI | Outcomes: Ship Product Features Faster, Raise Quality and Confidence
- 🔍 Challenge 5: QA & Testing Track - AI-assisted testing, test planning, Copilot for QA workflows | Outcome: Raise Quality and Confidence
- 🤖 Challenge 6: Agentic Workflows Track - Build AI-powered repository automation with GitHub Agentic Workflows | Outcomes: Automate Delivery and Ops Toil, Build AI-Powered Capabilities
- 🧩 Challenge 7: Copilot SDK Track - Build a Copilot SDK application (advanced) | Outcome: Build AI-Powered Capabilities
✈️ Challenge 8: Flight Delay Predictor Track - Full-stack ML app (advanced) | Outcomes: Ship Product Features Faster, Build AI-Powered Capabilities- 🏢 Challenge 9: Cross-Functional Team Sprint - Full team agile sprint, ideation to deployment (4-6 people) | Outcome: Ship Product Features Faster
- 🥾 Challenge 10: Technical Team Sprint - Technical team sprint from spec to deployment (2-4 developers) | Outcome: Ship Product Features Faster
- 🏦 Challenge 11: Legacy MUMPS Modernization - Reverse-engineer and translate a MUMPS banking system (solo, advanced) | Outcome: Modernize Legacy Systems
- 🔄 Challenge 12: Legacy Code Modernization - Reverse-engineer and modernize an undocumented Java application | Outcome: Modernize Legacy Systems
- 📄 Challenge 13: Living Documentation - Automate javadoc, diagrams, changelogs, and PR doc reviews | Outcomes: Raise Quality and Confidence, Automate Delivery and Ops Toil
- 🔩 Challenge 14: Pipeline Factory - Build CI/CD pipelines, debug broken deployments, generate runbooks | Outcome: Automate Delivery and Ops Toil
- 📝 Challenge 15: Backlog Generator - Convert requirement specs into structured backlogs with MCP | Outcomes: Ship Product Features Faster, Automate Delivery and Ops Toil
- 🖥️ Challenge 16: Ops Assistant - Build AI-assisted log analysis, incident routing, and ops tooling | Outcome: Automate Delivery and Ops Toil
- 🚀 Challenge 17: Spec-to-Ship Accelerator - Full lifecycle from functional spec to deployed code | Outcomes: Ship Product Features Faster, Automate Delivery and Ops Toil
- 🏗️ Challenge 18: COBOL Banking Modernization - Reverse-engineer and modernize a COBOL banking system into a full-stack web app | Outcome: Modernize Legacy Systems
- 🔧 Challenge 19: WCF Banking Modernization - Understand a legacy WCF SOAP banking service and migrate it to a REST API | Outcome: Modernize Legacy Systems
- 💻 Challenge 20: PowerShell Automation - Fix, test, document, and package PowerShell scripts for real sysadmin work | Outcomes: Automate Delivery and Ops Toil, Modernize Legacy Systems
- ☁️ Challenge 21: Azure Terraform Track - Build an Azure Terraform foundation with modules, identity, policy checks, and CI guardrails | Outcome: Stand Up Cloud Platform Foundations
View All Tracks & Choose Yours
Coaches who need a focused workshop path can use the site's Challenge Set Builder and Learning Paths pages to select challenges and generate a single shareable student URL.
Each track provides a curated path through the challenges based on your role, with specific guidance, tips, and learning objectives.
6-8 hours per track.
The repository includes a bespoke static documentation site in the web/ directory. The site is dependency-free and built with vanilla HTML, CSS, and JavaScript.
To build the site data locally:
node web/build.jsThis reads challenges/*/meta.yml, learning-paths.json, and track markdown files, then writes JSON to web/assets/data/.
To preview locally:
cd web
python3 -m http.serverThen open http://localhost:8000/index.html in your browser.
The GitHub Pages deployment workflow automatically builds and deploys the site from .github/workflows/deploy-site.yml on every push to main.
- Choose a challenge that drives an outcome you want to produce. See tracks/README.md for the full catalog organized by outcome.
- Set up your environment using the prerequisites and devcontainer guidance in your chosen track file.
- Work through the stages in the track, delivering a demonstrable result at the end.
- Define your outcome using the Outcome Canvas.
- Author your challenge using the templates in byoc/templates/ (if you need a custom progression; otherwise skip this and work directly on your app).
- Run your session following the BYOC Facilitator Runbook.
- Measure success using the Outcome Scorecard.
See the BYOC Kit README for the end-to-end flow and a worked example.
Not sure which track? See the Track Selection Guide for help choosing.
Running a coached session? Use the site's Challenge Set Builder or Learning Paths pages to prepare a curated challenge set and share one student URL with participants.
- GitHub account with Copilot access
- GitHub Codespaces enabled (recommended) OR
- Local development environment with VS Code and GitHub Copilot extension
Option A: GitHub Codespaces (Recommended)
- Click the green "Code" button at the top of this repository.
- Select the "Codespaces" tab.
- Click "Create codespace on main".
- Wait for the environment to set up (2-3 minutes).
Option B: Local Development
-
Clone this repository:
git clone https://github.com/microsoft/frontier-ghcp-hackathon.git cd frontier-ghcp-hackathon -
Open the folder in VS Code.
-
When prompted, click "Reopen in Container" (requires Docker and Dev Containers extension).
The environment is pre-configured with:
- Node.js (LTS)
- Python 3.11
- Docker
- Terraform
- kubectl
- All necessary VS Code extensions
The .github/ directory contains instructions, agents, and skills used by the hackathon organizers. Run the cleanup script to reset it before you begin.
Linux / macOS / Codespaces:
./scripts/clean-start.shWindows (PowerShell):
.\scripts\clean-start.ps1This empties .github/copilot-instructions.md, removes existing agents and skills, and detaches the git remote so you don't accidentally push to the template repo. After running the script, add your own project-specific instructions (see your Track guide for examples).
Before starting, make sure Copilot is working:
Check Copilot Status:
- Look at the bottom-right of VS Code
- Copilot icon should be visible and say "Ready"
Test Inline Suggestions:
- Create a new file (e.g.,
test.js) - Type:
// function to add two numbers - You should see Copilot suggestions appear!
Test Chat:
- Press
Ctrl+Shift+I(Windows/Linux) orCmd+Shift+I(Mac) - Type: "Hello, are you working?"
- Copilot should respond!
Once your environment is ready:
- Open your chosen track guide (e.g.,
tracks/challenge-1-web-api-track.md) - Follow the recommended challenge sequence
- Use the track-specific tips and guidance
As you work through these challenges, you'll build proficiency with GitHub Copilot's capabilities as a by-product of delivering real work:
/explain,/fix,/testscommands- Agentic Mode - Autonomous multi-step task execution
- Planning Mode - High-level architectural reasoning
- Workspace context chat
- Effective prompt patterns
- Context-aware requests
- Iterative refinement
- Collections and reusable prompts
- MCP Servers - Connect external tools and data
- Custom Agents - Build and use specialized assistants
- Enhanced context for Copilot
- Code completion
- Multi-line suggestions
- Ghost text navigation
Tip: Instead of choosing challenges individually, we recommend following a role-based track for a structured learning experience!
All 22 challenges are available, and each track has a dedicated challenge:
Team: Product Owners, Business Analysts, Project Managers Skills: Markdown, GitHub Issues, GitHub Projects, Pull Requests Copilot Focus: Long-form writing, brainstorming, GitHub MCP server for issue/PR management
Plan the next major release of a task management platform across 5 progressive stages. Start with competitive analysis and quantified personas, then write and critique user stories, build feature specs aligned to real API endpoints, resolve conflicting stakeholder requests under a fixed budget, and produce a production-grade release plan with risk matrices, rollback strategies, and monitoring specs. No application code required.
Team: Backend/Web Developers
Skills: Express.js/FastAPI, API design, error handling, testing
Copilot Focus: Inline completion, /tests command, workspace chat
Build a task management REST API across 5 progressive stages: basic CRUD, JWT authentication with role-based access, SQLite persistence with data relationships, debugging a broken v2 API module (3 intentional bugs), and production readiness with load testing, caching, and structured logging.
Team: Data Scientists, ML Engineers
Skills: Python, pandas, scikit-learn, data visualization
Copilot Focus: Jupyter notebooks integration, /explain for algorithms, code generation
Predict customer churn across 5 stages: discover 7+ hidden data quality issues, create visualizations with statistical hypothesis testing, train models with cost-sensitive evaluation using sklearn Pipelines, compare imbalance techniques with SHAP interpretability, and deploy a prediction API with drift detection and a model card.
Team: DevOps, Platform Engineers Skills: Terraform, Docker, Kubernetes, CI/CD Copilot Focus: Infrastructure patterns, documentation generation, best practices
Build infrastructure for a Node.js app across 5 stages: multi-stage Dockerfile with Docker Compose, Kubernetes with HPA and NetworkPolicy, Terraform for Azure (ACR, AKS) with variables and remote state, debug a broken Key Vault module and add observability, then create a CI/CD pipeline with blue/green deployment and a DR runbook.
Team: Frontend Developers Skills: React, TypeScript, Component design, State management Copilot Focus: Component scaffolding, TypeScript types, CSS styling
Build a task dashboard across 5 stages: responsive layout with React Router, state management with Context/useReducer and undo support, drag-and-drop Kanban with keyboard shortcuts and themes, find and fix 5 accessibility violations in a pre-built component, then integrate with a REST API and achieve >80% test coverage.
Team: QA Engineers, Quality Assurance Specialists, Manual Testers Skills: Test planning, test case design, bug reporting (no coding experience required) Copilot Focus: AI-assisted test generation, Playwright MCP exploration, Copilot-driven debugging
Test the eShop application across 5 stages: explore the app with Copilot and Playwright MCP to build a test plan, use Copilot to debug and generate your first automated tests, expand coverage across browsers with Copilot-generated page objects, compare AI-driven vs human-guided testing approaches, then build reporting and a test strategy document.
Team: Experienced developers (any role) who finished a standard track Duration: 8-12 hours (Advanced) Skills: Node.js, TypeScript, Copilot SDK, GitHub API, custom tool definitions Copilot Focus: Building with the Copilot agent runtime -- sessions, streaming, custom tools, MCP integration
Build a Release Notes Agent powered by the GitHub Copilot SDK. The agent fetches merged PRs, categorizes changes, generates a structured changelog through iterative conversation, and publishes a draft GitHub Release -- all using custom tools, streaming responses, and multi-turn sessions.
⚠️ Challenge 7 is significantly harder and longer than the standard challenges.
Team: Full-Stack Developers, Advanced Participants Duration: 8-12 hours (extended challenge) Skills: Python, pandas, scikit-learn, Flask/FastAPI, TypeScript, frontend frameworks Copilot Focus: End-to-end development -- data science in notebooks, API scaffolding, frontend generation, cross-domain debugging
Build a complete application that predicts flight delay probability. Explore a real FAA dataset, train an ML model, serve it through a REST API, and create a frontend where users select a day and airport to see their delay risk.
Team: Cross-functional team of 4-6 (Product Owner, Backend Dev, Frontend Dev, QA, DevOps, optional BA) Duration: 8 hours (team challenge) Skills: GitHub Spark, GitHub Issues/Projects, Express.js/FastAPI, React/Vue, Playwright, Docker, Azure, Terraform Copilot Focus: Every role uses Copilot -- PO for user stories and planning, developers for code generation, QA for test automation, DevOps for infrastructure
Build CityPulse, a civic engagement platform, from scratch as a cross-functional team running a simulated agile sprint. The PO ideates with GitHub Spark and manages the backlog via GitHub Issues while developers, QA, and DevOps work in parallel across two sprints -- building a REST API, a frontend UI, automated tests, CI/CD pipelines, and deploying to Azure. Ends with a team demo and retrospective.
This challenge requires a team. It is not designed for solo participants.
Team: Technical team of 2-4 (Backend Dev, Frontend Dev, DevOps required; QA optional -- no PO or BA) Duration: 8 hours (team challenge) Skills: Express.js/FastAPI, React/Vue, Playwright, Docker, Azure, Terraform, GitHub Issues/Projects Copilot Focus: Every technical role uses Copilot -- developers for code generation, QA for test automation, DevOps for infrastructure
Build TrailMate, a trail management platform for a regional parks authority, from a provided functional specification. Unlike the Cross-Functional Team Sprint, there is no product discovery phase and no business stakeholders. The team reads the spec, writes a technical specification, breaks work into GitHub Issues, and self-organizes across two sprints -- building a REST API, a frontend UI, automated tests, CI/CD pipelines, and deploying to Azure. Ends with a team demo and retrospective.
This challenge requires a team. It is not designed for solo participants.
Team: Solo or pair (any developer role)
Duration: 8-12 hours (Advanced)
Skills: Any modern language (PSL, Java, Python, C#, TypeScript), reverse engineering, testing, financial domain knowledge
Copilot Focus: Legacy code comprehension with /explain, cross-language translation, characterization test generation, architecture documentation
Reverse-engineer and translate a core banking system written in MUMPS -- a language most developers have never seen. The system handles customer management, deposit accounts, teller transactions, consumer loans, interest calculation, and end-of-day batch processing across 12 routines and ~2,500 lines of code. Understand it, test it, extend it, and translate it to a modern language while preserving every business rule.
Team: Solo or pair (Java developers)
Duration: 6-8 hours
Skills: Java 8/17, Spring Boot, Maven, REST APIs, SQL
Copilot Focus: Legacy code comprehension with /explain, security auditing, characterization testing, framework migration
Reverse-engineer and modernize the Acme Bank Account Manager -- an undocumented Java 8 / Spring Boot 1.5 banking application built by a contractor who left in 2018. The code has SQL injection vulnerabilities, deprecated libraries (Log4j 1.x, Apache HttpClient 4.x), no service layer, no tests, and business logic buried in controllers. Recover the business rules, audit for security issues, write characterization tests, and migrate to Spring Boot 3.x / Java 17+.
Team: Solo or pair (Java developers, tech leads) Duration: 6-8 hours Skills: Java, Javadoc, Mermaid diagrams, Markdown Copilot Focus: Bulk javadoc generation, architecture diagram creation, custom prompts for changelogs, custom agents for PR documentation review
Automate the documentation of the Widget Corp Inventory Manager -- a Java application with stale javadoc, a changelog that stopped being updated two versions ago, and zero architecture diagrams. Generate accurate javadoc, create Mermaid diagrams for architecture and data model, build a changelog prompt that works from code diffs, and create an agent that reviews PRs for documentation completeness.
Team: Solo or pair (DevOps, platform engineers, developers)
Duration: 6-8 hours
Skills: GitHub Actions, Node.js, Shell scripting, CI/CD concepts
Copilot Focus: Workflow generation, /fix for debugging broken deployments, reusable workflow design, incident runbook prompts
Build CI/CD pipelines for TaskBoard, a kanban app that currently deploys via a shell script with commented-out scp commands. Create GitHub Actions workflows, debug 5 deliberate bugs in a broken staging deployment, build reusable workflow templates, and generate deployment gates with rollback mechanisms and incident runbooks.
Team: Solo or pair (product owners, tech leads, scrum masters) Duration: 6-8 hours (no code required) Skills: Agile concepts (Epics, Stories, Acceptance Criteria), Jira/Confluence (optional) Copilot Focus: Custom prompts for spec-to-backlog conversion, custom agents for refinement, Atlassian Rovo MCP server for Jira/Confluence integration
Convert three use case specifications of increasing complexity (Password Reset, Notification Preferences, Inventory Reorder) into structured backlogs. Build a reusable prompt that produces Epics, Stories, Tasks, and Test Cases following INVEST criteria. Create a refinement agent that reviews generated backlogs for gaps. Optionally push items directly to Jira using the Atlassian MCP server.
Team: Solo or pair (support engineers, SREs, ops teams) Duration: 6-8 hours Skills: Log analysis concepts, incident management, basic Node.js (optional) Copilot Focus: Custom agents for log analysis, custom prompts for incident routing and runbook generation, error-to-plain-language translation
Build AI-assisted operations tooling for the Order Gateway -- a critical e-commerce service. Analyze two days of production logs containing payment timeouts, database deadlocks, connection pool exhaustion, and OutOfMemoryErrors. Create a log analysis agent that explains errors in plain language for non-technical support staff, build an incident routing prompt that maps errors to responsible teams, and generate troubleshooting runbooks from historical incident data.
Team: Solo or pair (tech leads, senior developers) Duration: 6-8 hours Skills: Full SDLC concepts, Node.js, GitHub Actions Copilot Focus: End-to-end prompt chain -- spec to backlog to technical analysis to code to tests to CI pipeline, custom agents for test specification
Compress the full development lifecycle for a billing module on an existing multi-tenant SaaS platform. Start with a functional requirements document and an existing tenant management API. Build prompts that convert the spec into work items, generate a technical analysis against the existing codebase, implement the billing module from generated stories, create test specifications with a custom agent, and wire up a CI pipeline -- all producing reusable Copilot artifacts.
Team: Solo or pair (any developer role)
Duration: 8-12 hours (Advanced)
Skills: COBOL (no prior experience needed), Node.js/TypeScript or Java, React, reverse engineering, testing
Copilot Focus: Legacy code comprehension with /explain, cross-language translation, characterization test generation, full-stack modernization
Reverse-engineer and modernize a core banking system written in COBOL -- the language that still runs the majority of the world's banking transactions. The system handles customer management, deposit accounts, teller transactions, consumer loans, interest calculation, and end-of-day batch processing. Understand the code, build characterization tests, extend it with new features, and translate it into a modern React + Node.js/Java web application while preserving every business rule.
Team: Solo or pair (.NET developer) Duration: 6-10 hours (Intermediate to Advanced) Skills: C#, WCF/SOAP concepts, ASP.NET Core Web API, REST design, xUnit Copilot Focus: SOAP service contract comprehension, fault contract analysis, REST migration, characterization testing
Reverse-engineer a legacy WCF banking service (Meridian Savings Bank) built circa 2010-2012, now running on CoreWCF and .NET 8. Understand the service contracts, data contracts, and fault conditions, then port the business logic to a REST API using ASP.NET Core Web API. The service has real bugs to find and real decisions to make about whether to preserve or fix them during migration.
Team: Solo (sysadmin or IT Pro) Duration: 4-6 hours (Intermediate) Skills: PowerShell 7+, Pester 5, PSScriptAnalyzer, Az module, GitHub Actions Copilot Focus: Script comprehension, bug detection, error handling, test generation, module packaging, CI pipeline creation
Take three inherited PowerShell scripts from the fictional Contoso IT team -- a stale account finder, a disk cleanup tool, and an Azure resource tagger -- and bring them up to production standard. Use Copilot to understand the code, fix bugs, add error handling and logging, write Pester tests, run static analysis, and wire everything into a GitHub Actions CI pipeline.
Challenge 21: Azure Terraform Foundation (Track)
Team: Platform Engineers, DevOps Engineers, Cloud Engineers Skills: Terraform, Azure networking, managed identity, Key Vault, GitHub Actions Copilot Focus: Infrastructure review, plan explanation, module extraction, CI workflow generation
Build an Azure Terraform foundation across 5 phases: bootstrap remote state and naming rules, provision a small Azure platform around Container Apps, wire managed identity and Key Vault, refactor the configuration into reusable modules for multiple environments, then add CI guardrails and a drift response runbook.
github/awesome-copilot - A curated collection of real-world examples including:
- Custom instruction files (
.github/copilot-instructions.md)- Custom agent templates (
.github/agents/)- Reusable prompt files (
.github/prompts/)- Best practices and patterns
Getting the Most from Copilot:
- Be Specific: Detailed prompts yield better results
- Provide Context: Reference existing code and patterns
- Iterate: Refine suggestions through conversation
- Use Chat Commands: Use
/explain,/fix,/tests, and natural language for documentation - Review Suggestions: Always understand generated code
- Keyboard Shortcuts:
Tab- Accept suggestionEsc- Dismiss suggestionAlt+]- Next suggestionAlt+[- Previous suggestionCtrl+Shift+I- Open Copilot Chat
-
Write Clear Comments
// ❌ Bad: "do stuff" // ✅ Good: "Validate email format and return true if valid, false otherwise"
-
Use Chat Freely - Ask Copilot: "What does this code do?", "How can I improve this?"
-
Review Everything - Understand all generated code, test thoroughly
-
Iterate - First suggestion not perfect? Refine your prompt or try different approaches
| Problem | Solution |
|---|---|
| Copilot not suggesting | Check status icon, ensure signed in, restart VS Code |
| Wrong suggestions | Be more specific, provide more context, try chat instead |
| Environment issues | Codespaces: rebuild container; Local: check tool versions |
Choose a track based on your role and follow the curated path:
- Each track provides a recommended sequence of challenges
- Track-specific tips and guidance
- Clear learning objectives
- Estimated time for completion
See Tracks Overview to choose your path.
Prefer to explore on your own?
- Choose 2-3 challenges based on your interests
- Each challenge includes starter code and objectives
- Progressive difficulty with bonus tasks
- Present your solutions
- Share interesting Copilot interactions
- Discuss productivity gains and learnings
- Compare experiences across different tracks
- Review common patterns
- Share tips and tricks discovered
- Q&A with Copilot experts
A successful hackathon produces:
- A demonstrable outcome for each team -- working code, a shipped feature, modernized infrastructure, or documented automation.
- Articulated business impact -- participants can state the outcome they drove and why it matters (faster delivery, reduced risk, lower toil).
- Proficiency with Copilot as a by-product -- the team can explain how they used Copilot to drive the outcome and plan to apply the patterns to their daily work.
Track activity metrics (Copilot usage, chat interactions) as supporting evidence, but judge success by the work result.
- Use GitHub Issues to ask questions
- Share discoveries in Discussions
- Help teammates learn new Copilot features
- Document your journey in your challenge folders
After completing the hackathon, please share:
- What worked well
- What could be improved
- Productivity improvements you experienced
- Features you found most valuable
After the hackathon:
- Apply Copilot to your daily work
- Explore advanced features and settings
- Create team-specific prompt collections
- Share knowledge with your organization
- Measure and track productivity improvements
- Choose Your Track - Outcome-driven learning paths organized by role and outcome
- Bring Your Own Challenge Kit - Run this hackathon on your own codebase
- Challenge Set Builder - Available on the published site; coaches can curate challenge sets and generate student URLs
- Troubleshooting Guide - Common issues and solutions
- Facilitator Guide - For hackathon organizers
- Contributing Guide - Help improve this content
- Which track? See Track Selection Guide
- Technical Issues: Check Troubleshooting Guide
- Copilot Questions: Use Copilot Chat in VS Code
- General Help: Review the
/docsfolder - Found a Bug: Create an issue in this repository
Getting started:
- Choose Your Track
- Follow the Setup Instructions above
- Verify Your Setup
- Start your first challenge!
