The alpha, twice a week
That was 8 min.
Get the best new moments in your inbox every Wednesday and Saturday. It's free.
Check your inbox
We sent a link to your address. Click it to finish signing up. Not there in a minute? Look in spam.
or
The Pragmatic Engineer · 8 min · Oct 14, 2026
Uber is shifting from diff counts to feature velocity
Uday Kiran Medisetty
Distinguished Engineer, Uber
Leads Uber's agentic AI and software factory work; joined in 2015 and rebuilt its fulfillment platform.

Gergely OroszHost · Host, The Pragmatic Engineer
Spent four years at Uber heading mobile, web and backend teams; shipped part of its payments system.
About this segment
Uber is moving from counting diffs to measuring feature velocity, classifying PRs to see whether more throughput ships features. Uday says engineers now set agent context and verification loops; one customer-support policy workflow fell from weeks to days.
From “Uber’s AI infra, from the inside”, Oct 14, 2026. Watch the full episode
Thanks. We'll look at and fix what's off.
“we are internally talking about not necessarily just diff velocity but feature velocity”
Uday Kiran Medisettyat 1:24:06 · The Pragmatic Engineer1:24:06Takeaways
- Track feature velocity and the share of feature versus maintenance PRs.
- Connect specs and tasks to measure feature cycle time more reliably.
- Engineers increasingly set agent context, constraints, and verification.
In this episode
Full episode- 16:03Uber reused cloud workspaces to give agents ready-to-build repos3:18
- 29:31Uber generated MCP tools from service contracts5:05
- 1:06:31Production replay lets agents validate fixes against real traffic6:18
- 38:34Uber’s context graph grounds Cortana in engineering relationships6:21
- 50:24Minion handles about 15% of Uber’s production PRs5:22
- 55:25Uber still requires human review on every PR5:34
- 1:17:44Wisdom makes employee-reported bugs easier to reproduce4:03
1:23:03Uber is shifting from diff counts to feature velocity7:40
Transcript
Transcribed by machine (Whisper) from the episode’s audio, so a word may be off here and there.
- 1:23:14
do you think about engineering productivity because when i was at uber this was again in like 12 up to 2020 us managers did look at things it wasn't the main thing but we did look at things like diffs per engineer just to show if someone didn't contribute for like two weeks it was like, hmm, what are you doing here? Or if someone did a lot of code reviews, that's actually what we wanted to notice. But it sounds like a lot of those things, the code output, the code artifacts are less relevant potentially.
- 1:23:39
What is a productive engineer in your mind right now inside of Uber or inside of your team? Yeah, so I think before the AI world, we were measuring the standard stuff like code throughput and stuff like that. Those are the easy ones. And then we would we also have like every few months we do the developer experience surveys we look at nps you know like sentiment across all kinds of dimensions we look at our code quality dimensions what's our incidence per def what's our code coverage and all of these metrics right um i think now once you go to like yeah i feel like we can leverage like the new set of capabilities to get more nuanced into this discussion like because because now we are internally talking about not necessarily just diff velocity but feature velocity like how much of all of this additional throughput
- 1:24:25
is going towards unlocking new new features and how can we even change our organizational processes so that we can reduce the p50 feature time because like you can create 100 diffs but if they are not all feature diffs then like maybe it's not necessarily increasing the value that we can provide to the users right so like one for example one of the things we did is tagging all of our PRs to different categories like on complexity level and is it a feature PR, bug fix, maintenance, testing, documentation on different categories and we could see year over year how is that mix changing. Luckily at least right now I can see our percentage of feature PRs is going up, our percentage of maintenance PRs is going down. So that gives us good indication that we're in the right direction.
- 1:25:16
We see the code volume go up and the percentage of PRs that for features going up then we are investing a lot because before even though we had the uplan tool sometimes you might not have the right tracing from this product design dog with this engine design dog to this particular task so it becomes a bit harder to measure what is the cycle time into end reliably across all the features so now we're using ai to like automatically cluster these things and like tag any missing things um so that we can reliably get what is the p50 feature velocity for different complexity of features for every half over the last two years three years and then we can go into is the bottleneck in the prd phase is the bottleneck in the launch phase is the bottleneck in the rollout phase what is going on there and what kind of things we need to invest
- 1:26:08
to accelerate the number of features that we can ship per half. And how is your mental model changing of software engineering compared to pre-AI and pre-D's tools? Is it still the same job? Have things changed? I mean, at least in my total tenure in engineering, there's never been this much change to how I work. Like, for example, we say all the engineers at Uber are hands-on. Even distinguished engineers at Uber are hands-on.
- 1:26:37
they like they create prs and i used to think i was hands-on engineer but my hands-on definition year over year has completely changed i'm like even personally i'm doing like way more prs than what i was doing last year like it's more easy to do uh all of these things uh all of these things right and i'm able to like explore more number of ideas than what i could possibly do in the past but the job of the engineering is you know in some sense how do you uh build the right context for the agents to produce reliable output like in some sense like you need to get really good at context engineering before i was operating with some context to do some tasks so i'm always thinking about okay if i want to offload some of this work to an agent what kind of context it would need and how do i set up the environment with that right context so that it can produce that work
- 1:27:26
then you have to become really good at like you know how do you give the right specs right constraints for the agents apart from building the right context then multitasking has become really like a thing um before if you're like it would take so much time to create a pr so like at least laser focused on that but now you're constantly switching between so many things like so you need to become really good at multitasking across all the sessions figuring how do you scope the how do you scope the work how do you track the work how do you verify the work really quickly because if you're not able to verify the work and like pick any code smells from the agent then um then that's hard then you're shipping like some like some recreations into production right so um like the context engineering ability to multitask ability to
- 1:28:14
like review and like verify the outputs these things have become like much more important uh now because you can because you're able to paralyze a lot more than before one thing i'm picking up is maybe a new primitive is we used to like build software thinking how do I build this software and how do I verify it? Whereas now the question that you said is often, how do I set up an agent to be able to build this and to be able to verify it? So it's kind of like almost a meta.
- 1:28:42
It sounds like there's more of that, right? Yeah, I'll give an interesting example. I was working with some of the engineers that work on our customer support team. We are going through the journey of having AI agents handle some of our customer support policies. That process would go from oh you have some runbook that human agents would follow so then from that runbook you are going through a whole bunch of steps to create a policy that ai agent can follow then you have to think about okay there is some dynamic elements here then which apis i need to call call to get that data which attributes i need to use then i need to configure my system change bunch of configurations then i need to do manual evals before launching then i need to do continuous evals post-launch. And then in the last few months, we were able to take down
- 1:29:32
all of the steps. Okay, how do I now take all of the context and all of the principles that I want to use for the policy conversion and teach agents to be able to do that so that I have a really good v0 policy that an agent can create. Then you automate all of the configuration setup, manual testing, finding the right APIs, finding the right properties so that we can hook the right dynamic elements into this again like that used to take weeks now it's like order of days for any policy then instead of doing like manual evals then how can you like use all of the past context to create synthetic evals on top of that so that you can like you can accelerate you can deploy this and then uh verify this quickly like essentially what we're discussing right which is now you're not instead of doing that work okay how how can you build the right tools and hardnesses on top of
- 1:30:23
of this so that you can automate the workflow obviously you need the right guardrails and human verification steps in between but you're designing a system that can do these things instead of like