← All speakers

Bio, Work & Ideas

Matt Pocock

Conference affiliation: Director · AI Hero · 2026

On this page

Matt Pocock is a developer educator and the creator of Total TypeScript and AI Hero. His work makes difficult engineering practices accessible through exercises, explanations, and open-source tools—first for TypeScript developers, and increasingly for engineers directing AI coding agents.

His central argument is that faster implementation increases the value of good software design. An agent working in a confusing codebase inherits that confusion; generating more code can make the next change harder. Pocock’s approach combines requirements questioning, small working increments, testable architecture, and human responsibility for the system being built.

From voice coaching to TypeScript education

Pocock’s teaching career began with voice and singing coaching. He subsequently worked as a full-stack developer and library maintainer, becoming a member of the XState core team at Stately. His XState Codegen inspected state-machine definitions to generate types for transitions, actions, guards, and other configuration. The exploratory project was eventually superseded by type generation integrated into XState itself.

Working on XState’s types brought him into contact with TypeScript library authors and exposed the gap between everyday familiarity with the language and understanding its more powerful mechanisms. In early 2022, he began publishing short TypeScript tips. He announced plans for an advanced course while still at Stately, then took a part-time developer-advocacy role at Vercel that gave him room to develop it. His course-building partnership began with live workshops before expanding into self-paced instruction.

Total TypeScript turned that experience into an exercise-driven curriculum covering inference, generics, type transformations, and advanced library patterns. Pocock asks learners to wrestle with a concrete problem before seeing the solution, giving an abstract language feature a reason to matter. The course makes techniques used by experienced maintainers available to application developers.

His open-source ts-reset addresses smaller but recurring obstacles in the same territory. It changes the types of familiar JavaScript APIs: parsed JSON becomes unknown rather than any, requiring developers to establish what the data contains, while other adjustments make array operations more practical. The project pairs safer defaults with attention to the friction developers actually encounter.

Engineering practices for coding agents

AI Hero extends Pocock’s educational work into AI applications and agent-assisted development. Its materials range from language-model fundamentals and TypeScript AI tooling to planning, implementing, and reviewing changes. His AI Coding for Real Engineers course concentrates on bringing those practices into working engineers’ workflows.

Several ideas define his approach:

  • Shared understanding before implementation. His Grill Me skill turns a loose idea into a questioning session that exposes assumptions and dependent decisions. The human must steer, disagree, and acknowledge uncertainty. Questions about how an interface feels may require a disposable prototype; prolonging the conversation cannot supply the experience of using it.
  • Vertical slices and early feedback. Pocock adapts the established tracer-bullet technique to agents: build one small path through the system, test it, and expand. For a feature that reveals a video in the file system, he connected the backend operation to one interface location before adding the remaining entry points. This finds integration problems while the implementation is still small enough to understand. Test-driven development, static checks, independent reviews, and manual quality assurance give engineers feedback on what agents produce.
  • Deep modules with simple interfaces. His architecture work favors substantial behavior behind a compact interface. Fragmenting a concept across many small modules can make it difficult for either an engineer or an agent to follow. Concentrating related behavior creates a clearer place to test it and lets humans retain control of design while delegating implementation.
  • Small, adaptable agent skills. Pocock publishes Skills for Real Engineers as procedures developers can inspect and modify. He favors explicit control over invocation, while recognizing that this shifts responsibility onto the operator. His skill-design framework separates procedures from supporting references and loads conditional material only when needed, reducing the instructions an agent must carry through every task.

In Fixing the PR Bottleneck, Pocock applies these ideas to the gap between generating a change and making it worth reviewing. Agents make opening pull requests easier, but the surrounding engineering work still determines their quality. He calls for agent experience to receive the same rigor as developer experience: the codebase is the environment an agent works in, so improving that environment matters alongside improving the speed of code generation.

Tools for evaluation and execution

Pocock’s Evalite brings evaluation of AI applications into TypeScript. Built on Vitest, it provides a local interface for inspecting outputs, traces, and logs, with score thresholds that can fail a continuous-integration build. It makes model behavior something developers can investigate repeatedly within familiar tooling.

His Sandcastle tackles the execution side: orchestrating coding agents in isolated environments, managing branch strategies, and merging their commits. It supports parallel work and review pipelines through a TypeScript API. Evalite supplies feedback on AI application behavior; Sandcastle organizes agents’ implementation work. Both give concrete form to the engineering practices he teaches.

Talks by Matt Pocock

4 talks

Key ideas

Scroll to read ↓

Matt Pocock explains how to turn an ambiguous product idea into well-scoped, parallelizable coding work while keeping humans responsible for architectural direction, product judgment, and quality.

Key ideas

Scroll to read ↓

Matt Pocock argues that AI-assisted development depends on shared design concepts, precise domain language, fast feedback loops, testable architecture, and sustained human ownership of system design.

  • Fast code generation does not eliminate the cost of complexity: repeatedly changing software without preserving its overall design can make the codebase harder for both humans and AI to modify. 1:27 ↗ 2:31 ↗ 3:35 ↗
  • Develop a shared design concept through sustained questioning before turning the discussion into a requirements document, implementation plan, or agent-ready issues. 4:41 ↗ 5:44 ↗ 6:49 ↗
  • Use a documented ubiquitous language so the developer, AI system, and codebase refer to domain concepts consistently throughout planning and implementation. 7:55 ↗ 8:57 ↗
  • Combine static types, browser access where appropriate, automated tests, and TDD so the model receives feedback in small increments instead of validating a large implementation only afterward. 10:04 ↗ 11:08 ↗
  • Prefer deep modules with simple, testable interfaces; delegate implementation selectively while maintaining closer oversight of critical functionality. 12:09 ↗ 13:05 ↗ 14:14 ↗ 15:17 ↗
  • Preserve human strategic ownership by explicitly tracking modules, interfaces, and architectural changes as part of everyday planning and system design. 16:27 ↗ 17:35 ↗

Key ideas

Scroll to read ↓

Matt Pocock explains how to evaluate and improve agent skills through four design concerns: invocation, internal structure, behavioral steering, and disciplined pruning.

  • Evaluate skills through four explicit dimensions: trigger, structure, steering, and pruning. 1:50 ↗ 2:35 ↗ 19:03 ↗
  • Choose invocation deliberately: model-invoked skills increase context load and selection uncertainty, while user-invoked skills increase the operator’s cognitive load. 4:23 ↗ 5:17 ↗ 6:16 ↗
  • Organize skills into steps and reference, and place branch-specific templates behind context pointers instead of loading them on every invocation. 7:22 ↗ 8:24 ↗ 9:28 ↗ 10:30 ↗
  • Use consistent leading words, such as vertical slice, to express the intended working style compactly and inspect reasoning traces for evidence that the agent adopted it. 12:23 ↗ 13:15 ↗ 14:15 ↗
  • When an agent rushes an important intermediate phase, consider separating that phase into its own skill so later objectives do not prematurely redirect its attention. 15:12 ↗ 16:18 ↗
  • Keep skills small by removing duplicated material, accumulated sediment, stale references, and no-ops that deletion tests suggest do not change behavior. 16:18 ↗ 17:07 ↗ 18:05 ↗ 19:03 ↗

Key ideas

Scroll to read ↓

Matt Pocock explains how stronger checks, a separate reviewer agent and risk-aware PR descriptions can reduce human review work—and how retrospectives can improve the system that produces the next change.

  • Passing checks only helps when they exercise meaningful behavior. Assertions about constants, source ordering or oversimplified mocks can leave the real requirement untested.
    4:53 ↗
  • Deep modules provide a small interface for testing substantial behavior, reducing dependence on internal structure when tests stay at that interface.
    8:22 ↗
  • A separate review context can apply repository-specific coding standards after implementation. Clear findings should become fixes; unresolved questions can remain comments.
    12:21 ↗
  • Allocate human attention using reversibility and blast radius. Reverting code cannot undo every external consequence.
    17:14 ↗
  • Use retrospectives to turn recurring review findings into better checks, standards, navigation guidance and tool use for future runs.
    20:14 ↗

References