← All work

Matrix42 · Nov 2025 – Nov 2026

One year of AI-first delivery, measured

What AI-native companies describe, done inside a 20-year-old enterprise platform by one product engineer with coding agents: 150+ pull requests merged in three months across ten repositories and five teams, zero incidents, and designers who now ship production code the same way.

Role
Principal Product Engineer → Distinguished Software Engineer, Innovation Studio
Period
Nov 2025 – Nov 2026
Stack
Claude CodeCodexMCPTypeScriptLitReactPython.NET configAzure DevOps
pull requests merged in 2026
160
pull requests merged in 2026
median time from PR to merge
17 h
median time from PR to merge
commits, Aug–Nov
4,169
commits, Aug–Nov
colleague PRs reviewed
200
colleague PRs reviewed

The way AI-native companies ship comes down to six decisions: let agents build, automate what can be automated, make the codebase easier to contribute to, let designers and product people ship, run review and security as automation, and work at the level of projects rather than tickets. I spent 2026 making those decisions where they are hardest: an established ITSM vendor whose platform is an AngularJS 1.8 shell over a .NET backend, 2,751 screen descriptors stored in a database, ten repositories, two build channels and a release train.

What changed, month by month

The chart below is my own output from git and Azure DevOps, month by month. The steps are about scope rather than tooling: in September I stopped treating the agent as a pair and started running a system. Hover or use the arrow keys.

Square-root scale, so January and October fit on one chart. Commits from git across twenty repositories; pull requests and merges from Azure DevOps; recounted weekly.

November 2026

16 of 16
Commits
752
Lines added
125k
PRs merged
7
PRs opened
16
Test lines
26k

What I shipped

  • AI Studio console port in waves with visual QA; first design partner onboarding.
  • ISM Microsoft connect shipped across three repos in two days.
  • AI Coding Agents Message Board proposed to the CTO: agents propose, humans decide.

The method

  • Plan with the agent, approve the plan. Nothing starts from a vague prompt.
  • Build in a git worktree, tests first, one purpose per PR (reviewers asked for atomic PRs; stacks are re-cut rather than force-pushed).
  • Prove it on a real test tenant before the PR: the agent drives the browser, installs the package, runs the flow, records the evidence.
  • Local review before every PR, Sonar on push, 1,160 automated security-review runs across the year.
  • Humans review, vote, merge and deploy. Agents never do. Median time from PR to merge: 17 hours; back-ports under an hour.
repositories / teams
10 / 5
repositories / teams
lines merged to trunk, 116 squash merges
86k
lines merged to trunk, 116 squash merges
lines of tests
373k
lines of tests
automated security-review runs
1,160
automated security-review runs
MCP tool calls, 231 live changes
7,355
MCP tool calls, 231 live changes
production incidents
0
production incidents
Built this way: Device Insights, where Neo proposes one fix and waits for approval.
Built this way: the AI Studio console, every page.

Make it easier to contribute

The platform had no usable API spec and three silent write layers. I wrote esm-devkit, an MCP server with 56 tools and a 359-entry knowledge base of the platform's traps, with exactly one write path: preview, apply, read back, roll back. It let my agents change a live tenant 231 times without an incident, and it is how the Insights app, the self-service cards and the keynote demos were built.

esm-devkit MCP tools (a selection of the 56)

  • esm_whoami
  • esm_apps
  • esm_nav
  • esm_read
  • esm_schema
  • esm_query_data
  • esm_data_sources
  • esm_dataquery_columns
  • esm_workflows
  • esm_workflow_show
  • esm_workflow_catalog
  • esm_workflow_compile
  • esm_workflow_runs
  • esm_adaptive_cards
  • esm_knowledge
  • esm_api_search
  • esm_api_show
  • esm_render_check
  • esm_plan_screen
  • esm_plan_widget
  • esm_plan_nav
  • esm_plan_dashboard
  • esm_plan_landing_page
  • esm_plan_wizard
  • esm_plan_action
  • esm_plan_ai_function
  • esm_plan_prompt_template
  • esm_plan_workflow
  • esm_plan_workflow_release
  • esm_plan_localize
  • esm_plan_audience
  • esm_plan_record_update
  • esm_plan_preview
  • esm_apply_plan
  • esm_undo
  • esm_export_fragments
  • esm_export_workflow

Only esm_apply_plan writes. Everything else reads, plans or previews.

Designers ship

I restarted the abandoned Nova design system as the shared repository where designers prototype in code and engineers pull the same components into production, and ran the upskilling sessions: Git, Claude Code, prototypes that become pull requests. The first designer-turned-FDE now ships full-stack changes through the same spec-driven process.

What I shipped this way

  • Device Insights: the device-problems app, root-cause analysis and human-approved remediation (47 PRs to the release branch).
  • Neo adoption: activation and consent flows, guided tour, prompt gallery, campaigns, answer feedback.
  • Self-service portal adaptive cards; ISM Microsoft connect across three repositories in two days.
  • Nova parity: 126 components with 120 parity specs in Lit and React.
  • AI Studio console foundation: the spike across every page, the blueprint, and visual QA of the port.
  • Keynote and demo videos for the customer conference, built from the real product.

The gap, and the proposal

Measured honestly, the bottleneck was me as a relay: 129 prompts carried colleagues' words to my agent and 253 drafts went back out, about one in eight prompts. So I proposed an AI Coding Agents Message Board to the CTO: a typed, referenced, audited place where every colleague's agent posts questions, review requests and hand-offs, with humans as visible principals and the only ones who decide. Agents propose; people decide, merge and deploy.

“The tooling was the easy half. The hard half was changing what one person is expected to carry, and what the agents are never allowed to decide.”

What I would tell the next team