Inside Uber's software factory: how a decade of developer infrastructure became an AI agent platform
Key points
Key takeaways from the The Pragmatic Engineer podcast with Uber Distinguished Engineer Uday Kiran Medisetty, who leads much of Uber's agentic AI work (October 2026):
A decade of platform bets. Medisetty joined Uber in May 2015 as roughly its 600th engineer, when the company ran on just two services — a Node.js dispatch service and a Python API served over a four-second polling protocol. Years of platform investment — Go and Java standardisation in 2018–19, per-language monorepos, cloud DevPods from 2017, plus the M3DB metrics engine, Michelangelo ML platform, Cadence workflow engine and Morpheus experimentation tooling — took Uber from two services to thousands and, after consolidation, to today's ~4,500–5,000 well-sized services across 12 global tech sites.
Model-agnostic foundations. Since late 2023, Uber's Model Gateway (built on Michelangelo) has exposed one OpenAI- and Anthropic-compatible API across every model vendor, open-weight or closed. Every model request in the company flows through it, making per-user spend tiers, audit logging, session traces and the AI Guard safety middleware — fine-tuned content and compliance models running on each request and response — uniformly enforceable.
One gateway for all tools. An MCP Gateway, started in April 2025, auto-generates MCP servers from Uber's service registry (Thrift and protobuf IDLs), rewrites API descriptions to cut model context (some tools weighed 3,000–4,000 tokens), proxies vendor tools such as Google Workspace and Slack, and now projects every MCP endpoint as a CLI — delivered by the same team that built the Edge gateway.
Skills and context at company scale. Uber runs a company-wide skill marketplace — around 30,000 skill executions per day — portable across harnesses via the AIX wrapper, and a Context Graph of 100+ node types and 130+ edge types linking employees, PRs, design docs, incidents and Jira events that grounds the Cortana assistant and shrinks agent traces and costs.
Background agents ship real code. Minion, Uber's background coding agent, now produces roughly 15% of production pull requests. Engineers steer it from the web or Slack, it works across the whole codebase from a mega dev pod, and it self-validates using Slate environments, an agent browser and staging deploys before a human reviews.
Testing the whole graph. Slate deploys a branch into the live service mesh with test accounts pinned via Jaeger trace baggage, and Capri captures real production traffic with a single middleware; MatchGuard then pre-deploys regression checks against the full combinatorial set of live dimensions, catching cases such as cash trips in Brazil on a given configuration.
Code review is changing, not vanishing. Code Inbox aggregates AI review results, sanity-test screenshots, risk scores and blast radius per PR, but a human still approves every merge — auto-landing "green lanes" await back-tested risk scoring. Shepherd and Fox automate large-scale migrations and weekly maintenance PRs respectively.
Productivity is now feature velocity. Uber tags every PR by type and tracks P50 feature time per complexity band, with the share of feature PRs rising while maintenance falls. Medisetty argues the engineer's job has become context engineering, precise specs and fast verification — a customer-support policy conversion that used to take weeks now takes days.
Read more: YouTube · The Pragmatic Engineer