---
schema: 1
type: video
title: >-
  Building uReview, Uber’s Multi-Agent Code Review Engine — Will Bond & Ameya
  Ketkar, Uber
description: >-
  In 2024 an Uber engineer waited about three hours for a first review on a pull
  request. In 2026 that wait is nine hours. Volume and size both grew, and code
  review became the bottleneck for thousands of engineers spread across hundreds
  of teams, twelve sites and six language specific monorepos. Will Bond and
  Ameya Ketkar walk through uReview, the system Uber built rather than bought,
  partly because most vendors do not support Phabricator and partly because they
  wanted agents in the inner loop reviewed against exactly the same rules as
  humans. The instructive half is what they had to measure before it worked.
  Early observability was cost, an NPS survey and a Google form, and the quality
  to cost ratio landed all over the chart. Tracking reply sentiment, whether a
  comment actually got addressed, and the agent's own trajectory is what let
  them tune it, because a model never signals that it is wrong and will assert a
  bad review with full confidence. Teams write their own reviewers, and Ketkar
  is blunt that authoring a skill was the easy part while running skills at
  scale cheaply was not. It now posts about 25,000 comments a week, roughly 67%
  get addressed, and cost fell 60% against their naive first build. Speaker
  info: Will Bond: - https://x.com/wbond - http://linkedin.com/in/wbond Ameya
  Ketkar: - https://www.linkedin.com/in/ameya-ketkar -
  https://scholar.google.com/citations?user=6JO46GMAAAAJ&hl=en Timestamps: 0:00
  - Three hours to review in 2024, nine in 2026 1:53 - Why Uber built this
  instead of buying it 3:42 - The architecture, and deduplicating comment volume
  4:37 - Humble beginnings, and cost as the only metric 5:33 - Sentiment,
  addressal rate, agent trajectory 6:32 - The model never knows that it is wrong
  7:26 - Letting hundreds of teams customize reviews 10:10 - Results: 25,000
  comments a week 11:08 - Inner loop versus outer loop 13:57 - Expanding the
  outer loop rather than killing it --- Watch along with the corrected
  transcript, summary, timestamps and resources on this talk's official AIE
  page: https://ai.engineer/talks/EL123UNokkI-youtube-6b5fc2bd09d9cd27bedf Join
  our upcoming AI Engineer conferences (see https://ai.engineer landing page): -
  AIEi Shanghai, November 5–6 — the first for meeting top Chinese labs and
  engineers - AIE CODE in SF, November 10–12 — the top AI Coding conference
  returns - AIEi Sydney, December 7–8 — the first AIEi run alongside NeurIPS
  2026 in Sydney ---
canonical: 'https://liquidgold.cc/watch/EL123UNokkI'
markdown: 'https://liquidgold.cc/watch/EL123UNokkI.md'
llms: 'https://liquidgold.cc/watch/EL123UNokkI/llms.txt'
parent: 'https://liquidgold.cc/channel/aidotengineer.md'
channel: aidotengineer
updated: '2026-10-24T04:28:56.315Z'
language: null
children: []
videoId: EL123UNokkI
durationSeconds: 907
publishedAt: '2026-08-28T14:30:12.000Z'
searchChunks:
  - ordinal: 0
    text: null
    startSeconds: 24
    endSeconds: 114
    watch: 'https://liquidgold.cc/watch/EL123UNokkI?t=24'
    heldReason: rights
  - ordinal: 1
    text: null
    startSeconds: 24
    endSeconds: 114
    watch: 'https://liquidgold.cc/watch/EL123UNokkI?t=24'
    heldReason: rights
  - ordinal: 2
    text: null
    startSeconds: 24
    endSeconds: 114
    watch: 'https://liquidgold.cc/watch/EL123UNokkI?t=24'
    heldReason: rights
  - ordinal: 3
    text: null
    startSeconds: 114
    endSeconds: 126
    watch: 'https://liquidgold.cc/watch/EL123UNokkI?t=114'
    heldReason: rights
  - ordinal: 4
    text: null
    startSeconds: 126
    endSeconds: 228
    watch: 'https://liquidgold.cc/watch/EL123UNokkI?t=126'
    heldReason: rights
  - ordinal: 5
    text: null
    startSeconds: 126
    endSeconds: 228
    watch: 'https://liquidgold.cc/watch/EL123UNokkI?t=126'
    heldReason: rights
  - ordinal: 6
    text: null
    startSeconds: 228
    endSeconds: 240
    watch: 'https://liquidgold.cc/watch/EL123UNokkI?t=228'
    heldReason: rights
  - ordinal: 7
    text: null
    startSeconds: 240
    endSeconds: 286
    watch: 'https://liquidgold.cc/watch/EL123UNokkI?t=240'
    heldReason: rights
  - ordinal: 8
    text: null
    startSeconds: 286
    endSeconds: 298
    watch: 'https://liquidgold.cc/watch/EL123UNokkI?t=286'
    heldReason: rights
  - ordinal: 9
    text: null
    startSeconds: 298
    endSeconds: 342
    watch: 'https://liquidgold.cc/watch/EL123UNokkI?t=298'
    heldReason: rights
  - ordinal: 10
    text: null
    startSeconds: 353
    endSeconds: 399
    watch: 'https://liquidgold.cc/watch/EL123UNokkI?t=353'
    heldReason: rights
  - ordinal: 11
    text: null
    startSeconds: 353
    endSeconds: 399
    watch: 'https://liquidgold.cc/watch/EL123UNokkI?t=353'
    heldReason: rights
  - ordinal: 12
    text: null
    startSeconds: 399
    endSeconds: 410
    watch: 'https://liquidgold.cc/watch/EL123UNokkI?t=399'
    heldReason: rights
  - ordinal: 13
    text: null
    startSeconds: 410
    endSeconds: 455
    watch: 'https://liquidgold.cc/watch/EL123UNokkI?t=410'
    heldReason: rights
  - ordinal: 14
    text: null
    startSeconds: 455
    endSeconds: 465
    watch: 'https://liquidgold.cc/watch/EL123UNokkI?t=455'
    heldReason: rights
  - ordinal: 15
    text: null
    startSeconds: 465
    endSeconds: 621
    watch: 'https://liquidgold.cc/watch/EL123UNokkI?t=465'
    heldReason: rights
  - ordinal: 16
    text: null
    startSeconds: 465
    endSeconds: 621
    watch: 'https://liquidgold.cc/watch/EL123UNokkI?t=465'
    heldReason: rights
  - ordinal: 17
    text: null
    startSeconds: 465
    endSeconds: 621
    watch: 'https://liquidgold.cc/watch/EL123UNokkI?t=465'
    heldReason: rights
  - ordinal: 18
    text: null
    startSeconds: 465
    endSeconds: 621
    watch: 'https://liquidgold.cc/watch/EL123UNokkI?t=465'
    heldReason: rights
  - ordinal: 19
    text: null
    startSeconds: 465
    endSeconds: 621
    watch: 'https://liquidgold.cc/watch/EL123UNokkI?t=465'
    heldReason: rights
  - ordinal: 20
    text: null
    startSeconds: 621
    endSeconds: 633
    watch: 'https://liquidgold.cc/watch/EL123UNokkI?t=621'
    heldReason: rights
  - ordinal: 21
    text: null
    startSeconds: 633
    endSeconds: 679
    watch: 'https://liquidgold.cc/watch/EL123UNokkI?t=633'
    heldReason: rights
  - ordinal: 22
    text: null
    startSeconds: 633
    endSeconds: 679
    watch: 'https://liquidgold.cc/watch/EL123UNokkI?t=633'
    heldReason: rights
  - ordinal: 23
    text: null
    startSeconds: 691
    endSeconds: 847
    watch: 'https://liquidgold.cc/watch/EL123UNokkI?t=691'
    heldReason: rights
  - ordinal: 24
    text: null
    startSeconds: 691
    endSeconds: 847
    watch: 'https://liquidgold.cc/watch/EL123UNokkI?t=691'
    heldReason: rights
  - ordinal: 25
    text: null
    startSeconds: 691
    endSeconds: 847
    watch: 'https://liquidgold.cc/watch/EL123UNokkI?t=691'
    heldReason: rights
  - ordinal: 26
    text: null
    startSeconds: 847
    endSeconds: 857
    watch: 'https://liquidgold.cc/watch/EL123UNokkI?t=847'
    heldReason: rights
  - ordinal: 27
    text: null
    startSeconds: 857
    endSeconds: 907
    watch: 'https://liquidgold.cc/watch/EL123UNokkI?t=857'
    heldReason: rights
---


# Building uReview, Uber’s Multi-Agent Code Review Engine — Will Bond & Ameya Ketkar, Uber

In 2024 an Uber engineer waited about three hours for a first review on a pull request. In 2026 that wait is nine hours. Volume and size both grew, and code review became the bottleneck for thousands of engineers spread across hundreds of teams, twelve sites and six language specific monorepos. Will Bond and Ameya Ketkar walk through uReview, the system Uber built rather than bought, partly because most vendors do not support Phabricator and partly because they wanted agents in the inner loop reviewed against exactly the same rules as humans. The instructive half is what they had to measure before it worked. Early observability was cost, an NPS survey and a Google form, and the quality to cost ratio landed all over the chart. Tracking reply sentiment, whether a comment actually got addressed, and the agent's own trajectory is what let them tune it, because a model never signals that it is wrong and will assert a bad review with full confidence. Teams write their own reviewers, and Ketkar is blunt that authoring a skill was the easy part while running skills at scale cheaply was not. It now posts about 25,000 comments a week, roughly 67% get addressed, and cost fell 60% against their naive first build. Speaker info: Will Bond: - https://x.com/wbond - http://linkedin.com/in/wbond Ameya Ketkar: - https://www.linkedin.com/in/ameya-ketkar - https://scholar.google.com/citations?user=6JO46GMAAAAJ\&hl=en Timestamps: 0:00 - Three hours to review in 2024, nine in 2026 1:53 - Why Uber built this instead of buying it 3:42 - The architecture, and deduplicating comment volume 4:37 - Humble beginnings, and cost as the only metric 5:33 - Sentiment, addressal rate, agent trajectory 6:32 - The model never knows that it is wrong 7:26 - Letting hundreds of teams customize reviews 10:10 - Results: 25,000 comments a week 11:08 - Inner loop versus outer loop 13:57 - Expanding the outer loop rather than killing it --- Watch along with the corrected transcript, summary, timestamps and resources on this talk's official AIE page: https://ai.engineer/talks/EL123UNokkI-youtube-6b5fc2bd09d9cd27bedf Join our upcoming AI Engineer conferences (see https://ai.engineer landing page): - AIEi Shanghai, November 5–6 — the first for meeting top Chinese labs and engineers - AIE CODE in SF, November 10–12 — the top AI Coding conference returns - AIEi Sydney, December 7–8 — the first AIEi run alongside NeurIPS 2026 in Sydney ---

Canonical: https://liquidgold.cc/watch/EL123UNokkI · Channel: [AI Engineer](https://liquidgold.cc/channel/aidotengineer.md)

> Search chunk text is held until public-source provenance is verified.

## Document chunks

> Missing: no stored document chunks are available.
