A blog by Christopher Harrison (geektrainer) about technology, running, sobriety, ADHD and whatever else comes to mind. New tools won't change old culture Streamlining pull request reviews with suggestions Starting a project for Azure Static Web Apps The importance of link text Bullet Journaling - my system Python Type Hints
Christopher Harrison is a Senior Developer Advocate at GitHub and technical educator who helps software teams integrate GitHub Copilot into established development workflows. His approach emphasizes useful project context, carefully constrained coding agents, and accountability for AI-generated code.
From programming instruction to AI-assisted development
Harrison began experimenting with computers after his father brought home a Commodore VIC-20 when he was seven. He subsequently built a career as a technical trainer, presenter, and educational content creator before serving as a senior cloud advocate at Microsoft.
With Susan Ibach, Harrison taught Microsoft’s Python for Beginners series. His introductory Python programming repository collects course slides, examples, and solutions, while his GeekTrainer writing examines Python, accessible web development, pull-request reviews, Azure Static Web Apps, and engineering culture. He argues that purchasing better tools cannot compensate for weak communication or dysfunctional development practices.
At GitHub, Harrison’s developer education has expanded from AI pair programming and Copilot customization to coding agents, command-line workflows, browser-assisted debugging, and managing multiple concurrent agent sessions.
How Harrison thinks about coding agents
Context extends beyond the prompt. Readable code, clear function names, repository structure, representative examples, and precisely written issues all influence an agent’s output. Harrison’s guidance on AI pair programming treats missing project context as a practical engineering problem, not something clever wording alone can repair.
Repository instructions preserve institutional knowledge. Harrison recommends maintaining repository-level custom instructions that explain project architecture, coding standards, testing requirements, and available scripts. Path-specific instructions can also encode patterns for Flask endpoints, automated tests, or React and Svelte components, making organizational expectations reusable across agent interactions.
Coding agents require explicit operational boundaries. An agent assigned a GitHub issue needs a prepared execution environment, appropriate dependencies, restricted network access, and limited repository permissions. Harrison’s coding-agent onboarding framework emphasizes deliberate configuration before autonomous work begins.
External access increases responsibility.Model Context Protocol integration can connect assistants to internal libraries, organizational knowledge, browser-testing tools, and external services, but remote agents may require explicit firewall configuration. Harrison stresses evaluating third-party tools carefully because they can access sensitive information or act on a developer’s behalf.
Human-reviewed AI-generated code remains essential. His hands-on Copilot workshop preserves established safeguards: pull-request review, automated tests, linters, security scanning, and human approval. Agents can perform implementation and run checks, but responsibility for what enters production remains with the engineering team.