YouTube2Text

Ramp: Lessons from Building a New AI Product - The Pragmatic Summit — Transcript

by The Pragmatic Engineer · 7,385 words · 1,128 segments · language en · Watch on YouTube

Full transcript

  1. 0:05Today we're going to talk about AI at
  2. 0:07Ramp and uh
  3. 0:10I'm going to give an intro quick
  4. 0:11introduction into what Ramp is.
  5. 0:13Um
  6. 0:14really briefly, we're going to walk
  7. 0:15through the simplest possible expense
  8. 0:17use case that you guys can all resonate
  9. 0:19cuz I see everybody's drinking coffee.
  10. 0:22And
  11. 0:23then we're going to
  12. 0:24talk quickly about a lesson that we
  13. 0:27learned
  14. 0:28this year while we were building
  15. 0:29Brazilian agents. Um and sort of the
  16. 0:32pivot in the paradigm that's happening
  17. 0:34especially after February 6th.
  18. 0:36And
  19. 0:38then we're going to double click onto
  20. 0:39how we built one of our most popular
  21. 0:41agents, the policy agent.
  22. 0:43Um and then finally, we'll dig in into
  23. 0:46the infrastructure built that this is
  24. 0:49requiring requiring to do on our side.
  25. 0:52And in my mind most importantly, the
  26. 0:54culture shift that needs to happen on
  27. 0:57everyone's teams in order to be able to
  28. 0:59operate in a way that delivers products
  29. 1:02into the hands of your customers in the
  30. 1:04fastest and most impactful way.
  31. 1:06Uh so without further ado,
  32. 1:09quick intro about Ramp. We are number
  33. 1:11one finance platform for modern
  34. 1:13businesses with 50,000 plus customers
  35. 1:17and we're in the business of saving you
  36. 1:19time and money.
  37. 1:21Uh we have uh
  38. 1:23I've seen some of the some of those
  39. 1:25names on the on the name tags here. So
  40. 1:26thank you for being Ramp customers. Uh
  41. 1:30Really exciting. Uh really quickly, so
  42. 1:33cup of coffee
  43. 1:34takes
  44. 1:36usually about 15 minutes of your time
  45. 1:40cuz you got to do these three simple
  46. 1:42things which unfortunately take minutes.
  47. 1:45This compounds through the company.
  48. 1:47And what Ramp does in the simplest
  49. 1:50possible way, we just condense time and
  50. 1:53return money back.
  51. 1:55Uh so a simple story over a transaction
  52. 1:58from tapping the card to writing a memo
  53. 2:00to classifying the transaction according
  54. 2:02to your GL to sourcing the receipt,
  55. 2:05attaching the receipt, um,
  56. 2:07normalizing the merchant to your, um,
  57. 2:10inventory of merchants is all done
  58. 2:12agentically at Ramp. And this was our
  59. 2:14first foray, uh, probably by now,
  60. 2:17uh, you guys still feel here? Yeah.
  61. 2:19Probably by now about 3 years ago, we
  62. 2:20started doing this one-shot things with
  63. 2:22AI. Uh, normalize merchant, write a
  64. 2:25memo, and it's been working really,
  65. 2:27really well as the models get better.
  66. 2:29Uh, what else is going on at the
  67. 2:31company? Well, literally every persona,
  68. 2:35uh, at the company is wasting time on a
  69. 2:40lot of manual work. Uh, so from AP
  70. 2:43clerks to your finance team, from your
  71. 2:45purchasing teams, uh, keep going to more
  72. 2:48finance work, your data teams, uh, at
  73. 2:51Ramp we used to have a channel called
  74. 2:53help data where somebody will ask for a
  75. 2:55CSV and a poor person will go and write
  76. 2:57a SQL query.
  77. 2:58Uh, it we replaced it about, uh, a year
  78. 3:01and a half ago.
  79. 3:02Uh, so a lot of time being spent and the
  80. 3:05complexity has a ramp shape. It only
  81. 3:07increases as you go through different
  82. 3:09jobs to be done. Um, so if you guys
  83. 3:12watch Super Bowl, uh, you might be
  84. 3:13familiar with Brian, um, our agent. Uh,
  85. 3:16so we've been writing a lot of agents
  86. 3:18literally for every job to be done to
  87. 3:20cover the entirety in the end state, the
  88. 3:23entirety of what admins, employees, and
  89. 3:26finance teams are doing that is not
  90. 3:29directly related to making the money. We
  91. 3:31want you all to be making money and
  92. 3:33focus on your customers, not on how to
  93. 3:35close the books.
  94. 3:37Uh,
  95. 3:38but what's been happening for the past
  96. 3:40few weeks is, uh, that we're living
  97. 3:43through the most exciting paradigm shift
  98. 3:45in software, um, and it requires
  99. 3:48complete rethink. And with rethink,
  100. 3:51simplification of your stack. Uh So,
  101. 3:54what we learned is you don't need to
  102. 3:56build a thousand agents. We
  103. 3:57intentionally last year allowed each
  104. 3:59individual team to go and experiment.
  105. 4:01And we ended up maybe with four
  106. 4:03different ways of doing the same thing
  107. 4:06both for synchronous agents as well as
  108. 4:07for background agents. Um but instead
  109. 4:11you want to drive your framework towards
  110. 4:15a single agent with a thousand skills.
  111. 4:19Uh So, let's talk about what the
  112. 4:21software traditionally used to focus on.
  113. 4:23So, every process, um especially in the
  114. 4:26modern modern AI stack, boils down to
  115. 4:28having an event. Um so, a prompt you can
  116. 4:31receive an invoice and you want to pay
  117. 4:32it. Um some prompt instructions of what
  118. 4:36you want to do with it and some
  119. 4:37guardrails like a policy, uh like an
  120. 4:39expense policy or your payables policy.
  121. 4:41Um context, what is the data that the
  122. 4:44agent should consider. And then finally,
  123. 4:47tools. These are APIs and actions that
  124. 4:50you can do. And traditionally software
  125. 4:51would focus on only four and five.
  126. 4:54Uh In the new paradigm
  127. 4:56software is doing everything. So, you
  128. 5:00want to focus on building an autonomous
  129. 5:03system of action that can react, reason,
  130. 5:06and act without a human or with very
  131. 5:08little human supervision.
  132. 5:11Um so, what does it mean in terms of
  133. 5:13what we're building?
  134. 5:15So, first, uh
  135. 5:17we decided we go into consolidate the
  136. 5:20interactions.
  137. 5:22Um verbal interactions uh
  138. 5:25with the agents to a single
  139. 5:27conversational UX. Uh We literally at
  140. 5:29the end of last year we had about five
  141. 5:31different conversational UXs. We now
  142. 5:33have consolidated it into what we call
  143. 5:35an OmniChat. Omni meaning for
  144. 5:37omnipresent. It is now being deployed to
  145. 5:39every surface of the product. And it
  146. 5:42works well with the traditional UX
  147. 5:43because you still need tables and
  148. 5:44buttons. And uh you don't always want to
  149. 5:47be talking uh to your software.
  150. 5:50But this is a good example what Omni
  151. 5:52chat looks like. Please onboard a new
  152. 5:54employee
  153. 5:55Omni chat can resolve an employee to an
  154. 5:59employee ID and look up through an HRIS
  155. 6:01tool
  156. 6:02their corporate structure and it found a
  157. 6:05workflow agentic workflow that we
  158. 6:07created previously called the new hire
  159. 6:09playbook. And the agent is asking, would
  160. 6:11you like me to to onboard the person
  161. 6:13using this playbook?
  162. 6:14How is this possible? We built a
  163. 6:16in-house lightweight agent framework
  164. 6:18that provides orchestration with tools
  165. 6:22that engineers are very quickly building
  166. 6:24and most recently we have one product
  167. 6:26manager Vibe coded about 20 tools so
  168. 6:28engineers are no longer needed to build
  169. 6:30these tools. Um
  170. 6:32and sometimes your workflows are
  171. 6:34involved such as employee onboarding
  172. 6:37consists of four steps. So you can just
  173. 6:39go and ramp and describe what do you
  174. 6:41want to happen when a new employee
  175. 6:42joins, give them a card, make sure they
  176. 6:46get receipts for every transaction,
  177. 6:47congratulate them on on Slack and check
  178. 6:49in with them in two weeks.
  179. 6:51We now are able to compile this into a
  180. 6:54runnable deterministic workflow
  181. 6:56and then give it to the agent to
  182. 6:58execute. Playbooks make use of tools
  183. 7:02and how this all comes together
  184. 7:05this is an example which Viral is going
  185. 7:07to double click next is
  186. 7:10upon swiping the card
  187. 7:12there's a real-time policy review that's
  188. 7:14happening directly in the software
  189. 7:17and policy agent enforces
  190. 7:20your company requirements with regard to
  191. 7:23spend.
  192. 7:24Therefore, it's very safe to give Ramp
  193. 7:26cards to literally every employee in
  194. 7:27your company. And there's a handoff
  195. 7:29happening with an accounting code and
  196. 7:31agent that classifies this transaction,
  197. 7:34applies the rules of your back office
  198. 7:37team of your finance team. As an
  199. 7:39employee I have no idea how certain
  200. 7:41transaction should match to our GL, and
  201. 7:43that's what typical traditional products
  202. 7:45would do. They will expose it to you. Um
  203. 7:47so the agent is much better doing it
  204. 7:49because it has the full context of your
  205. 7:51chart of accounts, it understands your
  206. 7:52ERP,
  207. 7:54and then it can either auto-approve or
  208. 7:56in the worst-case scenario, it will
  209. 7:57involve uh the human in the loop to
  210. 7:59review my materiality or notify that
  211. 8:02there is an out-of-policy spend.
  212. 8:04Um with that, uh please welcome Viral,
  213. 8:07who will
  214. 8:08dive deeper into the policy agent.
  215. 8:12Thanks, Nick.
  216. 8:17Oops.
  217. 8:19Awesome. So, a lot of finance teams are
  218. 8:22looking at receipts like this basically
  219. 8:24every day, and maybe they might have
  220. 8:26hundreds or thousands of these. If you
  221. 8:28told me to look at this and decide if I
  222. 8:30should approve or reject this
  223. 8:31transaction, I'm probably going to make
  224. 8:32a mistake.
  225. 8:34So, policy agent basically reasons on
  226. 8:36this image and all the transaction data
  227. 8:38that we have and told me that there were
  228. 8:40eight guests in the receipt. I could
  229. 8:42barely see that when I was looking at
  230. 8:43it. Uh it was below the $80 a person cap
  231. 8:46that we have internally.
  232. 8:48Uh they were going for team welcome
  233. 8:50dinner. Uh and so because the amount was
  234. 8:53verified as well and the merchant, uh
  235. 8:55policy agent told me to approve this
  236. 8:56transaction.
  237. 8:59Similarly, for this open AI transaction,
  238. 9:01Anan was testing out um some some
  239. 9:03ChatGPT features, and so policy agent
  240. 9:06told me this was a valid uh business
  241. 9:08expense and told me to approve it. And
  242. 9:10then this $3 bakery charge was told uh
  243. 9:13was was uh rejected because uh it wasn't
  244. 9:17uh part of an overtime purchase and it
  245. 9:19didn't happen on the weekend.
  246. 9:22So, really we looked at this as an
  247. 9:24opportunity to rethink how Ramp was set
  248. 9:27up. Um controllers and finance teams are
  249. 9:30looking at transactions like these and
  250. 9:32and making these decisions every day.
  251. 9:34And a Fortune 500 company that is one of
  252. 9:36our customers was coming to us and
  253. 9:38saying, "Hey, can you uh uh make sure
  254. 9:40that you approve these types of expenses
  255. 9:42and reject these types of expenses?" And
  256. 9:43they basically had a list of all the
  257. 9:45rules that uh Ramp uh should should
  258. 9:47follow. And we kind of saw this as an
  259. 9:49opportunity not to kind of add more
  260. 9:52incremental deterministic rules that
  261. 9:55kind of define our product. And I worked
  262. 9:56on some of the first versions of these,
  263. 9:58um but actually kind of take out uh a
  264. 10:01page from Andrej Karpathy saying that
  265. 10:03English is the new programming language
  266. 10:05and kind of turn the expense policy into
  267. 10:07the rules themselves. So,
  268. 10:09um
  269. 10:10you can you can see Ramp's expense
  270. 10:11policy on the left and and this is a
  271. 10:13screenshot from our production
  272. 10:14environment, but we are seeing really
  273. 10:16great uh use out of our policy agent
  274. 10:19product. And it kind of needed to start
  275. 10:23it kind of needed to start really um
  276. 10:25organically. So, we kind of operated
  277. 10:27like a early-stage startup. We're
  278. 10:28already very incremental and and and
  279. 10:30fast at Ramp, but uh we found some
  280. 10:32design partners like that Fortune 500
  281. 10:34company. We iterated really quickly, and
  282. 10:37we had weekly weekly meetings with all
  283. 10:39of them to kind of understand exactly
  284. 10:40what uh feedback we wanted to hear and
  285. 10:43what what we could improve.
  286. 10:46I think one of the main important um
  287. 10:49I guess things that we realized across
  288. 10:51uh Ramp is that we really needed to lean
  289. 10:54into the fact that AI products cannot be
  290. 10:56one-shotted. You need to start with
  291. 10:58something simple. And so, as long as
  292. 11:00everyone on your team, PMs, designers,
  293. 11:03engineers are aligned that you're not
  294. 11:04going to have perfection on day one, I
  295. 11:07think that was actually one of the main
  296. 11:08like cultural learnings. Um and so, we
  297. 11:11dogfooded a lot of this work internally
  298. 11:13uh and started with an even more
  299. 11:14constrained problem of trying to decide
  300. 11:17whether our coffee with a colleague
  301. 11:18transaction should be approved or
  302. 11:20rejected. These are single uh
  303. 11:22uh
  304. 11:23dollar amount transactions that are low
  305. 11:24risk um
  306. 11:26according to our finance team. And so,
  307. 11:28we started uh with these transactions.
  308. 11:30And uh one of the early learnings,
  309. 11:32especially as we kind of release this
  310. 11:35into production, was that a lot of the
  311. 11:37reason that policy agent would be wrong
  312. 11:39would be less on the models themselves
  313. 11:41and more about the context that we were
  314. 11:42giving
  315. 11:43to to LLM's themselves. So, we we could
  316. 11:46have sat down and thought about all the
  317. 11:48context in the beginning before we even
  318. 11:50kicked off any engineering work, but we
  319. 11:52realized actually the best thing would
  320. 11:53be to learn from some of our live
  321. 11:55internal data. And so, for example, we
  322. 11:58learned that the role in the title of an
  323. 12:00employee is super important when looking
  324. 12:02at expense policy docs or in level
  325. 12:04C-suite, for example, might have higher
  326. 12:06limits. Maybe they can fly on first
  327. 12:07class for for certain flights. And so,
  328. 12:09we started extracting more information
  329. 12:11from receipts, started pulling in
  330. 12:13information from HRS fields that are
  331. 12:15already on ramp. And so,
  332. 12:17Will is going to kind of talk you
  333. 12:19through exactly the iterations that we
  334. 12:21went through to implement policy agent
  335. 12:23and and some of the learnings along the
  336. 12:25way.
  337. 12:32Is this down?
  338. 12:33It's down. Yeah. Okay.
  339. 12:37All right, cool. Um
  340. 12:39awesome. So, when we first started
  341. 12:41building the policy agent internally,
  342. 12:43we dream we went big. We're like, "Hey,
  343. 12:45let's automate all of finance. Let's
  344. 12:47automate all reviews." But when it came
  345. 12:49down to it, we actually have to start
  346. 12:50small. Is that cup of coffee, you know,
  347. 12:53in your expense policy? And the reason
  348. 12:55that we did that was because even though
  349. 12:56the problem sounds simple
  350. 12:58to automate, you know, is this a simple
  351. 13:01question, is this in policy or not?
  352. 13:04It was going to grow to be complex. Kind
  353. 13:06of like Vimal said, we could have gone
  354. 13:07down and we could have figured out what
  355. 13:08context do we have, how can we add it,
  356. 13:10how can we put it all together in a way
  357. 13:11that LLM can understand, and you know,
  358. 13:13put it all together from the get-go. But
  359. 13:16we knew that even if we aimed and got
  360. 13:19everything right the first time, it was
  361. 13:20probably going to be wrong once you
  362. 13:21applied and generalized it and then to
  363. 13:23another business.
  364. 13:24Um
  365. 13:25so,
  366. 13:27the simpler the system, I think the
  367. 13:29easier it is to iterate on top of it.
  368. 13:31And once you iterate, you know what's
  369. 13:32going to work, you know what's not, and
  370. 13:33you can kind of layer complexity on top
  371. 13:34of that. And I think that's pretty
  372. 13:35important to um keep in mind when you're
  373. 13:37building a um
  374. 13:39LM or an agent starter. So, for us,
  375. 13:42we started really simple, very very um
  376. 13:45kind of the classic, you know, we have
  377. 13:46an expense come in, retrieve the context
  378. 13:48around it, we pass it through a series
  379. 13:50of LM calls that are very well defined
  380. 13:52of like, "Hey, is this in policy? Why is
  381. 13:54it in policy? How can we show the user
  382. 13:55that's in policy?" And then give an
  383. 13:57output that uh makes sense in this way
  384. 13:59to the user.
  385. 14:00Eventually, we learned that each expense
  386. 14:02is kind of different. We can classify an
  387. 14:04expense based on is it travel? Is it a
  388. 14:05meal? Is it entertainment? Do
  389. 14:07conditional prompting, and then retrieve
  390. 14:09context based on that, and then pass it
  391. 14:11through a series of LM calls, and give
  392. 14:12it some tools so that it can also
  393. 14:14autonomously decide, "Hey, um I need
  394. 14:16flight information actually, or I need
  395. 14:17this employee's level." Um and kind of
  396. 14:19layer that on top.
  397. 14:21And a few iterations later, we came to a
  398. 14:23full-on agentic workflow. Um we ended up
  399. 14:26with um complex tools to read across all
  400. 14:30of our platform, and these tools are
  401. 14:31shared across our all of our agents.
  402. 14:33It's not just for policy agent. We have
  403. 14:35a company internal toolbox that all of
  404. 14:37our agents are easily can, you know,
  405. 14:39reach into and use. And we gave it the
  406. 14:41um we gave it the um capability to write
  407. 14:44as well. So, it's now writing decisions,
  408. 14:46it's writing uh reasoning, it's writing
  409. 14:48auto-proving expenses on users' behalf.
  410. 14:51Um and it goes in a loop. So, um you
  411. 14:53know, now it's more of a black box, and
  412. 14:55that's kind of the trade-off you get.
  413. 14:57Um
  414. 14:58as you go from simple to complex
  415. 15:00systems, um your capability goes up,
  416. 15:03your uh autonomy goes up, your agents
  417. 15:04are able to do more, your AI can do
  418. 15:06more, your AI seems smarter. But, in
  419. 15:08exchange, you're going to be able to
  420. 15:10you're losing traceability and
  421. 15:11explainability. Uh we look at it now, we
  422. 15:13can kind of look at the reasoning tokens
  423. 15:15that the LM gives us, but in the end, we
  424. 15:16have no control over it. It's going to
  425. 15:18do what it thinks it's right, it's going
  426. 15:19to make the tool calls, it's going to
  427. 15:20tell you it's right or wrong. So, a
  428. 15:22smaller black box becomes a bigger black
  429. 15:24box as the system becomes more complex.
  430. 15:29So, one thing that is really important
  431. 15:31when doing something like this is from
  432. 15:32the beginning, you need really good
  433. 15:33auditability.
  434. 15:34Um assume even if you know how it it
  435. 15:37works, assume that your inputs and
  436. 15:39outputs are all you know, and make sure
  437. 15:40that it's correct. Um
  438. 15:42so
  439. 15:44if it was a black box system and you
  440. 15:45only saw the input output, can you
  441. 15:47verify that it did the right thing? And
  442. 15:48even if that black box changes, you
  443. 15:50should be able to reason about whether
  444. 15:51the output is correct.
  445. 15:53Um
  446. 15:54as with many products that we built at
  447. 15:56Ramp and across, you know, other
  448. 15:58companies, we thought that the users
  449. 15:59would be correct. Uh you know, if the
  450. 16:01user says approve, the agent should
  451. 16:02approve. If the user says reject, the
  452. 16:04agent should reject. But turns out
  453. 16:07the users are actually incorrect.
  454. 16:08They're wrong. They are sometimes, you
  455. 16:10know, they don't know the expense
  456. 16:10policy, you know, they trust their
  457. 16:12employees, they're lazy, it's a Sunday,
  458. 16:14who knows. Um so, turns out we can't
  459. 16:17always do what the users are doing cuz
  460. 16:19sometimes that's where our finance teams
  461. 16:21come back to you and are like, "Hey,
  462. 16:22this is wrong. This shouldn't be on the
  463. 16:24uh company card."
  464. 16:25So, we have to define our own definition
  465. 16:28of correctness.
  466. 16:29Um and to do that, um we had a weekly
  467. 16:31labeling session with across functions
  468. 16:33that are working on this product. Um and
  469. 16:35that had two um kind of really good
  470. 16:37outcomes. One was that we had a ground
  471. 16:40truth data set that we could always test
  472. 16:42against and we knew that this was
  473. 16:43correct. And two was that everyone was
  474. 16:45on the same page. If our agent got
  475. 16:47something wrong, everyone knew that it
  476. 16:48got it wrong. Or you know, our agent is
  477. 16:50missing context, everyone knew that it's
  478. 16:52missing that context. So, there was less
  479. 16:54communication, everyone's on the same
  480. 16:55page, and um they could focus on what's
  481. 16:57really priority and kind of have
  482. 16:59alignment on that.
  483. 17:02Initially, um
  484. 17:04getting all those people together in a
  485. 17:05room every week, giving them homework to
  486. 17:07label 100 data points, it's expensive.
  487. 17:09You know, that everyone everyone has
  488. 17:10things to do and it sometimes they don't
  489. 17:12come back with their homework done. It's
  490. 17:14just a kind of like almost becomes
  491. 17:16tedious even though it's so important.
  492. 17:17So, we wanted to make it as simple as
  493. 17:19possible, and the way we did that was
  494. 17:20that we looked for third-party vendors
  495. 17:23that could provide us the tools to label
  496. 17:24data and collect the data.
  497. 17:26But, turns out some tools are too
  498. 17:28specific to a use case, some tools are
  499. 17:29too general, and we could have spent
  500. 17:31weeks trying out different tools, but we
  501. 17:33decided let's just build our own. Um so,
  502. 17:35we used Clockwork using Streamlit. We
  503. 17:38basically one-shotted all of this, and
  504. 17:40the greatest part of it all is that it's
  505. 17:41low maintenance, um low risk. It's in a
  506. 17:44particle base that it breaks,
  507. 17:46we can fix it right away. Deploy's
  508. 17:47happening like instant seconds. And
  509. 17:49non-engineers can go and personalize it.
  510. 17:50They can they can vibe code it. They can
  511. 17:52clock code it. And this was at Opus 4.
  512. 17:53So, now at Opus 4.6, I expect it's even
  513. 17:56better, and uh with something like that,
  514. 17:58it's definitely easier and cheaper
  515. 17:59sometimes to do something one-off like
  516. 18:00this.
  517. 18:04And
  518. 18:06with that with the ground truth data
  519. 18:07set, we were able to make quick
  520. 18:08iterations. We're able to find out,
  521. 18:10"Hey, we need employee levels. Add that.
  522. 18:11How does that work?" Running it against
  523. 18:13this data set, does it actually catch
  524. 18:14it? And now say accept or approve.
  525. 18:17Um and we're able to make really quick
  526. 18:18iterations, and that was kind of the key
  527. 18:20um
  528. 18:21that was actually kind of a key point in
  529. 18:22developing this. Uh we had really early
  530. 18:24confidence that this could actually
  531. 18:26work, and we were able to actually buy
  532. 18:27get a lot of buy-in, um get a lot of
  533. 18:30customers on board it and that kind of
  534. 18:31try it out as a design partner.
  535. 18:33Um
  536. 18:34and
  537. 18:36as part of like doing that iteration
  538. 18:38with the data set, you had evals, and I
  539. 18:40feel like evals are very you know,
  540. 18:41obviously everyone I think in the zoom
  541. 18:43now knows about evals and what they
  542. 18:44mean, but um it's pretty important to
  543. 18:46have them early on. I wouldn't say that,
  544. 18:48you know, don't let perfectionism, you
  545. 18:49know, get in the way. You don't need a
  546. 18:51full data set of a thousand data points
  547. 18:52that you're testing against every
  548. 18:53iteration. We started with five. You
  549. 18:55know, and we knew that those five we
  550. 18:57were not going to fail. We kept adding
  551. 18:58and adding and adding. And
  552. 19:01you know, make sure it's easy to run.
  553. 19:03Anyone could go and just run that
  554. 19:04command. And then make sure that the
  555. 19:05results are really easy to understand.
  556. 19:07Um they're able to look at it, get
  557. 19:09instant, you know, output like and
  558. 19:10understand like, "Hey, this is what the
  559. 19:11model's doing. This is like good, this
  560. 19:13is bad, and like if you want to do it as
  561. 19:15part of your CI, then everyone now can
  562. 19:17just hopefully merge in code because
  563. 19:20whenever um
  564. 19:22whenever you think you're doing
  565. 19:23something right for the LLMs or agent,
  566. 19:25giving more context, giving it tools,
  567. 19:27more likely than not it's probably going
  568. 19:28to have some kind of bad, you know,
  569. 19:29consequence that you didn't see
  570. 19:30happening. Context was wrong, um whether
  571. 19:33it be the tool instructions were wrong,
  572. 19:35or maybe the docstring was like a little
  573. 19:36confusing and conflicting. Um so it
  574. 19:37might have consequences. You just want
  575. 19:39to You just want to make sure you're
  576. 19:40catching against those. Um and then I'll
  577. 19:42touch on it briefly, but online evals
  578. 19:44are also great. So these are offline.
  579. 19:46You have a data set, it's historical,
  580. 19:47you're testing it, but if you can,
  581. 19:49online evals can be a little more
  582. 19:50confusing and uh harder to kind of
  583. 19:52measure, but if you can measure anything
  584. 19:54that as your users are interacting with
  585. 19:55the system, definitely as a leading
  586. 19:57metric also set them up. And for us,
  587. 19:59part of that was, hey, how many our
  588. 20:00rates of like decisions. We had an
  589. 20:02unsure decision, which is which just
  590. 20:04meant that the agent didn't have enough
  591. 20:05information. So we can measure that
  592. 20:07online. So it's much simpler eval, but
  593. 20:09that also gave us a pretty good health
  594. 20:10check um as our system was running.
  595. 20:15Cool. And another great part about evals
  596. 20:17is that with evals, you can make
  597. 20:19confident model changes uh whenever a
  598. 20:21new model comes out, Opus 46, GPT-53,
  599. 20:24you want to make sure that you can
  600. 20:26leverage those new models because
  601. 20:27sometimes that could be the difference
  602. 20:28between, you know, your system getting
  603. 20:30one part of the problem right to wrong,
  604. 20:32but it could also be the opposite. It
  605. 20:33could have It could actually be
  606. 20:35not good without any prompt changes or
  607. 20:36changing how your system works. So um
  608. 20:38having evals really set it up and being
  609. 20:40able to benchmark really helps um make
  610. 20:42confident model changes.
  611. 20:46Cool. Um so now that policy agent, we've
  612. 20:49been developing this for a while, it's
  613. 20:50available for everyone on the Man
  614. 20:52platform. Some of the things that we
  615. 20:53learned along the way is that
  616. 20:55um cloud code as engineers is very
  617. 20:57exciting. We have full control, we get
  618. 20:58to modify our cloud MD, we get to make
  619. 21:00sure, you know, tell it to not leave
  620. 21:01comments, it won't leave comments,
  621. 21:02hopefully. Um
  622. 21:04turns out it's It's just us, um finance
  623. 21:06people also really like to have you
  624. 21:07know, modify their cloud MD, which is
  625. 21:09their expense policy. So, if something
  626. 21:11went wrong with the decision, then we
  627. 21:13just like tell them, "Hey, go update
  628. 21:14your policy doc." Which to them it's a
  629. 21:16little scary concept to begin. Like this
  630. 21:17is a document. Like you know, you don't
  631. 21:19mess with that. Um, you have to go
  632. 21:20through a lot of hoops if you're going
  633. 21:21to mess with that. Um, but then it turns
  634. 21:23out if you get them really excited about
  635. 21:24the feedback loop, "Hey, change that.
  636. 21:26You'll see it right away." Turns out
  637. 21:27they'll be like really excited to do
  638. 21:28this.
  639. 21:29Um, and then trust builds over time. So,
  640. 21:32some of the earlier customers that we
  641. 21:33had were some of the Fortune 500. We
  642. 21:36actually started with a really big, you
  643. 21:37know, um,
  644. 21:38enterprise customers that we had cuz we
  645. 21:39thought that they would have the most
  646. 21:40value. They have the most expenses
  647. 21:42coming in. They have the most time to
  648. 21:43spend on reviewing
  649. 21:45coffee expenses.
  650. 21:47Um, so,
  651. 21:48you know, roll it out to them. Let them
  652. 21:50have the trust. Don't We didn't do any
  653. 21:51autonomous action. We're just like,
  654. 21:52"Hey, we're going to give you a
  655. 21:53suggestion." That's That's how That's
  656. 21:55kind of how we phrased it. Suggestions.
  657. 21:57And then eventually they came to us and
  658. 21:58were like, "Okay, you know what? I want
  659. 22:00to go from suggestions to auto
  660. 22:02approvals. Like anything under $200, you
  661. 22:04guys are mostly right. I don't care
  662. 22:05about this. Let me just go auto approve
  663. 22:07it." So, we gave them the autonomy
  664. 22:08slider. We gave them a way to just like
  665. 22:10turn it on and then they actually could
  666. 22:12do it themselves.
  667. 22:13And then,
  668. 22:14last but not least, um, similar to LLMs,
  669. 22:17users thrive in, you know, in-product
  670. 22:18feedback loops. Um, so, you know, when
  671. 22:20you're building an AI product and you
  672. 22:22have a full way of like LLMs can test if
  673. 22:25it's code was right and still to go
  674. 22:27iterate, users are the same way. Um,
  675. 22:29give them in-product ways to improve the
  676. 22:31expense policy doc, improve the agent
  677. 22:33and how it operates. And, um, they're
  678. 22:35more than excited to kind of take it
  679. 22:36over themselves and um, kind of improve
  680. 22:38it and personalize it for them. So,
  681. 22:41um,
  682. 22:42from here I'll pass it on to Ian who's
  683. 22:43going to have to kind of talk about the
  684. 22:44infrastructure and the culture that we
  685. 22:45have at Ramp that kind of, you know, led
  686. 22:47us to building the policy agent.
  687. 22:54Hey, everybody.
  688. 22:56So, you've heard a little a little bit
  689. 22:58about like how we're kind of getting
  690. 22:59leverage to all of the different finance
  691. 23:01teams as we operate on top of their
  692. 23:03financial infrastructure and really try
  693. 23:05to get leverage for our customers. Um,
  694. 23:07but I think a big thing that we also
  695. 23:08spend a lot of time thinking about is
  696. 23:11how can we get leverage for Ramp itself,
  697. 23:14the engineers, our XFN works, all the
  698. 23:16people that we work with um, every
  699. 23:18single day. And this slide is this
  700. 23:20section is pretty intentionally named AI
  701. 23:22infrastructure and culture cuz we think
  702. 23:24that this is both like a really
  703. 23:26challenging infrastructure problem, but
  704. 23:27it's also a really challenging culture
  705. 23:29problem and changing how you work as
  706. 23:31well is a big part of the story.
  707. 23:35And so to kind of start on the
  708. 23:36infrastructure side, the core of how
  709. 23:38most of applied AI happens at Ramp is
  710. 23:41our applied AI surface a service. And at
  711. 23:44like a 10,000 ft view, this looks
  712. 23:46something kind of like an LLM proxy
  713. 23:49or something like light LLM, but there's
  714. 23:50really three kind of main extensions
  715. 23:52that we've invested in to make this a
  716. 23:54lot more powerful for a lot of our use
  717. 23:55cases.
  718. 23:56The first is like structured output and
  719. 23:58consistent API and SDKs across different
  720. 24:01model providers. This can be pretty
  721. 24:02tricky to do especially with how quickly
  722. 24:04the APIs are changing, but it's a
  723. 24:05problem that we don't want downstream
  724. 24:07product teams to have to think about. So
  725. 24:09if you have an idea of I want to switch
  726. 24:10from
  727. 24:11GPT 5.3 to Opus or I want to try Gemini
  728. 24:163 Pro, you should be able to do that
  729. 24:17with a config change and really quickly
  730. 24:19be able to iterate on semantic
  731. 24:21similarity and trying to do a bunch of
  732. 24:23different, um, you know, code sandboxing
  733. 24:25and structured output calls that way.
  734. 24:27The other thing that we've spent a ton
  735. 24:29of time thinking about is kind of batch
  736. 24:30processing and workflow handling. This
  737. 24:32is really useful for evals or if you're
  738. 24:33doing like bulk for us bulk document or
  739. 24:36data analysis,
  740. 24:37um, and that's something that we also
  741. 24:39don't want teams to have to spend a
  742. 24:40bunch of time on of how do you want to
  743. 24:41batch this and handle it with rate
  744. 24:42limits and do we want to do this on an
  745. 24:44offline or online job with something
  746. 24:46like Anthropic? We just want to handle
  747. 24:48that for downstream consumers so they
  748. 24:49can just focus on providing value for
  749. 24:51downstream customers.
  750. 24:53And then the last which is a pretty big
  751. 24:54deal is the ability to trace different
  752. 24:56costs across teams and against products
  753. 24:58as well. And this allows us to kind of
  754. 25:00identify the Pareto, you know, curve of
  755. 25:02like what is the best kind of model
  756. 25:04performance for cost, how are these
  757. 25:05evolving over time, what teams are
  758. 25:07actually not, you know, building
  759. 25:09something that's going to be sustainable
  760. 25:10long-term for different product
  761. 25:11services. And this can be really, really
  762. 25:13important to just remove all this work
  763. 25:15from internal teams having to think
  764. 25:17about this.
  765. 25:18And the last thing that's kind of, I
  766. 25:20think, funny to think about and we often
  767. 25:21joke about that, you know, our customers
  768. 25:24are actually using the front more of a
  769. 25:25frontier model than they may even know
  770. 25:27even is out yet, is it allows us to stay
  771. 25:29at the frontier when a new model comes
  772. 25:30out, it's a one-line config change that
  773. 25:32impacts every single SDK downstream. And
  774. 25:35so, rather than teams having to learn
  775. 25:36the SDK or go into 12 or dozens of
  776. 25:39different call sites, they can just
  777. 25:41change it in one place for their
  778. 25:42specific team, and they now get the
  779. 25:44benefit of being on the latest and
  780. 25:45greatest models um that we've kind of
  781. 25:47vetted and built into the rest of the
  782. 25:48system.
  783. 25:52Our product, as you've kind of heard
  784. 25:54earlier, earlier, works on a lot of like
  785. 25:56very sensitive data and very sensitive
  786. 25:59workflows. And I think often times, uh
  787. 26:01you know, something that I hear from
  788. 26:02engineers in the space is this kind of
  789. 26:04concept of hallucination and safety, and
  790. 26:07how are you actually going to be able to
  791. 26:08produce a lot of these things to have
  792. 26:09benefits to downstream finance teams?
  793. 26:12And we're pretty big believers that it
  794. 26:13all comes down to the catalog of tools
  795. 26:15that teams are building and integrating
  796. 26:16with on a daily basis.
  797. 26:18And so, what you're seeing here is our
  798. 26:20internal tool catalog. So, an example
  799. 26:23would be like get a policy snippet or
  800. 26:25per diem rate or a recent transactions.
  801. 26:28And these are built alongside of product
  802. 26:30teams to really understand a lot of the
  803. 26:31nuances in the data and the use case.
  804. 26:34And what's really cool about this is not
  805. 26:35only can you see where there's gaps in
  806. 26:36our offering that, oh, we actually don't
  807. 26:38have a tool for this specific use case.
  808. 26:40These can be used both in internal repos
  809. 26:42and our core product. And so, if you
  810. 26:44have an idea of I want to do a cool
  811. 26:45reimbursement agent idea, here are the
  812. 26:48different ways to integrate the tools,
  813. 26:49the different APIs and systems that they
  814. 26:50integrate with, and now you can
  815. 26:51prototype that on a totally new product
  816. 26:53and Vibe coded surface area without
  817. 26:56having to worry about like learning all
  818. 26:57of these things from scratch or building
  819. 26:59the tools on your own.
  820. 27:01We're up to like many hundreds of these
  821. 27:02tools today and we, as Nick mentioned
  822. 27:04earlier, thinks that this could be like
  823. 27:06multiple thousands over time.
  824. 27:11On the topic of context, another big
  825. 27:14thing we think about is context for our
  826. 27:15customers of how do we actually
  827. 27:17integrate the financial stack and allow
  828. 27:18them to be a little more productive.
  829. 27:20What we noticed like a very similar
  830. 27:21problem internally
  831. 27:23on our engineering team. And I think
  832. 27:25something that's like not as always
  833. 27:26obvious is that, you know, even if
  834. 27:28you're using something like Cloud Code
  835. 27:30or Codex, there's all this fragmentation
  836. 27:32of actually what you do on a daily basis
  837. 27:34to get work done in your company that
  838. 27:35that's not integrated, too.
  839. 27:37There's logs in DataDog, there's a
  840. 27:39production, you know, database that has
  841. 27:41a bunch of things going on, there's
  842. 27:43different alerting systems, there's
  843. 27:44incident.io, there's a Slack message you
  844. 27:46have to pull in, there's a Notion doc,
  845. 27:48and then there's a lot of like knowledge
  846. 27:50that those actual specific product teams
  847. 27:51have of how they actually need to get
  848. 27:53work done as well.
  849. 27:55And so, at the end of last year, we
  850. 27:58decided to start out and try to solve
  851. 28:00this problem of how can we actually
  852. 28:01integrate all this context and build our
  853. 28:03own internal background coding agent,
  854. 28:05which we've called Ramp Inspect. You may
  855. 28:07have seen this on LinkedIn or X. We
  856. 28:09actually have open-sourced the blueprint
  857. 28:10of how we built this, and at the end I
  858. 28:12can definitely show you guys a link of
  859. 28:13where to find that. And the the progress
  860. 28:16has been pretty phenomenal of actually
  861. 28:18integrating this into a background agent
  862. 28:20that can run autonomously as people are
  863. 28:22in meetings, if as bug fixes come up,
  864. 28:24and things like that. And currently this
  865. 28:27month, Ramp Inspect is responsible for
  866. 28:29over 50% of PRs that we merge to
  867. 28:31production. I have some interesting,
  868. 28:33we're like really big nerds with stats
  869. 28:35and numbers and things like that, so we
  870. 28:37have this dashboard to kind of create
  871. 28:38this like interesting, one like subtle
  872. 28:41healthy competition, but also inspire
  873. 28:44people that they can actually use this
  874. 28:45as well. And as you can engineering
  875. 28:48has a huge lead of the amount of
  876. 28:50sessions, but you also have product, you
  877. 28:51also have design, there's risk, legal,
  878. 28:54corporate finance, and even marketing
  879. 28:55and CX teams using Ramp Inspect. And
  880. 28:57they're doing things like simple copy
  881. 28:59changes, they're doing logic fixes,
  882. 29:02they're trying to respond to incidents
  883. 29:03or bugs. And what's been really cool to
  884. 29:06see as this has evolved over time,
  885. 29:08whoop,
  886. 29:11is how we've actually designed a couple
  887. 29:13of these things with some core
  888. 29:15principles to be really powerful. So
  889. 29:17what you're seeing here is a Ramp
  890. 29:18Inspect session. I think this is an
  891. 29:19example of like a query that we were
  892. 29:21trying to fix.
  893. 29:22This spins up in the background really
  894. 29:24fast
  895. 29:25modal code sandbox. This allows us to
  896. 29:27like resume, spin up, and spin down
  897. 29:28these containers in an isolated
  898. 29:30environment which has the same
  899. 29:31environment that you would have if
  900. 29:32you're developing a ramp.
  901. 29:34There's a series of tasks to keep it on
  902. 29:35track and it creates a GitHub branch and
  903. 29:37integrates with all of the context
  904. 29:39documents, our data dog, our read
  905. 29:41replica so we can actually write
  906. 29:43queries, and different context documents
  907. 29:45that product teams have
  908. 29:47have put together.
  909. 29:48And what's really I think subtle about
  910. 29:49how we've designed this is we've
  911. 29:51designed it to be multiplayer first. And
  912. 29:53that means that as you integrate or you
  913. 29:55try to pair with like a designer or
  914. 29:57somebody on the PM team, they you can
  915. 29:59actually help them like level up their
  916. 30:01own prompting skills. They can give us
  917. 30:03feedback of hey, click on this link,
  918. 30:04this actually failed in a way that I
  919. 30:06wasn't expecting. And so that can be a
  920. 30:08really great source of like
  921. 30:09cross-functional collaboration. That was
  922. 30:11a very subtle design choice that we made
  923. 30:13that ended up being a really big impact
  924. 30:15for the company.
  925. 30:17And then these can be kicked off either
  926. 30:18via a Kanban UI, we have an API, and
  927. 30:21then also a Slack thread. And we can
  928. 30:23take the full context of the Slack
  929. 30:24thread when it is actually kicked off so
  930. 30:26you don't have to re-prompt it with a
  931. 30:27bunch of conversation that happened
  932. 30:28earlier.
  933. 30:32What you see here is we also have a full
  934. 30:34VS Code environment. We run VNC inside
  935. 30:36of a modal sandbox as well so this
  936. 30:38allows us to have Chrome DevTools and
  937. 30:40MCP so we can actually do full stack
  938. 30:42work, which is pretty cool. And it has
  939. 30:44access to the 150 plus thousand tests
  940. 30:46that we have. So, it also knows if
  941. 30:47things are broken, can respond to the CI
  942. 30:50inside of GitHub, and actually patch
  943. 30:52fixes before it actually pings you that
  944. 30:54the PR is done.
  945. 30:56Um the link for this is
  946. 30:58builders.ramp.com.
  947. 31:00I think it's like one of the first uh
  948. 31:01blog post that we have uh or the most
  949. 31:03recent blog post that we have, and we
  950. 31:05open source like the whole blueprint of
  951. 31:06how to build this and put this together
  952. 31:07as well. I think there's also a GitHub
  953. 31:09repo called open inspect, which is an
  954. 31:11open source implementation of this as
  955. 31:13well.
  956. 31:17So, it's been pretty interesting to see
  957. 31:19the impact that Ramp Inspect has had.
  958. 31:20We're over 50% of PRs that we merge on a
  959. 31:23weekly basis goes through the system.
  960. 31:25And so, with all this time not spent on
  961. 31:28thinking about these really low-level
  962. 31:29firefighting tasks or really low-level
  963. 31:32small fixes or tweaks that can be kind
  964. 31:34of democratized across the company,
  965. 31:36we're really rethinking like how our
  966. 31:37engineering teams operate and think
  967. 31:39about their job and how they can
  968. 31:41actually be really impactful in this new
  969. 31:44kind of AI-native future.
  970. 31:47And so, as a thought experiment, um we
  971. 31:49let's pretend we have two different
  972. 31:50teams. I'm sure everyone in this room
  973. 31:52has worked with like their handful of
  974. 31:54extraordinary teams, maybe teams that
  975. 31:55are finding their footing.
  976. 31:57And you'll notice that there's like a
  977. 31:58couple of different qualities that may
  978. 32:00sound that may resonate.
  979. 32:02So, we have team A on the left here. And
  980. 32:04let's say that they really care about
  981. 32:05impact, they handle ambiguous problems,
  982. 32:07they understand the product, business,
  983. 32:08and data, they adopt new tools, they can
  984. 32:11find creative solutions, and they obsess
  985. 32:13over like the user experience.
  986. 32:15And then team B may also resonate with
  987. 32:17some people. You know, they debate
  988. 32:19libraries, they add process when they
  989. 32:21things start to feel chaotic. They
  990. 32:22constantly complain about head count.
  991. 32:25They bike shed the details instead of
  992. 32:26actually focusing on the user
  993. 32:28experience. Like, hey, should we use you
  994. 32:30know, functional programming paradigm
  995. 32:31here or what version of, you know,
  996. 32:33different TypeScript libraries do we
  997. 32:34want to use?
  998. 32:36And then they build before understanding
  999. 32:37the
  1000. 32:38right? They just say, "Hey, we're going
  1001. 32:39to just five code this, bro. Don't
  1002. 32:40worry." Or they focus on, you know,
  1003. 32:42performative code quality or nitpicks
  1004. 32:44that may not actually They may be very
  1005. 32:46much like a subjective kind of matter of
  1006. 32:48fact, as well. I've worked on both of
  1007. 32:50these teams, and I think the argument
  1008. 32:52that I'm going to make today is that
  1009. 32:54there's going to be a divergence, I
  1010. 32:55think, depending on what side of the
  1011. 32:56aisle you land there.
  1012. 32:58This is a study from Harvard that was
  1013. 32:59out, uh, I think the end of last year.
  1014. 33:02And it was very much geared towards
  1015. 33:03juniors and and seniors in terms of
  1016. 33:05what's actually happening with hiring
  1017. 33:06trends in uh in engineering since AI
  1018. 33:09tools have accelerated. And I think what
  1019. 33:11this glosses over is that I don't think
  1020. 33:12it's just a years of experience problem.
  1021. 33:14I actually think it's very much, um, all
  1022. 33:17of the different qualities that I said
  1023. 33:18in team A versus team B that really make
  1024. 33:21it apparent that like coding was never
  1025. 33:23really the hardest part of a lot of jobs
  1026. 33:25for a lot for a long time. There's all
  1027. 33:27these other engineering principles that
  1028. 33:29become really important than just raw
  1029. 33:31coding speed.
  1030. 33:32So, when you think about like a staff or
  1031. 33:34a staff plus engineer, you're really
  1032. 33:36compensating those people more for a lot
  1033. 33:39of the judgment that they bring to the
  1034. 33:40table, the context, the ability to see
  1035. 33:42around corners, all the learning that
  1036. 33:43they have, the actual like scar tissue.
  1037. 33:46And so, if, you know, you ask Opus 46 to
  1038. 33:48do something, they'll have the knowledge
  1039. 33:50to actually know if that is not going to
  1040. 33:52work or that's actually a bad idea. And
  1041. 33:54I think one thing that a lot of the
  1042. 33:56narratives that we see in the media gets
  1043. 33:57get wrong about coding agents is they
  1044. 33:59don't really identify the fact that you
  1045. 34:01could still build the wrong thing just a
  1046. 34:03lot faster, and you can build like
  1047. 34:04bigger messes. And I think that having a
  1048. 34:07lot of these skills of a team A and
  1049. 34:09really focusing on like what is the
  1050. 34:10context and reason behind this will only
  1051. 34:12become more important, um, in AI.
  1052. 34:16And so, what does that actually look
  1053. 34:18like? We hit on some of these things.
  1054. 34:20Figuring out what to build and
  1055. 34:22understanding users well enough.
  1056. 34:24Selling an idea to skeptical
  1057. 34:25stakeholders. This is still something
  1058. 34:27when we decided to build a a background
  1059. 34:29coding agent, this was not something
  1060. 34:30that was obvious that we should be
  1061. 34:31spending time on this.
  1062. 34:33Having good design design decisions with
  1063. 34:35incomplete information and maintaining
  1064. 34:38momentum through the long middle of this
  1065. 34:40project, which can be really gnarly. And
  1066. 34:42I think this last
  1067. 34:43bit, you know, everyone in this room I'm
  1068. 34:44sure is painfully aware of you know, the
  1069. 34:47conversation around SaaS and and the
  1070. 34:49stock market and things like that. And I
  1071. 34:51think this is like a big element that
  1072. 34:52they gloss over, which is that yes, it's
  1073. 34:54easy to vibe code something, but
  1074. 34:56actually going through that middle
  1075. 34:57process is like why you need really good
  1076. 34:59engineers to actually get something
  1077. 35:00deployed that has product market fit,
  1078. 35:03that people are really excited about. Um
  1079. 35:05and I think not enough people recognize
  1080. 35:07that.
  1081. 35:10And so where does that leave us?
  1082. 35:11Personally, I think there's a lot of
  1083. 35:13kind of doomerism and and scariness
  1084. 35:14around a lot of the AI narratives, but I
  1085. 35:17think it's also a really exciting time
  1086. 35:19to be building.
  1087. 35:20Unlike maybe factory work or farming,
  1088. 35:23software's never done. We have this uh
  1089. 35:26really
  1090. 35:27kind of like meme internally where we
  1091. 35:29say, you know, jobs not finished. You've
  1092. 35:30probably seen in the marketing as well.
  1093. 35:32I think software's perpetually not
  1094. 35:34finished. And so with all this extra
  1095. 35:36capacity, with people focusing less on
  1096. 35:38this kind of low-level work and more on
  1097. 35:40high-leverage engineering tasks, I think
  1098. 35:42four things are going to really happen.
  1099. 35:45I think companies are just going to
  1100. 35:46chase opportunities they couldn't afford
  1101. 35:47to pursue. I don't know if we would be
  1102. 35:49chasing these like agentic workflows and
  1103. 35:52really thinking about bigger scale
  1104. 35:54problems in the financial stack if this
  1105. 35:56technology didn't exist.
  1106. 35:58People are going to enter adjacent
  1107. 35:59markets. They're going to try to stitch
  1108. 36:00together more value for customers. It's
  1109. 36:02not going to be like because everyone's
  1110. 36:042x more productive, you need two less or
  1111. 36:06half the people.
  1112. 36:08You're going to rebuild systems that are
  1113. 36:09too expensive to touch. I think building
  1114. 36:11an internal background coding agent uh
  1115. 36:14for a company that does financial
  1116. 36:15operations um software felt like
  1117. 36:17probably a pretty crazy idea, but now
  1118. 36:19that makes a ton of sense.
  1119. 36:21And raise the bar for what good enough
  1120. 36:22means. I think, you know, being able to
  1121. 36:24kind of build more mind-blowing
  1122. 36:26experiences for users, provide a lot
  1123. 36:28more value is going to be the narrative
  1124. 36:30of the next decade. And I'm super
  1125. 36:32excited to be able to build some of
  1126. 36:34these things and see what everyone in
  1127. 36:35this room is going to build, too. So,
  1128. 36:37thank you.

About this transcript

This page contains the full transcript of Ramp: Lessons from Building a New AI Product - The Pragmatic Summit by The Pragmatic Engineer, generated from the public captions YouTube serves with the video. The transcript has 7,385 words across 1,128 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.

What you can do with it

Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to translate the transcript into 100+ languages.

Free YouTube transcript tool

YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, translation to 100+ languages, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.