Harald Kirschner is a principal product manager at Microsoft working on Visual Studio Code and GitHub Copilot. He develops the infrastructure that helps coding agents understand real projects, use external tools, coordinate complex work, and remain under developers’ control.
From Firefox to agentic development
Kirschner began building developer tools well before generative AI: his FancyUpload plugin combined MooTools, Ajax, and Flash to improve browser-based uploads. During nine years at Mozilla, he rose to lead Firefox Developer Tools, working across debugging, browser performance, web compatibility, accessibility, and developer experience. His Mozilla writing covered faster JavaScript debugging and integrating Webhint into Firefox DevTools.
He subsequently joined Microsoft as a senior product manager for VS Code and later became a principal product manager working on VS Code and GitHub Copilot. By 2024, he was helping Copilot reason about entire repositories through local keyword indexing, semantic retrieval, reranking, and language-aware code segmentation. His approach emphasizes executable code tests, repository-based evaluations, lightweight checks on pull requests, and larger recurring test suites.
In 2025, Kirschner authored VS Code’s introduction to agent mode and the Model Context Protocol, then coauthored its announcement of full MCP specification support. His work has since expanded into multi-agent orchestration, planning interfaces, and interactive applications embedded in agent conversations.
- Structured vibe coding: Kirschner distinguishes rapid experimentation from production-ready development. Enterprise workflows need project-specific instructions, established design systems, scoped approvals, reusable prompts, tests, linters, frequent commits, and checkpoints. For larger projects, he advocates spec-driven development: establish the specification, create an implementation plan, then delegate execution. His enterprise coding-agent demonstration shows how those constraints preserve maintainability without sacrificing rapid prototyping.
- Context-aware coding agents: Effective assistants must understand a repository’s actual languages, dependencies, conventions, and structure. Kirschner combines sparse keyword retrieval, semantic indexing, reranking, and code-aware chunking; he judges results against real repositories and executable tests, not convincing-looking model responses.
- Full-spectrum MCP integration: Kirschner treats MCP as infrastructure for stateful, context-sensitive collaboration, not merely a catalog of tools. Workspace roots help servers recognize a project; dynamic discovery exposes capabilities only when relevant; authorization and sampling provide controlled access to services and client-side models. His explanation of the complete MCP architecture emphasizes that excessive, unrelated tools can degrade model performance.