AI Engineer World's Fair 2025
The Eyes Are The (Context) Window to The Soul: How Windsurf Gets to Know You
Read the talk
How Windsurf Uses Context to Generate Code for You
Useful coding assistance depends on more than a prompt: it combines evidence from the repository with clues about what the developer is trying to do.
From a talk by Sam Fertig
The same facts can tell different stories
What does liking Slack emojis tell you about someone? Sam Fertig begins with a handful of facts: he works at Windsurf, loves Slack emojis, sometimes wears turtlenecks, exaggerates his title, and is speaking at AI Engineer’s World’s Fair. He demonstrates the title problem immediately, correcting his introduction from principal deployed engineer to deployed engineer. Beside a neutral-face emoji, these facts offer recognition without much understanding.
Change the neutral face to a purple devil, and the observations acquire an uncharitable interpretation. Working at Windsurf becomes an excuse to brag about Silicon Valley; enjoying Slack becomes a sign of avoiding work. Replace the devil with an angel, and the same observations support a different story.
| Observation | Devil framing | Angel framing |
|---|---|---|
| Works at Windsurf | Brags about the Valley | Works hard |
| Loves Slack emojis | Prioritizes Slack over work | Values team building |
| Wears turtlenecks | Thinks he has superior fashion sense | Still has superior fashion sense |
| Exaggerates his title | Is power hungry | Is indifferent to titles |
| Speaks at the conference | Likes hearing himself talk | Likes sharing with friends |
The turtleneck interpretation survives both versions as the joke. Everything else illustrates how framing turns visible facts into hypotheses about behavior.
Those hypotheses still need corroboration. If trusted colleagues said Fertig spent all day on Slack, their testimony could strengthen one interpretation of his emoji habit. They do not actually give that testimony here; the example distinguishes inference from observation from supporting evidence. A coding assistant faces a similar problem when it tries to infer what a developer needs from what it can see.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Generating code is easier than making it fit
Windsurf packages its AI coding toolkit as an editor and as a plugin for multiple IDEs. Fertig presents its value proposition as making anything done in an editor faster and better. That broad promise sets up the more specific engineering problem: what information does an assistant need to make its output useful to the person sitting at the keyboard?
The opening example supplies two ways to approach that problem: make educated guesses using heuristics, and combine them with evidence. Producing code at all is already relatively accessible. Fertig estimates that someone using tools such as Windsurf or Augment could build a simple UI around a leading model, accept a prompt, and return an answer in a couple of hours or less. The harder task is generating code for a particular developer.
That code must fit an existing large codebase, follow organizational policies and standards, and respect personal coding preferences. These constraints are more specific than producing a plausible standalone answer. The slide also lists future-proofing, but Fertig explicitly drops that item rather than defining or defending it.
The desired experience is an editor suggestion you accept because it matches what you intended, or a recommendation from Windsurf’s agent, Cascade, that follows your own way of thinking about the problem. Context is what connects a general ability to generate code with that particular fit.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
The prompt, the codebase, and the developer
Windsurf’s context philosophy starts with two questions: what context, and how much? For the first question, Fertig returns to the distinction between heuristics and hard evidence. One bucket concerns your behavior—what you are doing and trying to accomplish. The other concerns your environment—the code and information around you.
User state includes code above and below the cursor, currently open files, files opened and then closed, and the order of those interactions. Clipboard contents and terminal activity supply additional clues. The sequence matters: the assistant is not just looking at a repository, but at how someone is moving through it. These signals help infer the task behind an explicit request.
Codebase state supplies the second bucket: repository code, documentation, rules provided by the user, memories generated by the agent, and other repository contents. Here, the environment provides material against which an inferred intention can be interpreted. A user’s explicit rule and an agent-generated memory are different sources, even though Fertig places both in this bucket.
The resulting formula is conceptual: relevant output = prompt + codebase state + user state. The prompt names the request, the codebase supplies its surroundings, and the user’s activity helps explain what they mean right now. Fertig presents this combination as part of Windsurf’s approach, leaving the proprietary details unspecified.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Relevance has to arrive quickly
The second question is how much context to include. Larger context windows helped, and Fertig acknowledges that they continue to help to an extent. But capacity alone does not decide which information deserves a place in the model’s input. Fertig reports better results from optimizing the contents of the context window than from merely enlarging it. He supplies no task-specific benchmark or numerical comparison.
Selection also affects latency, which he treats as a core feature of a coding agent. Finding relevant context is difficult; finding it quickly remains difficult as the codebase grows. The practical requirement is therefore to identify useful material soon enough for the assistant to remain responsive during development.
Fertig attributes Windsurf’s strength here to its background in GPU optimization, tracing the company’s origins to ExaFunction. This is his explanation of the team’s expertise; the talk does not unpack a retrieval architecture or show how a particular GPU optimization changes retrieval time.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Ways to supply and retrieve context
Some context machinery works behind the scenes; other capabilities let users supply or direct context themselves. Fertig’s inventory spans several kinds of tools:
- Search and structure: embedding search, plain text search, remote indexing, reranking, and AST parsing.
- Persistent guidance and workspace context: memories, rules, and custom workspaces.
- Additional inputs and connections:
@mentions, knowledge base, multimodal input, MCP, and Riptide.
These are named capabilities, not a demonstrated sequence of operations. Fertig explicitly describes the list as a mixture of directly relevant and tangential items, without explaining their individual implementations or what Riptide does.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Knowing a user is a software capability
The relationship metaphor has a limit. Windsurf can use context to become more useful to you, but it remains a computer program; that does not imply a reciprocal personal relationship. Fertig shifts the invitation back to people: developers can ask the Windsurf team for clarification, and companies can discuss bringing the product into an enterprise. The talk offers those conversations rather than an enterprise deployment procedure.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Where the context goes
An audience question about privacy brings the discussion from contextual usefulness to data handling. Fertig asks whether the concern is storage and training. The questioner’s brief clarification does not establish a more precise scope, so his answer addresses the broader issue of what is processed and where it goes.
Fertig says the processing concerns information about the user and their editor, rather than access to the wider operating machine. He also makes clear that this information leaves the editor and goes to Windsurf’s servers. Contextual assistance, in this account, includes remote processing.
He characterizes the servers as stateless and the processing as a pass-through transaction, then makes an absolute claim that Windsurf never stores or trains on user data. That statement should be read as Fertig’s account at the talk, not as a guarantee covering every product configuration. The later Windsurf Pilot Terms & Conditions, revised June 18, 2025, prohibit training on covered Customer Data but allow storage for enabled persistent cloud features, potentially abusive inputs, and profile data; third-party platforms have separate terms. Those terms postdate the conference and apply to a specific agreement. Fertig closes by directing security and legal questions to the website or the team—the place to establish which guarantees govern a particular deployment.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Resources
Further reading
Official plugin repository with installation instructions and completion keybindings for Vim and Neovim.
Updates since the talk
Current Devin Desktop documentation covering repository indexing, open-file context, knowledge sources, and selective context pinning.
Explains legacy Cascade's automatic memories, user-defined rules, storage locations, and rule activation modes.
- Windsurf pilot terms and data-use guidelinesDocumentation
Pilot terms revised June 18, 2025, including data-use protections, persistent-feature storage exceptions, and third-party platform provisions.
Read the complete timestamped transcript
- 0:00
[upbeat music] Hello, everybody.
- 0:17
First things first, I actually have to apologize. I, uh, I was coming into the fair today. I was coming up the escalator to registration because this is my first day at the fair.
- 0:26
I came for my talk. And I saw for the first time this big banner that said AI World's Fair. It's like a place for builders, not yappers. And I was a builder once, but I'm definitely a yapper now. [laughs]
- 0:37
Um, so, so bear with me, but I think we'll have fun. Um, on that note, I don't love yapping by myself. I love yapping with others, and it is the last afternoon and the last day, but there is an interactive component to this presentation.
- 0:51
So at times, I will present slides that look like this. [laughs] You don't have to clap, but you do have to say the words with me as they appear. So in this case, what we would say is...
- 1:05
S-Y-D.
- 1:06
Excellent. Thank you. I knew you could do it. [laughs] One more practice one.
- 1:10
Start the talk.
- 1:13
Okay, great. Excellent. I hear you. So my name is Sam. I am a principal forward deploy-- or deployed engineer at Windsurf. Um, and in the spirit of this talk, getting to know Windsurf and Windsurf getting to know you, you should get to know me, right?
- 1:28
So here are some facts about me and my life. I work at Windsurf. I love Slack emojis, if you couldn't tell by the first slide. I sometimes wear turtlenecks, as evidenced in this photo.
- 1:40
I have been known to exaggerate my title. I'm not actually a principal deployed engineer, just deployed engineer for now. Um, and I am speaking at the AI World's Fair.
- 1:49
It's a little lackluster, right?
- 1:51
Yeah.
- 1:52
Hence the neutral emoji. Do you feel like you really got to know me based on these simple facts?
- 1:59
No.
- 1:59
No, I don't think so either. I wouldn't expect you to. Let's do this. Let's see what we can infer from these otherwise superficial observations to see if we can get to know me a little better, right?
- 2:10
And for fun, let's put a little framing on it. Let's change this fun neutral face to a little, the little purple devil emoji,
- 2:17
right? And see what these facts say about me.
- 2:20
Maybe I am the kind of person who brags about, you know, working in the valley, right? Maybe I prioritize Slack over real work, and that's why I love Slack emojis.
- 2:30
Maybe I wear turtlenecks 'cause I think I have a superior fashion sense, right? Maybe I exaggerate my title because I'm power hungry. Maybe I'm speaking here 'cause I enjoy the sound of my own voice, right?
- 2:39
And we can do, we can do the inverse too, right? Let's turn this little devil into, into an angel, right? Maybe I work hard, and that's why I work at Windsurf.
- 2:46
Maybe I like Slack 'cause I value team building. Still the superior fashion sense. I think that one's fair. [laughs] Um, maybe I'm indifferent towards titles, right? And maybe I'm speaking here 'cause I like sharing thing with friends.
- 2:58
Sharing things with friends, I should say. Either way, we took some otherwise superficial, conspicuous observations, and we turned them, with some framing, into something that actually says something about me and says something about my behavior, right?
- 3:12
What we really need now would be some hard evidence, right? So I see two of my colleagues over here. If they came up and, you know, as trusted sources, s- told you guys that I spend all day on Slack, then maybe that evidence combined with the visible evidence here would lead you to believe that I spend most
- 3:28
of my day on Slack, which I won't confirm nor deny at this point, right?
- 3:34
We'll come back to this. Um, I can imagine what you're thinking. Here's one of those slides.
- 3:39
No more Sam. We want Windsurf.
- 3:46
Okay, great. So in the spirit of getting to know you, let's talk about Windsurf a little bit. Raise your hand if you've heard of Windsurf. Okay, great. Raise your hand, or keep your hand raised if you've used Windsurf.
- 3:57
Awesome. So for those who are not familiar or as a refresher to all of you, we are, are, we offer an AI coding toolkit, right? And we package it in a couple different ways.
- 4:05
One is through the Windsurf Editor, right, which looks similar to what Augment just showed. Um, and also a Windsurf plugin that you can use in a variety of IDEs, right?
- 4:17
The core value prop of Windsurf is this. Anything you do in an editor, you can do faster, and you can do better.
- 4:28
Now, I could stand here and give you the whole typical sales pitch, right? And I could give you the Windsurf overview, and I could give you Windsurf's differentiators, and I could give you Windsurf's pace of innovation, and I could give you, I don't even know who put this one in there, but the Windsurf AI stack, right?
- 4:44
Until you turn around, and you might even say something like...
- 4:48
No more Windsurf. We want-
- 4:53
Wait. [laughs] This talk was about Windsurf. This talk was about context, right? I know what you guys want, so I'm, I'm bringing it back. Just bear with me.
- 5:01
What we've established so far, even in these funny introductions, are a couple things. One, it's hard to know someone based on surfle, uh, surface-level observations. Two, you can make educated guesses though through a variety of heuristics.
- 5:17
Three, you can also make educated guesses via hard evidence, and you can combine those two things.
- 5:23
And four, Windsurf helps you code. You'll have to take my word for it. We have some free promo codes at the booth afterwards, right? So that brings me to what I think is the principal problem of the coding AI space right now, which is this:
- 5:39
it is not hard to generate code, and it hasn't been for a while.
- 5:45
Anybody in this room, in a couple hours or even less because of tools like Windsurf and Augment, right,
- 5:53
can help you spin up a simple UI, wrap around some premier model, take some user prompt, and s- and spit back an answer, right? It is not hard to generate code.
- 6:03
However, it is hard to generate code for you.
- 6:08
Not because any of you are particular, you know, troublemakers. Maybe you are.
- 6:13
But it's hard to generate code that fits into an existing large codebase,
- 6:21
adheres to organizational policies or standards, adheres to personal preferences, everybody has their own way they like to code, right, and is future-proof. I'm not sure what I meant when I wrote this one on the slide 30 minutes ago, but I...
- 6:34
let's skip that one, right? In short, right, what makes it feel so magical when you're using Windsurf and you accept a suggestion that feels like we're inside your head, or when our agent Cascade recommends you do something in a certain way, and you say, "That's exactly what I was thinking.
- 6:54
That's exactly how I think about it"? The answer is context.
- 7:01
And there are two major pillars underpinning our context philosophy at Windsurf:
- 7:10
what context and how much. And I'm gonna break both of these down for you. So the what. When we talk about context, what context are we talking about? Well, I like to think of it in two big buckets, right?
- 7:25
The first bucket is heuristics, and the second bucket is hard evidence, like we spoke about in my intro.
- 7:34
The first bucket is your behavior and what you do and what you are trying to do. The second bucket is your environment and the world around you.
- 7:44
So things in the first bucket look like code above and below your cursor, open files, files you've opened and then closed, in what order, what's ready, what's pasted on your clipboard, copied to your clipboard, excuse me.
- 7:57
Um, you know, what's, what's in your terminal? What have you been doing? What are you trying to do? How are you acting in this IDE?
- 8:04
In the second bucket, the hard evidence is stuff like code, documentation, rules that you provide, memories that the agent generates about you, right, more code, lots and lots of code, and whatever else is in your repo, right?
- 8:17
So it's two big buckets. It's user state
- 8:21
and it's state of your codebase. And that ultimately brings us to sort of the magic formula, right? What is relevant output when it comes to coding agents?
- 8:32
It's your prompt plus the state of your codebase
- 8:37
plus the user state. And this is part of the reason, right, there's secret sauce in here, but this is part of the reason that it feels so cool when Windsurf generates something for you.
- 8:50
So the second big pillar is how much.
- 8:54
Now, for a while, a lot of people were focused on making context windows bigger and bigger. Let's just shove more context into this LLM call and it'll get better.
- 9:04
And for a while, that was true, right? It continues to be true to an extent. But since day one, we have found much better results by optimizing for what context gets put into that window instead of just trying to make it bigger, and that also helps solve the issue of latency, which is not just a preference thing,
- 9:23
but a, a core feature of good AI coding agents,
- 9:28
right? So that brings us to the problem of finding relevant context. It is hard to find relevant context. It has gotten easier. Every product does it, right? But as your codebase grows,
- 9:45
it remains hard because it's hard to find relevant context quickly.
- 9:51
And that is something that we in Windsurf, that we at Windsurf excel at because of our background in GPU optimization. We actually started as a company called ExaFunction. So you can go look at this little history lesson on your own,
- 10:04
right? We do this well, bluntly. We do this very well, right? And, and not only do we have stuff going on behind the scenes, but we build connectors for you to be able to do this at your level, at the user level, right?
- 10:18
We have embedding search, memories, rules, custom workspaces, @ mentions, plain text search, knowledge base, multimodal input, Riptide, MCP, remote indexing, reranking, AST parsing. Some of these are more relevant than others.
- 10:29
Some of these make sense, some don't. Some are tangential, some aren't, right? But ultimately, we do this very well. [laughing]
- 10:41
So I missed a slide there. [laughs] So ultimately, you know, this should give you a better picture of how we think about context at Windsurf. We think about it in two ways: what context and how much.
- 10:57
And the problem is not necessarily giving LLMs more and more context, but giving it more relevant context as it relates to your user state and as it relates to the state of your codebase, right?
- 11:10
And this is why when you use Windsurf, you begin to ask yourself questions like, "Oh my God, does Windsurf really know me? Have we met Windsurf?" You might even say stuff like...
- 11:23
I love Windsurf.
- 11:24
Great. Hopefully somebody got that as a soundbite and we can reuse it [laughs] internally.
- 11:32
That is what I wanted to talk about today. I have no idea how many minutes that was. I'm happy to take questions. Um, also, while Windsurf does get to know you, you don't necessarily get to know Windsurf back because it is a computer program.
- 11:45
Maybe some of you have opinions on relationships with machines, but in general, I don't know if you can know them back. However, you are very much able to get to know each and every member, not each and every, some members of the Windsurf team, such as the ones here today.
- 12:00
Um, so I know we're wrapping up, but if you wanna come by the booth, I will be there. Other members of Windsurf will be there. If you are a developer looking for clarity on some of the items, come by.
- 12:11
If you are, if you work at a company and you wanna get Windsurf into your enterprise, come by. We can talk as well. We love talking about that.
- 12:19
But other than that, I will wrap, uh, I will wrap up with questions unless somebody has, you know, a better idea of something to do.
- 12:29
Poll the room real quick. Go ahead.
- 12:33
What about privacy for certain things?
- 12:34
Yes. Yes. So, um, it is a variety of heuristics. Oh, that, that got everybody leaving. [laughs] [laughs]
- 12:43
So I imagine when you are asking about privacy,
- 12:48
you mean the storage and training of those things?
- 12:52
Or-
- 12:53
Like data before-
- 12:55
Yep
- 12:56
...
- 12:57
Yep. So to be clear, we are only processing information about you and your editor, right? It's not like we have access to your operating machine, obviously, right? And much like every other LLM-based tool that you interact with, that information does leave and go to our servers.
- 13:13
However, our servers are stateless. It is a pass-through transaction. We don't store any of your data ever. We don't, um, train on any of your data ever. So if you're interested in more of the, you know, security and legal guarantees, definitely, you know, come by or look on our website.
- 13:28
Um, but yeah, this is some of it. [upbeat music]