David Shu
๐ค SpeakerAppearances Over Time
Podcast Appearances
Clearly, models are going to improve. There's no evidence to suggest we're at the limit here, as the models keep improving every month at this rate. And part of what we're interested in Sketch is getting beyond helping you write a function, which I also use today. I get Frontier models to write functions for me. How can we climb the complexity ladder there?
Clearly, models are going to improve. There's no evidence to suggest we're at the limit here, as the models keep improving every month at this rate. And part of what we're interested in Sketch is getting beyond helping you write a function, which I also use today. I get Frontier models to write functions for me. How can we climb the complexity ladder there?
And so the point we chose is a point that is comfortable for us and what is helpful for us is the Go package. How can we get a model to help us build a Go package to solve a problem? And there's an implicit assumption here in that the shape of Go packages looks slightly different at the end of this.
And so the point we chose is a point that is comfortable for us and what is helpful for us is the Go package. How can we get a model to help us build a Go package to solve a problem? And there's an implicit assumption here in that the shape of Go packages looks slightly different at the end of this.
Packages are a little bit smaller and you have a few more of them than you would in a sort of traditional Go program you wrote by hand. But I don't think that is necessarily a bad thing. Honestly, my own programming, as a Go programmer, I tend to write larger packages because there's a lot of extra work involved in me breaking it into smaller packages.
Packages are a little bit smaller and you have a few more of them than you would in a sort of traditional Go program you wrote by hand. But I don't think that is necessarily a bad thing. Honestly, my own programming, as a Go programmer, I tend to write larger packages because there's a lot of extra work involved in me breaking it into smaller packages.
And there's often this thought process going on in my mind of like, oh, in the future, this would be more maintainable as more packages. But it's more work for me to get there today. So I'll combine it all now and maybe refactor it another day. Yeah. And switching to trying to have LLMs write significant chunks of packages for you makes you do that work upfront. That's not necessarily a bad thing.
And there's often this thought process going on in my mind of like, oh, in the future, this would be more maintainable as more packages. But it's more work for me to get there today. So I'll combine it all now and maybe refactor it another day. Yeah. And switching to trying to have LLMs write significant chunks of packages for you makes you do that work upfront. That's not necessarily a bad thing.
It's perhaps more the way we'd like our code to end up. And so Sketch is about taking an LLM and plugging a lot of the tooling for Go into the process of using the LLM to help it. So an example is I asked it the other day to write some middleware to broadly compress HTTP responses under certain circumstances.
It's perhaps more the way we'd like our code to end up. And so Sketch is about taking an LLM and plugging a lot of the tooling for Go into the process of using the LLM to help it. So an example is I asked it the other day to write some middleware to broadly compress HTTP responses under certain circumstances.
uh because chrome can handle broadly encoding and it's very efficient uh it's not in the standard library at least it wasn't the last time i looked uh and the first thing it did was it included a third-party package that andy had written that has a broadly encoder in it and so sketch go gets that in the background in a little container as you're working
uh because chrome can handle broadly encoding and it's very efficient uh it's not in the standard library at least it wasn't the last time i looked uh and the first thing it did was it included a third-party package that andy had written that has a broadly encoder in it and so sketch go gets that in the background in a little container as you're working
and has a little Go mod there that modifies so that as you're editing the code, you get all the code completions from that module, just like you would in a programming environment. And more importantly, we can take that information and feed it into the model as it's working.
and has a little Go mod there that modifies so that as you're editing the code, you get all the code completions from that module, just like you would in a programming environment. And more importantly, we can take that information and feed it into the model as it's working.
If we run the Go build system as part of it, and if a build error appears, we can take the build error, feed it into the model. It's like, here's the error, and we can let it ask questions about the third-party package it included.
If we run the Go build system as part of it, and if a build error appears, we can take the build error, feed it into the model. It's like, here's the error, and we can let it ask questions about the third-party package it included.
which helps with some of the classic problems you see when you ask Claude to write you some Go code, where it includes a package and then makes up a method in there that doesn't exist that you really wish existed, because it would solve your problem. And so this sort of automated tool feedback is doing a lot of the work I have to do manually when I use a frontier model.
which helps with some of the classic problems you see when you ask Claude to write you some Go code, where it includes a package and then makes up a method in there that doesn't exist that you really wish existed, because it would solve your problem. And so this sort of automated tool feedback is doing a lot of the work I have to do manually when I use a frontier model.
And so I'm trying to cut out some of those intermediate steps where I said, that doesn't exist. Could you do it this way? Anything like that you can automate saves me time. It means I have to chat less. And so that's the goal is to slightly climb the complexity ladder in the piece of software we get out of a frontier model and to chat less in the process.
And so I'm trying to cut out some of those intermediate steps where I said, that doesn't exist. Could you do it this way? Anything like that you can automate saves me time. It means I have to chat less. And so that's the goal is to slightly climb the complexity ladder in the piece of software we get out of a frontier model and to chat less in the process.