CACHO.DEV CONTACT
← WORK CASE STUDY — 01 / 11

TEACHING AN AGENT TO CUT VIDEO

TWELVE LABS — RODEO

ROLE SENIOR FULL-STACK ENGINEER
TIMELINE APRIL 2026 — AUGUST 2026
STACK REACT / NEXTJS / GRAPHQL / FFMPEG

I joined TwelveLabs in April 2026, a couple of months before Rodeo went public. TwelveLabs builds video foundation models — Marengo for multimodal embedding and retrieval, Pegasus for reasoning across long-form video — and that capability had lived behind an API, consumed by enterprises with engineering teams. Rodeo was the company’s first application-layer product: the same understanding, handed directly to the people who cut footage for a living.

The title on my offer letter said Senior Frontend Engineer. Within weeks I was writing agent tools, GraphQL integrations, and server-side export code, and building the eval harnesses that told us whether any of it was working. That drift wasn’t scope creep. It’s what an agentic product does to the shape of a team — the boundary between “the interface” and “the system” stops being a real boundary, because the interface is where the agent’s reasoning becomes visible and the system is where it becomes true.

The Surface

Every editor I’ve ever used runs on the same contract: you make a move, the timeline changes, you can see exactly what happened. Direct manipulation, no ambiguity. An agentic editor breaks that contract on purpose. You describe an intent, something goes away for a while, and it comes back having made decisions on your behalf.

I built Rodeo’s agentic editor UI in React and Next.js with Tailwind, developing the component layer in Storybook. The stack was familiar territory. The design problem was not.

Years of VJing and cutting my own footage were more useful here than any framework knowledge. I know precisely how it feels when a tool takes a decision away from you at the wrong moment, and how fast that feeling turns into abandonment.

The Other Half

Then I went underneath it.

An agent is only as capable as the tools you hand it. The model layer could already reason about video; what it couldn’t do on its own was act. So I built the backend tool layer — the functions the agent calls to actually reach footage and do something to it — along with the GraphQL integrations connecting those tools to the rest of the platform, and the server-side export path that renders a finished cut through ffmpeg.

What the tool layer taught me

Working both ends of the same feature turned out to be the real advantage. When an export came back wrong, I didn’t have to file a ticket across a team boundary to learn whether the agent had chosen bad clips or the renderer had mishandled good ones. I could follow the trace from the click to the encoded file.

Evals Are The Hard Part

The most technically interesting work I did there had the least glamour attached to it.

Conventional software has tests: you assert an output and the assertion is either true or it isn’t. Agentic software has evals, and evals are hard because the failures that matter don’t arrive as exceptions. They arrive as plausible answers that are slightly, expensively wrong. The agent picks a competent clip instead of the right clip. It calls the correct tool with subtly wrong arguments and gets a result that looks fine. It completes the task you specified and misses the task you meant.

I built evaluation systems for both agentic surfaces — the editor and the Rodeo chatbot. The questions they had to answer:

The part I didn’t expect: writing evals forces a team to say out loud what “good” actually means. You cannot score an output until someone commits to a definition, and the moment you try, you discover how much of the product was running on shared vibes. Half the value isn’t the number at the end of the run — it’s the argument you have to have to agree on the rubric.

Hired Frontend, Shipped Full-Stack

I use Claude Code every day, and building an agentic product while living inside an agentic tool gave me a kind of double vision. Every friction I hit as a user of an agent — losing context mid-task, re-explaining intent I’d already stated, wanting to see the plan before it executed, wanting to interrupt without throwing away the work — went straight into the notebook for Rodeo. It’s a rare position: the user research is your own workday.

That’s also the honest argument for owning a whole vertical rather than a layer of one. An agentic product is a loop — surface, tools, model, evaluation, back to the surface — and the expensive bugs live in the handoffs between those stages, not inside them. Teams split cleanly along those lines spend their time reconstructing what the other half meant.

What Stays

Rodeo was the first product I’ve worked on where the software has taste, or at least has to behave as though it does. That reframes the engineering problem. You aren’t building a system that computes a correct answer; you’re building one that makes defensible creative choices, exposes them clearly enough to be overruled, and gets measurably better instead of anecdotally better.

The thread running through my career is the seam between engineering and creative work — holograms, AR stages, live visuals, real-time 3D. Agentic video editing sits directly on that seam: a hard systems and evaluation problem wearing the clothes of a creative tool. You can’t do it well from only one of those directions.

twelvelabs.io →

KEY OUTCOMES
01

Built the agentic video editor UI for Rodeo, TwelveLabs' first application-layer product, in React, Next.js, and Tailwind with a Storybook component layer

02

Built the backend agent tool layer and GraphQL integrations, including server-side video export via ffmpeg

03

Built evaluation systems for both agentic surfaces — the video editor and the Rodeo chatbot

04

Hired as a frontend engineer and grew the role across the full vertical: UI surface, agent tools, and evals

REACT · NEXT.JS · TAILWIND · STORYBOOK · GRAPHQL · FFMPEG

NEXT → FIRST RESONANCE

NEED THIS KIND OF DEPTH ON YOUR TEAM?

HELLO@CACHO.DEV →