---
schema: 1
type: video
title: >-
  Self Driving Products: Product Signals to Pull Requests — Joshua Snyder,
  PostHog
description: >-
  A rage click, a 2am error spike, a customer Slack message — today each sits
  until a developer notices, triages, tickets, and writes a fix. PostHog is
  building a pipeline that collapses that chain: signal arrives, a background
  agent groups it with related errors and session replays, researches the
  codebase, and opens a PR. You wake up to green PRs instead of dashboards.
  Three lessons from building it: off the shelf embedding models cluster signals
  by structural similarity rather than meaning, so errors land next to errors
  and Slack messages land next to Slack messages — the fix is to embed LLM
  generated queries rather than the signals themselves. Specificity determines
  whether the agent produces a useful PR or just fixes something at random;
  error tracking is immediately actionable, Slack and session replay usually are
  not. And start with agents even when it looks expensive — run the same problem
  through an agent 100 times, find the patterns, then collapse the expensive
  step into a one shot call. Speaker info: - https://x.com/joshsny
  -https://www.linkedin.com/in/joshsny/ --- Watch along with the corrected
  transcript, summary, timestamps and resources on this talk's official AIE
  page:
  https://ai.engineer/talks/zMiSRliEzv4-self-driving-products-product-signals-to-pull-requests
  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/channel/aidotengineer/explore/video/self-driving-products-product-signals-to-pull-reque-b849fe61ab09
markdown: >-
  https://liquidgold.cc/channel/aidotengineer/video/self-driving-products-product-signals-to-pull-reque-b849fe61ab09.md
llms: null
parent: 'https://liquidgold.cc/channel/aidotengineer.md'
channel: aidotengineer
updated: '2026-10-24T09:33:32.670Z'
language: null
children: []
videoId: zMiSRliEzv4
durationSeconds: 939
publishedAt: '2026-06-10T13:00:17.000Z'
searchChunks:
  - ordinal: 0
    text: null
    startSeconds: 25
    endSeconds: 129
    watch: 'https://liquidgold.cc/watch/zMiSRliEzv4?t=25'
    heldReason: rights
  - ordinal: 1
    text: null
    startSeconds: 25
    endSeconds: 129
    watch: 'https://liquidgold.cc/watch/zMiSRliEzv4?t=25'
    heldReason: rights
  - ordinal: 2
    text: null
    startSeconds: 129
    endSeconds: 140
    watch: 'https://liquidgold.cc/watch/zMiSRliEzv4?t=129'
    heldReason: rights
  - ordinal: 3
    text: null
    startSeconds: 140
    endSeconds: 269
    watch: 'https://liquidgold.cc/watch/zMiSRliEzv4?t=140'
    heldReason: rights
  - ordinal: 4
    text: null
    startSeconds: 140
    endSeconds: 269
    watch: 'https://liquidgold.cc/watch/zMiSRliEzv4?t=140'
    heldReason: rights
  - ordinal: 5
    text: null
    startSeconds: 280
    endSeconds: 368
    watch: 'https://liquidgold.cc/watch/zMiSRliEzv4?t=280'
    heldReason: rights
  - ordinal: 6
    text: null
    startSeconds: 280
    endSeconds: 368
    watch: 'https://liquidgold.cc/watch/zMiSRliEzv4?t=280'
    heldReason: rights
  - ordinal: 7
    text: null
    startSeconds: 368
    endSeconds: 378
    watch: 'https://liquidgold.cc/watch/zMiSRliEzv4?t=368'
    heldReason: rights
  - ordinal: 8
    text: null
    startSeconds: 378
    endSeconds: 513
    watch: 'https://liquidgold.cc/watch/zMiSRliEzv4?t=378'
    heldReason: rights
  - ordinal: 9
    text: null
    startSeconds: 378
    endSeconds: 513
    watch: 'https://liquidgold.cc/watch/zMiSRliEzv4?t=378'
    heldReason: rights
  - ordinal: 10
    text: null
    startSeconds: 378
    endSeconds: 513
    watch: 'https://liquidgold.cc/watch/zMiSRliEzv4?t=378'
    heldReason: rights
  - ordinal: 11
    text: null
    startSeconds: 513
    endSeconds: 525
    watch: 'https://liquidgold.cc/watch/zMiSRliEzv4?t=513'
    heldReason: rights
  - ordinal: 12
    text: null
    startSeconds: 525
    endSeconds: 620
    watch: 'https://liquidgold.cc/watch/zMiSRliEzv4?t=525'
    heldReason: rights
  - ordinal: 13
    text: null
    startSeconds: 525
    endSeconds: 620
    watch: 'https://liquidgold.cc/watch/zMiSRliEzv4?t=525'
    heldReason: rights
  - ordinal: 14
    text: null
    startSeconds: 620
    endSeconds: 631
    watch: 'https://liquidgold.cc/watch/zMiSRliEzv4?t=620'
    heldReason: rights
  - ordinal: 15
    text: null
    startSeconds: 631
    endSeconds: 719
    watch: 'https://liquidgold.cc/watch/zMiSRliEzv4?t=631'
    heldReason: rights
  - ordinal: 16
    text: null
    startSeconds: 631
    endSeconds: 719
    watch: 'https://liquidgold.cc/watch/zMiSRliEzv4?t=631'
    heldReason: rights
  - ordinal: 17
    text: null
    startSeconds: 729
    endSeconds: 852
    watch: 'https://liquidgold.cc/watch/zMiSRliEzv4?t=729'
    heldReason: rights
  - ordinal: 18
    text: null
    startSeconds: 729
    endSeconds: 852
    watch: 'https://liquidgold.cc/watch/zMiSRliEzv4?t=729'
    heldReason: rights
  - ordinal: 19
    text: null
    startSeconds: 864
    endSeconds: 939
    watch: 'https://liquidgold.cc/watch/zMiSRliEzv4?t=864'
    heldReason: rights
  - ordinal: 20
    text: null
    startSeconds: 864
    endSeconds: 939
    watch: 'https://liquidgold.cc/watch/zMiSRliEzv4?t=864'
    heldReason: rights
---


# Self Driving Products: Product Signals to Pull Requests — Joshua Snyder, PostHog

A rage click, a 2am error spike, a customer Slack message — today each sits until a developer notices, triages, tickets, and writes a fix. PostHog is building a pipeline that collapses that chain: signal arrives, a background agent groups it with related errors and session replays, researches the codebase, and opens a PR. You wake up to green PRs instead of dashboards. Three lessons from building it: off the shelf embedding models cluster signals by structural similarity rather than meaning, so errors land next to errors and Slack messages land next to Slack messages — the fix is to embed LLM generated queries rather than the signals themselves. Specificity determines whether the agent produces a useful PR or just fixes something at random; error tracking is immediately actionable, Slack and session replay usually are not. And start with agents even when it looks expensive — run the same problem through an agent 100 times, find the patterns, then collapse the expensive step into a one shot call. Speaker info: - https://x.com/joshsny -https://www.linkedin.com/in/joshsny/ --- Watch along with the corrected transcript, summary, timestamps and resources on this talk's official AIE page: https://ai.engineer/talks/zMiSRliEzv4-self-driving-products-product-signals-to-pull-requests 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/channel/aidotengineer/explore/video/self-driving-products-product-signals-to-pull-reque-b849fe61ab09 · 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.
