Software Misadventures - From "AI mid-life crisis" to the "time of my life" | Steve Yegge (Sourcegraph)

Episode Date: August 27, 2024

A Silicon Valley veteran and known for his writings like "The Death of the Junior Developer", Steve Yegge joins the show to chat about his "AI Midlife Crisis", the unique writing process he employs, a...nd building the future of coding assistants.   Segments: (00:00:00) The AI Midlife Crisis (00:04:53) The power of rants (00:09:55) “You gotta be able to make yourself laugh” (00:11:46) Steve's writing process (00:14:10) “I published them… and nothing happened for six months” (00:17:30) Key to perseverance in writing? Get pissed. (00:23:24) Writing in one sitting (00:29:05) The AI Midlife Crisis (00:35:04) Management to IC (00:38:35) The acceleration and evolution of programming (00:41:43) Picking up new skills in a new domain (00:43:40) The power of prompt engineering (00:47:27) Secondary hashing (00:50:47) The importance of context in coding assistants (00:53:56) “The future of coding assistants is chat” (00:57:15) The importance of platforms in coding assistants (01:02:30) The nefarious T-word in AI (01:06:32) The death of the junior developer and its consequences (01:09:35) The future of code understanding and semantic indexing (01:13:15) The power of context in AI platforms (01:16:21) Surprising capabilities of LLMs (01:21:04) Transferable skills in AI product development (01:23:53) Mental health and the innovator's dilemma   Show Notes The Death of the Junior Developer: https://sourcegraph.com/blog/the-death-of-the-junior-developer Steve’s blog rants: https://steve-yegge.blogspot.com/ Steve’s medium posts: https://steve-yegge.medium.com/ Sourcegraph’s blog: https://sourcegraph.com/blog Steve on twitter: https://x.com/steve_yegge   Stay in touch: 👋 Make Ronak’s day by leaving us a review and let us know who we should talk to next! hello@softwaremisadventures.com   Music: Vlad Gluschenko — Forest License: Creative Commons Attribution 3.0 Unported: https://creativecommons.org/licenses/by/3.0/deed.en

Transcript
Discussion (0)
Starting point is 00:00:00 And it's funny to watch people melt down over this. I guess I had my AI midlife crisis just a little before they did. Like I had mine about a year ago where I just had an existential crisis where it hit me hard. I was stunned. I was like reeling because I realized that many of the things that I thought that I was, that I kind of like my value, my sense of self-worth, my identity was tied up in my ability to do things like memorize long things or generate long things or whatever. It's all just BS now. Computers do it way better, right? So that was tough. I think a lot of other people haven't gone through that yet. So my blog really touched the
Starting point is 00:00:36 nerve. Welcome to the Software Misadventures podcast. We are your hosts, Ronak and Gwan. As engineers, we are interested in not just the technologies, but the people and the stories behind them. So on this show, we try to scratch our own edge by sitting down with engineers, founders, and investors to chat about their path, lessons they have learned, and of course, the misadventures along the way. Awesome. Steve, you're very well known for your rants, the Google Plus rant, I think being the most popular one. And I will categorize it as very insightful and suitable for the chili emoji, for the spiciness of it. So me and Ranec we also rant, but we do not have like the near, which we'll call it skill level.
Starting point is 00:01:28 So maybe some pro tips to get us started. Like what makes a really good rant in your opinion? A really good rant. Well, you got to start off by being really frustrated, ideally at a coworker or a team that's not giving you an API. And then you get really, really hammered one night. And then, yeah, the rest usually just comes naturally.
Starting point is 00:01:55 Love that. And when did this sort of start? If you can take us back a little bit. Yeah. So, I mean, like I kind of started it before there was like anything like blogging or anything like that i was doing it at amazon okay because i when i started amazon there was only like 250 people in the whole company like including customer service and stuff it was very small and so uh you know the engineering team was only like i don't know like maybe 50 or 80 people
Starting point is 00:02:20 and and so as they grew like i knew everybody personally right and as we grew like there was a large contingent of people that was using java but they were just like having to build really comical really dumb stuff back in the early days of java and uh and i started getting i started getting kind of mad that we weren't using better languages we were using like pearl and php and you know just a bunch of, right? So I started this kind of like soapboxing internally, right? To like 150, 200 people, it eventually grew to like 700, 800 people. Eventually I left, I went to Google, I brought them with me, the CTO, Werner Vogels, he like called me up and said that I needed to remove one of
Starting point is 00:03:00 them because it gave away a little too much confidential information. So fine, I took that one out and I published the rest of them and nothing happened nothing happened for six months so my actually my biggest piece of advice to you is like if you're gonna write something big like write it but then don't expect anything to happen for a few months it takes time for people to like absorb right six months later like on the nose all of a sudden people start walking up to me at google going yo i read your blog i'm like which? And they'd like name one. Oh, okay. Weird. And then somebody else the same day be like, I read your blog. And I'm like, yeah, which one? And they named a different one. And I'm like, what's happening? Right. And it was, it was that
Starting point is 00:03:37 somebody had found them and they made Hacker News and people were reading all of them, all the old Amazon ads. Right. So like at that point, I was point i was like all right well i guess i'll keep going so um that that part's pretty cool and i would say typically a lot of things i think most engineers rant but most people rant in private on calls which are either not recorded or people don't write about it in many of the posts slash rants that you have and sometimes your youtube uh tick tock series too you're unafraid to share your opinions and sometimes name names as well and typically at least when i was starting out in tech i was told silicon valley is a or tech community in general is a very small world so just just make sure you don't piss anyone off even if you don't like them.
Starting point is 00:04:28 I was like, okay, that's a fair piece of advice. Now, in your case, when you're sharing these opinions, a lot of people tend to agree with the opinions you have, but the people you're sharing the opinion of may not necessarily feel that way. So I'm curious, was this a concern ever in terms of when you share your thoughts or are you like, you know what, who cares?
Starting point is 00:04:52 Let's just share it. I mean, yeah, almost every single post I ever did at Google pissed off one VP or another, right? And they'd grumble at me about it, but they wouldn't censor it but you know i'm gonna i'm gonna say something that i've never said before but i'm becoming more and more convinced of it as i get like old old old which is that companies they really are people okay or they're very person-like and they can have a personality right that's kind of a
Starting point is 00:05:23 reflection of their leader plus their culture plus plus maybe their domain. And I think that as we move forward in this world where oligarchs are having more and more and more power and sway over governments, the only people that are powerful enough that we can turn to are corporations, right? And most of them, they don't talk. They're secretive secretive right they're all like a bunch of cloak and dagger stealing around alleyways because they got you know gun shy from you know from lawsuits or whatever right defamation or what whatever right you know plus plus your brand is always in free fall i don't know if you guys know this but the google's brand when it was peaked it was like early 2000s and i was talking to the public
Starting point is 00:06:05 relations folks and they were like yeah you know brands always decline basically over time i don't know amazon might be an exception to that right they've done really really well with their brand but you know yeah google google you know people decided they were evil like you know 10 years in they weren't trying to be i don't think so so yeah i mean like uh i think that companies need to talk more about what they do and what happens inside of them and the learnings that we can all get from each other that we don't share with each other i think it's absolutely ridiculous that people are so afraid to talk about the stuff that we all experience every single day in our corporate jobs we
Starting point is 00:06:50 don't share and you know what the time is it is time for sharing because tech is under attack because they're considered to have a monopoly on information you know like you know unbiased true stuff and that attack is gonna catch us real off guard unless like tech gets together. And right now it's all backward. I'm serious. You guys know this is happening, right? So like, I'm proud of the fact that I speak up when people are doing stupid stuff, you know, and I think more people need to do it. And you just need to just, if you've got a voice, like get it out there, you know, and if you've got something meaningful to say, you know, make it funny.
Starting point is 00:07:27 And more people listen. So you really got me ranting. That's one new brand new thought for me. Very well said. And in terms of the making it funny part. So like, I think this is unique to your writing style plus speaking style too. And I think that's what, at least in my opinion, makes a lot of difference. Where if I or someone else just goes online and says a bunch of angry things at people or at things that they are disagreeing with,
Starting point is 00:08:03 a lot of people wouldn't be happy, even the ones who would agree with it, because they would just see the anger. But then when someone reads your posts, they tend to always not, at least I do. And I'm also laughing while reading it or listening to you. How did you develop that unique style look you gotta be able to make yourself laugh right i mean like genuine you gotta think of something that's so funny that you were burst out laughing out loud and you're like oh i could never say that and that's the germ of your idea right there okay it's like okay how can say this and get away with it, right? And it's, you know, it's a bit of art, but I mean, like, you've got to practice it all day long.
Starting point is 00:08:53 You've got to, right, just see the humorous side of things and sort of remember it. And then when it comes time, you know, be bold, right? Say the funny thing. It's rough these days, right? But I don't know, for some reason, there's a lot of low hanging fruit in the corporate world, right? So when I have those ideas where in my head, right, I think of something and I'm like, oh my gosh, I'm like the funniest person ever. And then, you know, 30 minutes later, I go and I write it down. And then I try to, you know, like position and I'm like, okay, you know, okay, maybe not the funniest person I know. Is there a process you use in terms of...
Starting point is 00:09:31 So you said practice that all day. But more concretely... You get a bottle of wine. I actually quit drinking in 2016. But no, it's... I guess there's the Mozarts out there who like already have it well formed in their head and they just write it down and it's nice and clean. And then there's the Beethoven's that just like scratch it out over and over and over and over again until it's right. Okay.
Starting point is 00:09:56 I think most of us are like the Beethoven's, right? You know, you sit down and it's not right. You got a sketch of it. You know, some jokes in there, but some aren't landing or they're in the wrong order or whatever and so like it's you know the the writing process is pure generation and you're just trying to enjoy yourself and make a bunch of interesting points the editing process can take months i have blogs that i'm sitting on that i started writing last year that i still haven't published yet because they're not right yet you know and you can tell when I'm rushed and when people are rushing me out and they got to get a blog post out, it's not going to be as high quality when I can take my time and I can think it through
Starting point is 00:10:31 and research it and make sure the jokes still make me laugh. Two, three months later, I'll pick it up and go, ha, this is good. Why didn't I publish this? Oh yeah, because I said that. And so, you know, you go through this process, you know, right? Look, if you're not saying something that's, like, controversial, if you're not saying something that divides people actually fairly evenly, then you're not interesting. Right? Unless you're teaching them something, right, which is okay.
Starting point is 00:11:03 But, like, if you want to be interesting, you got to say stuff that's like, kind of like, you're not even sure if you a hundred percent agree with it. Right. But you know, you gotta be, you know, kind of, kind of thinking outside the box and, and, and also, you know, I don't know. Yeah. But that's the important thing, right. Is if you can go, if you can go back and reread it later and laugh then you know you got gold i like that do you have um these like archetypes in your head or like say proxies to friends or something such that you know that oh when they read this they
Starting point is 00:11:37 would disagree or like when they read this you would agree interesting that's how you form sort of like a 50 50 split sort of um yeah yeah yeah yeah and i actually learned that trick from like you know writers like stephen king and neil steffensen from their books like stephen king's on writing is really good kirk vonnegut did a really good one on it uh neil steffensen came to google and talked to us for like an hour and a half right that was a treat we were there like i don't know 40 or 50 of us in the room you know and you know we got tips from all of them of course the number one tip from every writer is write right get up in the morning and write and write and write and that's how you get good at it and there's a lot of truth to that but there's also a lot of there's a lot of
Starting point is 00:12:19 value in picking a person and writing the post for them one person and maybe having like a peanut gallery of other people that you know disagree and kind of just like think about how they're going to take it too right i absolutely do that i mean like i can even name the people that i wrote the last like five blog posts for i won't but i could like how do you find those people like um how do you yeah like out of all your friends or like you know people that you know like how do you find the archetypes uh you know i'll uh i talked to a lot of people through the industry and a lot of a lot of my old friends are like super super high up there now you know like they're they've got you know 20 or 30 000 people in their org you know massive you know fortune 10 companies or whatever and it's funny because the woes and
Starting point is 00:13:14 their their trials and tribulations are pretty much identical to the couple of hundred people companies and the series of startups and everybody's in the same boat right now right so listening within talk i think wow i could tell a story about something I saw here. And I know it applies to their org too. So I'll just kind of poke the bear a little bit. I'm going to do this on stage in Las Vegas in two weeks. I'm going to stand up and poke the bear a little bit. That would be fun. I'm giving a keynote at this conference.
Starting point is 00:13:46 So, well, yeah. I don't know. Where were we? We were talking about the art of writing. So you mentioned some of these books, like Stephen King's On Writing. I actually have it in my bookshelf. I haven't read it, but I will. Oh, it's great.
Starting point is 00:13:58 It's really good. Are there any other resources that you've come across that people could refer to? I mean, you know, I've tried, right? But I mean, no. I mean, like, ultimately, it's, it's like that, it's like that Twitter exchange with the guy who wrote the worst movie of all time the room right what's his name and somebody asked hey i want to get i want to start writing the screenplay what should i do and he replied start right i mean this is like fundamentally like well you know everybody says that everybody who's successful in any sort of a entertainment or whatever kind of business has been doing it for a long time look at you guys you guys enjoy immense success with this podcast.
Starting point is 00:14:46 And you've been doing it for a long time now, as long as high school. Right. Time really flies by. Well, I've been blogging now for, I mean, like, I guess, gosh, probably 20, 25, close to 25 years. And right. And so, like, you just everybody tells you this persistence, patience, just keep it up. And Neil Stephenson said this, too. He told us, he persistence, patience, just keep it up because, and Neil Stephenson said this too. He told us, he said, look,
Starting point is 00:15:12 your first novel is going to be a failure and your second novel and your third one, but eventually you're going to ride a hit and people are going to want more of it. And if you've got nothing, it's your first novel, they're going to be like, Oh, later. Right. But if you've got like an oomph, then they'll go and they'll, they'll make their way through it and they'll find value and stuff that maybe they didn't see before. It's really encouraging. But I know it's also discouraging because you're like, oh, man, I can't become an overnight
Starting point is 00:15:32 success. And nobody on YouTube, nobody out there is, right? That you've got to build it up little by little. What kept you going when, you know, in that six months of like publishing all these blog posts, right? Which I assume after you publish it, you're, in that six month of like publishing all these blog posts, right. Which I assume after you publish it, you're like, this is pretty fucking great. And then just crickets of like no sort of, you know, validation or no feedback from, you know, anywhere, like what kept you like keep at it?
Starting point is 00:15:59 Oh, you mean when I published all the Amazon ones, like when I joined Google or just in general, in like when there is not a lot of feedback on your writings. You know, I've gone through a lot of dry spells. Writing one of my blogs is so much work. It really is. I mean, you have no idea. The funny thing is I need to be able to, one of my rules is that I have to be able to basically write the entire blog in one sitting. And if I fail, I will go back and rewrite the whole thing in one sitting. So it has to flow. Now, during the editing process, they usually expand by 40% or 50%.
Starting point is 00:16:35 But – because I'm cutting stuff, but then other people who are helping me review it are adding stuff. Believe it or not, it's not me uh usually but yeah um uh i'm such a i'm just like i feel like everything that i say has to be new which is stupid i'm doing it wrong like to be really successful you're supposed to say the same thing over and over again right that's how you know uh demagogues work right but um i prefer to like not say the same thing over and over again because you can always go back and look at it. Instead, I try to find new angles and nuances to things and that can take a long time. So I maybe only publish
Starting point is 00:17:12 once or twice a year of anything serious. But what keeps me going is I eventually get pissed off about something. Time to... Right? I'm just r'm riled and that's what i know i'm gonna write that it's gonna be good right because i'm heated right but i'm also
Starting point is 00:17:32 kind of snarky so then jokes are gonna start flying right because i've seen him and so that's that's the formula right is you you think about it you let it rattle around you can let it bake and then at some point you get yourself worked up into you're in LLM generation mode, and you whip the whole thing out at once. So if we took an example of, let's say one of your recent posts, death of a junior developer, for example, which is an amazing post, we'll link that in the show notes, not that we need to, but we'll still do and people should check it out if we had to take that one like how what did it look like to write that one how long did you sit on it how long did it
Starting point is 00:18:10 take to write it completely and then what does editing look like yeah i started that one um probably and i started thinking i started realizing what i wanted to write about maybe in february and it didn't come out till. So it was a good three months on that one. And I am so glad that I researched this one a little more than usual, like in the sense that I like, I went, I went to a bunch of colleagues that I have a lot of respect for and found actually that some of them were like vehemently in favor and some of them were just like, nope. Right. So that was cool. That was cool. Right. cool right because i was like oh like i think both of these people are really smart and they disagree on this so we're on to something here right but i mean like it really made people mad like there's some youtuber right you know that like you know painstakingly read out all the words very slowly
Starting point is 00:19:00 and then got about halfway through and started judging it but the funny thing was his like followers like got into this heated argument about whether we matter or not as human beings i mean that's how fundamental the point is that i touched on i mean like come on seriously and they're like no we matter which is really funny because i am the definitely and that we don't matter right so that could actually be part of what's the resistance. But I'm basically saying, yeah, the old way of doing stuff, it's gone. Just let it go. Let the LLM do the work for you now. You're staring at a higher level.
Starting point is 00:19:35 You're not swimming. You're driving a boat. And people are like, no, that just means we don't matter. And it's funny to watch people melt down over this. I guess I had my ai midlife crisis just a little before they did like i had mine about a year ago where i just had an existential crisis where it hit me hard i was stunned i was like reeling because i realized that many of the things that i thought that i was that i kind of like my my value my sense of self-worth my identity
Starting point is 00:20:02 was tied up in my ability to do things like memorize long things or generate long things or whatever it's all just bs now like computers do way better right so like that was tough i think a lot of other people haven't gone through that yet so my blog really touched the nerve but i went through a lot of editing on that one we even took votes on the title we weren't sure if the title was going to be too harsh. Gene Kim, right, who's kindly offered to let me talk at the Enterprise Technology Leadership Summit in Vegas in two weeks, which is going to be awesome. He's the one that contributed, like, it was chatting with him that I realized this is hitting the whole industry. And that's when I realized, oh, wow. Okay. So this is big. And you know what? Like the funny thing is a lot of people came out, people were calling me
Starting point is 00:20:49 friends, like old friends, like retired friends were calling me. And I figured out the pattern. It was their kids are graduating from college and they were getting discouraged by my blog post. Right. And they're mad. Right. But the funny thing is like a bunch of other people called too all right uh we got calls from some very large very very large companies where you'd hear their name and go oh that's money and they have you know thousands and thousands of developers and a couple of them came to us and said yeah they've been seeing signs of this as well right we got we got confirmation so there's a huge change of foot and i was able to kind of like get in just at the right time and show people's nose in it. I think that blog definitely had an impact on a lot of people.
Starting point is 00:21:33 In fact, I forwarded that blog to a few of my friends who have their kids or someone they know who's about to enter undergrad and they were essentially trying to figure out or at least let's just say until last year their plan was obviously my kids gonna do computer science or the kid thought they would do computer science and now when they saw something like this or they just see lms in general like well does it still make sense should i still go on this route that i thought for the past four years that I should be doing? So when you get some of these calls, at least for the camp of people who have, let's say, their kids trying to go to school, what do you tell them? Well, I'm never going to discourage someone from going into computer science. I mean, it's an amazing discipline, and it'll give you the foundation that you need to be a great, you know, CHOP engineer, prompt engineer, you know, doing chat programming.
Starting point is 00:22:31 But, I mean, look at the... You saw the graph in there from Indeed.com, right, of software engineering jobs. And basically, they happen... Jobs come when there's money, and there's no money right yeah okay like there was that there was an anomaly i'm going to be talking about this in vegas but the zero interest rate policy and the trillion dollar stimulus package during cobus injected the covid injected
Starting point is 00:22:55 so much money into the economy that everybody had money for engineers and it caused all kinds of weird weird knock-on effects in the industry that i'm going to talk about. But, you know, like, there were jobs aplenty, yeah? And now that that's over, and moreover, right? Like, yeah, AI provided a bit of a bubble, a bit of a boost, but except in coding assistants, where we're seeing tremendous gains from AI, where else is it? No, it's just... I know that's a silly thing to say, but we know it's right around the corner. But still, investors are asking
Starting point is 00:23:30 this question. Where's the money? Because it's been a year, a year and a half. On these lines, so when it comes to publishing posts at let's say when you were at Google, companies that size typically have a policy for what you can write on their company's website.
Starting point is 00:23:49 You can publish on your own blog and you say, opinions are my own. The last few blogs that you have published are on Sourcegraph's website. And there's a marked difference. Like if I'm reading your post versus a post someone else wrote, all of them are good. Yours is way more entertaining. No offense to anyone else. Is there a policy at Sourcegraph that lets Steve publish the post when it comes out? Or do your posts go through the same review policy that others might go through as well?
Starting point is 00:24:32 Well, if I just said, I'm going to post this, post it, they would post it. But Sourcegraph are my friends, and I want to make sure my friends aren't caught blindsided. In fact, we've got one right now that was so, it's a really, really interesting blog. I mean, my God, it's probably really really interesting blog i mean my god it's probably one of my most interesting of all time but it's so sensitive that i basically have to write rewrite about three and a half or four pages out of 12 it's a big one because we want to make sure that you know we're sensitive i want to spend a couple more minutes on the writing part and we can move on to a lot of other topics. You mentioned when you want to, when you write a post, you want to write that in almost one sitting, at least the major ideas. Oh man, I was going to make a joke about, you know,
Starting point is 00:25:17 getting handcuffs. Like I was like, okay, you know, where are you getting the handcuffs? Like to cuff yourself to the chair? Or he's like like do you lock yourself in like a room and then throw away the keys like oh man still my joke running now cool i'm sorry continue please are there handcuffs involved let's just ask that first sorry um many times it happens to me where something gets stuck in my head where unless i do that thing i don't want to do anything else. Makes my family unhappy at times. Is that a similar situation here where you have this blog post or you're just so riled up that you need to write it down? So unless you do this, everything else takes a backseat. I kind of work myself into a frenzy, if that makes any sense. So like I'll set aside time and be like, I think I'm going to try to do the blog post this week.
Starting point is 00:26:09 I've usually got three or four at any given time that need to be written. Like right now I have two drafts that need to be rewritten and finished, right? And plus I've got two more ideas. And so I'll pick one that seems promising. I'll go back and read it, see if any of the jokes kind of make me laugh if I'm into it. Right. And eventually, you know, maybe maybe I won't and I'll just go program or whatever. But if I can kind of catch that feel of, oh, yeah, yeah, I remember now those jerks. And then at that point, I'm hooked. Right. And so, like, when I say one sitting, you know, I mean, like the reason I do it in one sitting, it's the whole what is it, the Edgar Allan Poe quote, you know, where he basically said, like, a good story has to be readable in one sitting. Yeah, you know, I actually and so if I type pretty fast and so if I write it in one sitting, then it's usually winds up being readable in one sitting for most people. And I find that that's a good. I don't know, it's a good forcing function, right? So that I don't write
Starting point is 00:27:08 forever. Sanyam Bhutani. And also that you actually write and finish. Yeah. And one last thing on this bit about just writing and rants. Have you ever experienced any backlash? Well, not people getting pissed off, but getting in your way, in terms of you want to do something, work somewhere, convince people, but something's getting in your way because of some of the things you've said. Sure. I mean, yeah. I mean, there are going to be a lot of people who, in this industry, who just don't like me. And that's going to be pretty normal if your name is known, and there's going to be some then yeah, they can get, you know, who knows, right?
Starting point is 00:28:05 But I mean, like by and large, you know, people are pretty respectful in our industry. And also I would say that my blogs have done more to open doors for me. I mean, like I've kind of developed a thick skin over the hate mail and the angry letters and all that. I mean, that was something that bothered me a lot more like 15, 20 years ago, right? But now I just realized, like, you could put out the best video game of all time and get a bunch of hate mail, and I'm like, oh, right? I mean, like, I saw that happen with things like Tears of the Kingdom
Starting point is 00:28:34 or whatever. It's like, oh, I get it. There's just a lot of angry people out there, right? So you don't let that part bother you. But yeah, I don't know. It's, um... Yeah. That's, yeah. That's fair. I had a follow-up for the, you know,
Starting point is 00:28:50 I know I'm not in the group being able to vote on the titles of the posts, but I love the AI midlife crisis as the title. Would you be interested in like diving a little bit more into that? Like what? Into my AI midlife crisis for real uh yeah i mean i guess sure i mean yeah loms are terrifying right i mean like i just like, I just, I don't think people, I don't think people have really,
Starting point is 00:29:26 most people have pieced it together yet. But I remember hearing, I don't know, four years ago that like, there were half a billion users of this chatbot in China. And this is before LLMs, right? This is with good models, but definitely not transformers. And I heard it's quite addictive, or it was, right? You got half a billion people addicted to a chatbot. That's going to happen here within a year, right? Because opening eyes, even warning people. You know, and it's like, it's so it's a combination of like, I worry very, very, very much about the social consequences, people's bank accounts are going to get drained. Right? Because you're somebody who's going to get a phone call, a banker is going to get a phone call from somebody
Starting point is 00:30:16 who claims to be you, and it sounds just like you and blah, blah, blah, right? Or you're going to get a phone call from a family member or whatever. this is terrifying because you could happen it could start happening like today yeah you know so i mean like the midlife crisis has more been like a kind of a rolling snowball where first i realized i don't matter right our brains are just neural nets you know uh and then i mean absolutely you can have beliefs beyond this of course and can can and do, right? But still, our brains aren't really particularly special. We'll be able to engineer them, right? So that's a tough hurdle for a lot of people to get over.
Starting point is 00:30:58 And then when you look at what's going to happen to our culture, to things that we cherish and hang on to, even hardened progressives, I think, are not totally prepared for how much that's going to change maybe i'm i mean like people call me a doomer though right so i don't know um was there any did you come up with any sort of solution you know including buying a motorbike to kind of counter react this midlife crisis? So like, I mean, like, just to give you one concrete example, I'm, I'm consider myself to be very, very good at arranging music for a guitar, whether it's electric guitar, acoustic guitar, whatever. I can play almost anything. Like I played, at one point I was playing all 24 Paganini's violin caprices on a steel string guitar, that kind of thing.
Starting point is 00:31:53 Hundreds and hundreds of pages of transcriptions, right? And as soon as LLMs came out, I was like, oh, well, that's done, right? No more of that. Like that's just stupid because a model will be able to do it. You just give them a bunch of examples and be like, give me a good transcription and give me a good arrangement. It's just a little bit of prompt engineering. That skill that I developed over all those years is just stupid now, right?
Starting point is 00:32:15 And it's like, so I don't do it at all. I throw it all away. I'd love to train a model. I'd love to keep doing it and use prompt engineering to make it my own music or arrangement or whatever. Ultimately, all the clever work of mapping fingerings and voices and doing inversions and stuff like that,
Starting point is 00:32:34 the model's going to do that. Basically, a lot of things that are pattern matching are almost tedious that I got really good at in my life. I wouldn't even do now. Like, why would you do it? You guys look really depressed,
Starting point is 00:32:50 so maybe I should talk about it. I think, so, we are expecting a baby in a couple months. Well, congrats. Thank you. Some of these, on similar lines, when I think about AI LLMs and all the pieces you said that we have come to cherish as part of our culture, I do think about that. And then I find myself without any answers. And I put my hands up and it's like, what am I going to do? Let's just roll with it. That's right. That's right. Roll with it. Big wave coming in, surf it. So eventually, just at least in my head right now, the way I'm making peace with it is humans somehow figured out a way to evolve with circumstances changing.
Starting point is 00:33:35 This is one of the circumstances, maybe a bigger one than others. And where some of the skills mattered till now, which may not be relevant anymore, like memorizing stuff, for example. Like this is, I don't know about many people growing up, but at least back in India when we were growing up, the kid who remembered names, the kid who remembered numbers, the kid who could do some of these things,
Starting point is 00:34:00 like, oh, I can look at that car's number plate and know exactly whose car that is. Like these kind of stupid games used to matter in a way. But at this point, like, memory, do you care? Like, pick it up, make it general. I can recite pi to 50 decimal places because I learned it in fifth grade. Exactly. So, like, these kind of things may not matter anymore.
Starting point is 00:34:20 But I guess there will be different things that will matter, similar to not having to worry about swimming, like you said, but riding the board and what that looks like. That's right. We're leveling up. We're leveling up. That's what's happening. Like I said before, we were swimming and now we're driving a boat. So you're not just driving the boat, you're building one too. Talking about building AI products some time back. So you joined Sourcegraph, I think, towards the end of 2022, if I remember correctly. You joined as head of engineering, and then you transitioned to being an individual contributor
Starting point is 00:34:57 working on Kodi, which is Sourcegraph's AI code assistant. Can you tell us a little more about that transition? Sure. It's not the first time I've done transitions like that in my career. I worked my way up at Amazon at one point to a senior manager and then just handed it off to one of my directs because she was enjoying it more than I was. There's a lot of people side of management that a lot of people thrive on and they love it, you know, and they want to mentor people and they want to guide their careers. You know, for me, you know, I've done that for a long time. And for me, these days, it's more about what can I build and how fast can I build it? Right. And, um, uh, it would have been fine. I would have been fine to stay in the head of engineering role, except that AI was so new and so different.
Starting point is 00:35:50 And I was doing so much non-engineering stuff in my role that it was, I was starting to feel like I was never going to catch up. And I started getting worried, right. Because like, for example, I never could have written death of a junior developer that, that, um, for example, I never could have written Death of a Junior Developer, that post, had I not made that transition and been coding, like, the whole first half of this year as an actual engineer, like, helping us get, you know, get the product out. And I'm so happy I did, right? And now I can see, I can see where it's going in a way that I never would have been able to see that in a management leadership role. Now, will I go back into leadership someday that maybe possibly right but i mean with this ai stuff because like you said we're building the boat uh it is the time of my life and i'm not i'm not exaggerating the slightest i thought about this i've had some pretty darn good times in my life but this is it this is the best in terms of just my professional career.
Starting point is 00:36:46 Having a lot of fun, right? Because like there's a, I blogged about this a long, long time ago. I think it was called Dreaming in Browser Swamp or something like that. But it was basically like I was talking about this feedback loop that you get into when you're building an IDE or an editor or something that where as you build it, you're making yourself faster and it's so addictive. Yeah. And that's what we're, and we're doing it. We're doing it with Cody now and,
Starting point is 00:37:09 and everything that we do is wiring up this deeper and deeper, you know, integration with the LLM and it, there's nothing like it, right? You're just like, you're running. It's like you're, you're, you're, you're in a personal hovercraft or something. And, and you wonder where, where's it going to, where is it going to lead? Where is it going to go? Because not only are the engineering, the tools, and the protocols and stuff getting better,
Starting point is 00:37:31 the models themselves are also getting way, way better, really fast because of the competition. And so, you know, probably this time next year, it'll be commonplace to have models and workflows that span big graphs where you've got to get an application built and the tests and the CI CD and you've got to get it deployed and maybe even look at the logs. And we're finally at a point where you can expect a lot of that stuff to get done for you in a couple of passes with the tools that we'll have.
Starting point is 00:37:59 A couple of years after that, this is what I'm saying what happens to all the I mean, anybody who's doing old style programming? I become a chop engineer. So got to go be shot. There's a lot of things I want to dive a little deeper into. Sure. Before we go there. You said just buildingodi is like you having the time of your life. What's different about building AI products than it is to build something else?
Starting point is 00:38:32 And you've built a lot of things in your career. I mean, like, it's the, look, it's like driving. Like the number of red lights that you hit has a big impact on your sort of perception of the ride. And like when I was programming in the 90s, if you got stuck on something, you could expect that it might take you days to weeks to get it figured out because you'd have to go look in books or try things or work with colleagues or whatever. Right. And so you just like it was like we were in slow motion and it's gradually beginning faster. Google search made it a lot easier to find stuff. And then Stack Overflow made it even easier. You start asking people stuff and getting answers. Each one of those was a big accelerator, yeah?
Starting point is 00:39:17 And each one of them made programming more fun, didn't it? Oh, absolutely. I mean, if you went through any of those transformations. And cloud computing, I think think made programming more fun i know i mean it's a pain but it was a lot more fun than running i had my own computer in a data center in downtown seattle and when my game would go down sometimes it was because the computer like wouldn't reboot and i had to like go in the middle of the night and get a key card and reboot a server on the 13th floor of this horrible hot building. I mean, cloud competing was a real, real level up for us, right? And this is no different, right? This is like, wow, this is a huge level up. It's a toy. It's a fun toy. It's like, you can make it do things. And you're like, well, I've been doing this for
Starting point is 00:39:59 six months now. I still didn't know it could do these things, you know? So, so that's kind of like where I'm at right now. That's why that's why I think it's like time in my life. It's like, because programmers, we like to build things that people use, build things that have an impact. And, and that that gives us that dopamine cycle, right? And so if you're speeding that up, it's getting more addictive. Speaking of that history, so you were actually retired before coming back to Switchgraph. And you mentioned before you transitioned from management to IC. I'm curious, what are some of the skills that are really useful in just picking up a completely new domain, right?
Starting point is 00:40:45 Like all this stuff didn't exist, right? Like the last time that you were like, you know, like doing coding. So then like, yeah, like how do you go about when diving into like a completely new domain? Like what do you do? You know, there's an interesting question behind your question. I feel like lurking there, right? Please help me up if that a question. Well, I mean, like it's related to something like lurking there, right? Which is... Please help me up if that a question. Well, I mean, like, it's related to something we talked about earlier, right? Which is,
Starting point is 00:41:10 if I'm going into software engineering, should I be going into software engineering, right? So, I guess, let me just make absolutely sure, state your question one more time, make sure I'm going to answer the right one. Sorry. When you go into a new domain, like building an AI product now with Cody, like how do you go about picking up the new skills that are relevant to building it? Yeah. When AI came out, a lot of the folks, you know,
Starting point is 00:41:48 that I worked with didn't want to have anything to do with it. Like they just didn't, they weren't interested. This was people outside Sourcegraph or outside Sourcegraph? Both. Both. And they just, you know, because maybe it was a misconception. They didn't know that it was, it wasn't like a bunch of PyTorch anymore.
Starting point is 00:42:08 It was engineering involved now. But for whatever reason, you know, a lot of people feel like the entry into this new domain is actually so steep that they're scared of it or worried or they're just putting it off. And so, like, seriously, I mean I mean like getting into a new domain, I mean the best thing you can do is be young. I'll tell you that right now. It's harder for me. And so like when I got to learn a new programming language, I can't just like read the book in two hours and like know the programming language
Starting point is 00:42:41 like I could 20 years ago. So that helps. Like just spend the time while you're young. Learn as much as you can. But seriously, I mean, don't be afraid of new domains. I mean, we're all kind of reinventing our jobs kind of all the time anyway. And this is necessitating that we all reinvent our jobs as prompt engineers. Even if you're doing regular programming, you're going to have to do a fair amount of prompt engineering from now on.
Starting point is 00:43:10 Right? So how do you learn it? Well, I mean, gosh, there's so many more resources now than there used to be. Right? But, you know, what I would do, I'd use Chop to figure it out. I'd go into Emacs or ChatGPT or whatever, go into Kodi, and I'd start asking there. Because why bother with Google searches anymore?
Starting point is 00:43:31 You're going to get summaries from the AI, right? The AI knows how to even present it to you at your level. You can say, I'm a complete newbie, or I actually know a similar domain. Can you compare it to that? So the answer to your question is different than it was a year ago. How you ramp up in a new domain is you go ask the LLM about it.
Starting point is 00:43:51 That's my opinion. It'll make you a better engineer. Because there's a lot of nuance. There's a lot of tricks. You know what? There's a lot of people out there today who still possibly listen to this podcast. Yes, you, who think that CHOP is not a thing
Starting point is 00:44:06 because uh they asked the lom to write some tests for him and the tests were wrong and therefore lms are dumb which is just like saying you know a google i did a google search and it didn't come up the right answer so google's dumb right i'll tell you who's dumb there it's not google and and and it's it's because people don't realize that fundamentally, I mean, you have to still be patient and persistent and make it your own when you're doing shop. So you have multiple questions around trips with the LLM, right? People aren't doing that, right? They're not doing that. But that's, I mean, fundamentally, I mean, prompt engineering and I'm not as scared.
Starting point is 00:44:40 If you go back and look at my, seriously, you go back and look at my chat history in Gemini, in Cloud, and in ChatGPT, you'll see that I am ramping up on new domains right there in place as I'm coding. Haven't used WebSockets in 12 years. Let's go through the fundamentals again, right? Oh, man, I haven't used Windows in 15 years. Walk me through how I, like, install it. I mean, literally anything you want to know, you literally ask the LLM while you're coding. And so everything that you're doing becomes this like, it's in a blender, it's blurred together.
Starting point is 00:45:12 You're working and doing all the things that you need with the assistance of your coding assistant, your LLM. And you're cranking out a bunch of code, but you're not the one writing most of it. Do you guys do this? There's like a bit of a cycle for me as well where at some point i was kind of like you know that meme of like can't tell you the lm really bad or i'm just really bad at prompting the lm and usually i think it's the
Starting point is 00:45:36 latter so it took me a while i think to learn like oh yeah i need to you know really be strategic and then i think to a point, like in terms of reducing red lights, one thing I really realized it was like, oh, if my prompt is bad, I can just ask the LLM to improve the prompt. I think that was like the biggest unlock where I was like, oh shit, this is like way better than what I would have asked it.
Starting point is 00:46:00 So yeah, it's been pretty big. Yeah, I read papers on prompt engineering all the time So, yeah, it's been pretty big. Yeah, I read papers on prompt engineering all the time, and that's a new one, right? It's rephrase and expand. You tell it and you'll get a better prompt. But what I found, honestly, truthfully, okay, is that I get good results without resorting to special prompt engineering techniques. Models are good enough now that just a regular conversation with the right context gives it everything that it needs. And the context arguably is more important than the prompt.
Starting point is 00:46:44 This is my opinion because it's going to get – I mean, you want prompt engineering – you want it to be really, really, really good if it's doing some very specific task for you. Of course, you want the prompt to be really good. If it's the right unit test prompt, we're going to put a lot of work into that. But for solving any given random problem that you're doing during the day, it's a throwaway prompt. So you don't really need to put that much effort into it. And instead, what you've got to do is you've just got to recognize that some of the time it's going to just make stuff up. And you'd be like, no, no, no, that's made up. And they, oh, apologies for the confusion or whatever they tell it to say these days. Right. But you just you just you just steamroll past that.
Starting point is 00:47:14 You're like, nope, that didn't work. Nope, that didn't work until the thing does the thing you want. And if it starts to go into that circle, you mentioned this. Sometimes it'll start giving you the run around and you realize the model cannot make any forward progress. Just treat it like a chess match, right? If you hit the same position like three times, it's still going to go take the whole conversation and take it to the next LLM over, right? Just go in a circle and say, this LLM is having a lot of trouble. And the other LLM would be like, they sure are.
Starting point is 00:47:40 Here's your problem. And they'll like tell it out to you, right? It's so cool. It's kind of like the magic property of second hashing right second secondary hashing the second hash function almost never ever ever has a collision just because you know because the odds and i just it's just awesome that you can go to a second lom and pretty much always get the answer that you were missing the first time around you got a third lom interesting i need to try that oh very cool dude this is a chop technique there's a bunch of it i'm starting to do some videos on it and whatever it's like there's an art to it
Starting point is 00:48:11 should do a post on chop techniques i think that'll be super helpful for a lot of people out there that is one of my uh completed drafts that needs to be rewritten to be funnier but yeah it's ready to go awesome uh thanks so one thing that you mentioned there's a lot more engineering to this now to building air products i was curious generally when you talk to a lot of people who are not building air products or software engineers they also have this fomo of like hey kind of missing out but you know i'm not a machine learning engineer and they may not have the right opportunity either at their own job or they can't find one these days because it's generally harder.
Starting point is 00:48:51 But just to put things in context, building AI products at this point where you're not necessarily training an LLM yourself, but let's say you're building something like Kodi. How much engineering work is that versus how much researchy work is that? You get to decide where to turn that dial. I mean, it is a dial. And I mean, look, why is that the case? It's because there is sort of like
Starting point is 00:49:20 infinite low-hanging fruit in the space right now. I mean, really low-hanging fruit. Like we're like even just, I think two weeks ago, I was in Krakow in Poland for, we did a hackathon, a year of hackathon, right? And I realized one of our teammates, we were chatting and we realized that nobody has gone and fixed our chunking for embeddings and it's been a year and we still don't,
Starting point is 00:49:42 like an embedding will literally, like the chunk will be from the middle of one function to the middle of another function which is just totally useless for the lrm right there's a low low low hanging fruit right so of course we fixed that yes sorry you know but um and we have lots of other things besides embeddings that can get us indexes but you get the idea right it's just like the the road is so clearly set out for you it's so obvious what to do there's too much to do and so you got to decide okay all right we're how are we going to allocate our resources this is a strategic sort of battle early on in the game like last year i thought we were going to like really double down hard on you know on the ai side you know and we've got it we've got a great ai team
Starting point is 00:50:24 and they're doing great stuff you know fine tuning and eliminating bias side. And we've got a great AI team, and they're doing great stuff with fine tuning and eliminating bias from models. And they've got a trained context ranker. Because what we found ultimately was the biggest bang for the buck that you get in the coding assistance space, aside from the LLM itself, the biggest bang for the buck you're going to get is it's not the fine tuning models, right? It's it's and it's not the prompt engineering.
Starting point is 00:50:50 It's your context. Okay, it's because because you get a lot of tokens. You don't get anywhere near enough, but you get enough to put a lot of context in there, right? And even if you're doing raw chop without a coding assistant, if you can just shovel screenshots and paste in logs and stuff, right? That context means everything. Because every time you talk to the LLM, and I think people have trouble getting their heads around this, every time you're calling a phone like, you know, around the world, and the person's never met you before, you know, hi, I'm a programmer, and you got to explain your problem to them and give them all the context that they can give you the answer every single time you know which is why coding
Starting point is 00:51:30 assistants are actually so useful in this game yeah so you had this blog post cheating is all you need i think it came on sometime last year again one of the other amazing blog posts we'll link it in the show notes and recommend people check it out. You had this very simplified diagram of how Kodi works, which could be a diagram for any coding assistant for that matter. It's like you have a human developer on one side,
Starting point is 00:51:57 you have the assistant in the middle, and then you have an LLM and you have some source that is giving you embeddings, etc and you tie all of this to ensure it right it is the rag uh how much of that has changed since then uh how much of it has changed okay so like in in other words yeah go ahead rag is still big everybody's doing doing rag. Rag is well, well known and acknowledged to be the right way, right? Because
Starting point is 00:52:30 fundamentally, you got to pick the right context put into the that's, that's, that's the goal of rag, which is to use basically local local, local searches. Now, it's definitely expanded in terms of like of the techniques and the approaches and things that go into RAG. A customer of ours introduced me to a really, really interesting new kind of source code index, for example, that I think we can bring in. I've got to go write it up. It's just mind-bending. People are innovating like crazy in this space. Yeah. So fundamentally hasn't changed. So then you got to ask the
Starting point is 00:53:09 question, well, if they're all doing the same thing, like how is your coding assistant differentiated from the others? Right. And to some extent, you know, we thought we were going to maybe differentiate on like local AI, smaller models, you know, like we do with our content ranking. So to the extent that you can do that with RAG, yeah, we can differentiate and we are. But for the most part, the effect of the actual foundation models in each generation is so overwhelming compared to the other stuff that you're doing that you pretty much just got to decide like, okay, how am I going to ride this train to maximize value for ultimately myself? I'm building this for me, right? For programmers. And yeah,
Starting point is 00:53:47 what we've decided is that chat is the future. Chat is where it's at. Everybody's been so focused, so narrowly on completions. Oh, yeah. I never understood it. Completion rate.
Starting point is 00:54:01 Yeah, and car. Yeah, completion acceptance rate. It's just been the industry's been obsessed with it. And completions are like, they're okay. I mean, they're kind of gimmicky, right? I mean, you're coding along, all of a sudden it goes, and it finishes it for you, and you're like, dang, that's pretty clever, you know? But that's not, I mean, like, most of what you're doing.
Starting point is 00:54:19 Most of the time you're not doing code that's conducive to completions in a way that they would help. Whereas if you could, plus it's hard to guide the completions. You get into this mode where you're like putting comments into the code and hoping it picks up on the comments and right. So like there's clearly what you need is sort of like prompted completions, right? Which, which we have with inline edits, which is a really cool feature where you just type,
Starting point is 00:54:41 make these changes to the code and it'll do it, which is sort of like a directed completion. And we're even working on some modalities kind of between those two, like super completions, right? Things like that. But then completion, they're almost a niche compared to how often you use chat. Once you realize that chat covers all phases of programming, right? From the generation of the code to the fixing of the code and the diagnosis and the troubleshooting
Starting point is 00:55:08 and every part of the lifecycle, chat can help you with it and accelerate you. And at that point, completions just fade into this gimmicky background. And I think most people haven't made that transition yet, but they will over the next six months. And they're going to realize, oh, wow, the coding assistants that focused on chat are the ones that are going to help me the most. And that's what you're going to find. So you mentioned this in your blog post too, after Chad, GBD4 and Clark 3.5, Sonnet, we saw this huge jump in the performance of coding assistants. And just the understanding of the code base base you could ask them to do complex things
Starting point is 00:55:46 like at times i've asked it to refactor certain methods and before this you could try i don't know how many loops with how many other lamps and they would just not make progress but now it's been very different not exactly how amazing either my prompts are really bad or lms aren't that great uh one of the two but they're not exactly where you want it to be. But in terms of the improvements that we are seeing and some aspects that you mentioned, like focusing more on chat than auto-completion, there is an aspect of your foundational capabilities are just improving by so much. And there's a step function improvement with every new foundational model.
Starting point is 00:56:22 And on top of that, now you're differentiating with features because models in a way are commoditized to an extent. Everyone has access to it over an API. So then how do you leverage that model becomes a differentiator? So it goes back to regular product building fundamentals. How easy it is to use? Are you providing the right things at the right time to the user when they need it. So a lot of the improvements that we see today, apart from the models, what else do you think plays a role right now? And how do you envision this would be better?
Starting point is 00:56:58 I'm really glad you asked that. I almost could have prompted you to ask this. So I think that the piece that I'm most interested in, because obviously the models are going to continue getting better and better, and the tools are all going to continue sort of like copying each other and converging, as tools will do, right? So the piece that I think that's really critical that's missing that everybody needs really desperately and they're asking us for,
Starting point is 00:57:23 and we're making good progress, is the platform. you knew i was going to be the platforms at some point and so to me the real value in kodi is that we are building it as a platform i mean the internal the guts are very platformy so we've got a command line tool you can use to integrate with your workflows and we've got sort of like a set of curated platform APIs for connecting clients, but also for connecting your own context. We've got an open context protocol and like, there's so many surfaces, right? Because you've got to bring in all of your personal context, your wikis, your private code, whatever. You may have your own personal model. So K coding also becomes a clearinghouse
Starting point is 00:58:06 for you to mix and match what you want. Because we've got users and customers that really love one particular model or another for whatever reason. And a lot of coding assistants, they're pretty much a bundled deal. You don't have to think, and it's great. They give you a model, and that's the model you get.
Starting point is 00:58:22 And for people who just want to just start going, they're great. They're fine. But if you want a little bit of control over it, if you're the kind of person that builds your own PC, you want to build your own tools, your own personal. If you're the kind of person that has a bin directory with scripts in it, and you like to tinker with your tools to make yourself even faster, then I think you're really going to like Kodi
Starting point is 00:58:43 because we're building it for that kind of user. It's actually a necessity because enterprises have such whack requirements, right? So you kind of have to build it as a platform. Sanyam Bhutaniya- What are some of the use cases do you see that could be built on top of the platform that are probably not as obvious to many people? Well, I mean, that's a good question. I mean, like, there's some of them are kind of feel like science fiction, but I'm sure we're gonna we're gonna get there. Oh, sure. All of this was science fiction three years
Starting point is 00:59:16 ago. Right? Yeah, right. I think the Holy Grail is batch, right? You got to be able to basically like run the L and you got to be able to basically run the LLM. You've got to be able to drag the LLM's nose through all of your code. Yes. Right? So what we do now is we do it at ingress and egress. Okay, a PR just came in, have the LLM look at it and see if you can do the linting or whatever else.
Starting point is 00:59:42 And that's great. And you've stopped the bleeding, basically, like codes that are in your code base. But what about all that existing code, right? That's the holy grail. You know, our product actually has a really cool batch engine. It's similar to one that Google built internally
Starting point is 00:59:56 that Google really should have open sourced. It's called Rosie, but they didn't because they never do. And it's pretty cool to be able to like, like know everybody that you're about to break right at least in the open source world and be able to like even go and refactor them and send them a pull request saying i'm about to break you but if you accept this pr you'll see that it fixes you that's nuts okay being able to do that yeah now imagine being
Starting point is 01:00:20 able to do that with cody imagine being able to do that with AI, right? Because now, I mean, it can do, I mean, these things can do remarkable things. You can basically give it high-level instructions for a file, and it'll go ahead and port it or whatever it is that you need to do. So, yeah, that's the Holy Grail. You know, when do we get there? I don't know. I don't know. There's so much to focus. It's like I told you.
Starting point is 01:00:41 You've got to pick where to spend, where to turn that dial. We've got people chasing the AI side because that's important we've got people in the context we've got people making the clients really really you know slick and good we've got people you know working on the uh the mixing and matching of you know services and and and models in the back end we're spread thin everybody's spread thin and we're just we just hope that we're making choices that are going to make the most people the happiest. That's where it is right now. So one of the aspects you mentioned,
Starting point is 01:01:13 like the holy grail of being the batch, like today, if you think about LLMs or many of these coding assistants, they're essentially assistants. And I think you said it well, they are safer in the hands of a senior engineer. of these coding assistants they're essentially assistants and i think you said it well they're safer in the hands of a senior engineer i was probably going to go where you just already prompted it is like you don't know when it comes but the thing that i was thinking about is it
Starting point is 01:01:36 would be really nice to have not a coding assistant but a coding partner of sorts where it works on your instructions, but you trust its output as if you were an office unit engineer. So the part about that you said on the legacy code or the existing code base, and I think that's where a lot of value lies too. And I would say majority of the organizations struggle there. We know there's a lot of code which is dead in many cases no one goes and cleans it up sometimes you want to do a big refactor and just updating libraries of all the clients is extremely painful in a large code base being able to do such operations which require
Starting point is 01:02:15 chain of thought breaking tasks down into pieces but then executing over hours or days sometimes is this a direction where coding assistants would eventually go in your perspective but then executing over hours or days sometimes. Is this a direction where coding assistants would eventually go in your perspective? I mean, dude, your whole question was tainted with the T word. You said trust. There's no trust, right? And so when that happens,
Starting point is 01:02:43 because it will happen, somebody's going to have to go through every single step of it and validate it. Right. We're going to be very was it linen trusted verify? Or is it crucial? I don't know. That's where we're at. Right? Don't trust and verify. Reagan Reagan, trust by verify. So, so yeah, that verification, that validation, you know, it happens in the small when you're doing chop and you validate it yourself. Your IDE can provide you a very quick feedback loop because you dump it in and it goes that
Starting point is 01:03:15 doesn't compile or that API doesn't exist and you're like, no, right? But there's larger feedback loops, larger and larger ones that go all the way out to production and come all the way and via some logs or whatever. And those things they're going to get looked at by models and models that are trying to do those kinds of things, workflows. And it's going to be just like chop is right now, which I wish more of you were doing it and I'm doing some videos, but basically it is an assistant and you're still doing the work and you need to make sure
Starting point is 01:03:45 you're, you're the, like if you build guitars or cars or whatever in your garage, right? You can bring in assistants and you can train them up, but ultimately it's your guitar, it's your car, right? You got to make sure that the right things happen and assistants drop stuff. Right? So I would never get out of that mindset i know you want a partner i know you want someone you can trust you're not going to get it okay settle for an assistant for now helps me keep my job in a way so it is job security absolutely and you know what i mean
Starting point is 01:04:18 despite the doom and gloom you know nature of the obviously i had a provocative title in my blog but i mean like you can do that validation yourself as a junior engineer right because it'll spit out a bunch of stuff and it seems plausible but you can use other tools like other lms or compilers or whatever to go in and do the valid tests to do the validation that you need to see yeah it did work now you're going to miss things you know probably like you know it's inefficient or whatever, something that it did that it didn't need to, right, if you're a junior engineer. But if it meets the basic spec, right, so I mean, I don't think it's all doom and gloom for junior engineers at all. They're just going to have to get really, really good at validating.
Starting point is 01:04:58 And you're saying eventually you would have models which would also help you validate. So keep feeding. Yeah, right. a mix you pipe from one end to the other. I mean, as soon as you start doing a set of validations, that's the same, you know, like every time, then you need to train them. You need to embed that whole thing, right? Train a model that knows how to do that. So CHOP is definitely a useful skill
Starting point is 01:05:22 and not everyone is doing it. And even the people who are, some are better than others. Do you evaluate for this in interviews anymore or at all? Not anymore? Oh, my goodness. No, we haven't started asking it as an interview. It's too new, right? That's interesting.
Starting point is 01:05:40 And, you know, I mean, fundamentally, we would still be asking people. That would be like asking people, can you type? Like, we might ask people some prompt engineering questions, like, just to see if they have any common sense about it, I guess. But mostly, yeah, you're always still focused on fundamentals, right? Computer science, timeless stuff, ideally, in interviews. And in terms of hiring junior developers versus senior developers, this is at least a shift that I see at LinkedIn. And I think it's probably true across the industry right now, where overall there are fewer positions open.
Starting point is 01:06:17 And the ones that are, are for experienced engineers. And when I say experienced, I like how you described it, where a person who has an idea of what needs to be done has a framework of how they would do it, and they can control the LLM in this case. Do you see that affecting productivity of organizations that you speak with? You mean the shift towards more senior? Yeah, I mean, sure. Yeah, they're getting more productive. But, you know, that's short-term gains, right? What long-term consequences are we going to reap from not hiring enough junior engineers? We become dinosaurs.
Starting point is 01:06:55 Companies tend to get a little bit short-sighted. I mean, like, have you ever been in a company where everybody there was, you know, like retirement age? I've, you know, been around companies like that. You know, it happens. And, and it's really, really difficult. It's at that point, you've got Japan's problem, right? You know, it's, at some point, it's, it's kind of not reversible. You got to have, you got to have young people entering into the workforce and learning this stuff. So continue doubling down on that and hiring hiring junior people and then just i don't know i think i think we're just gonna have to figure out um like a new workflow like there's been a lot of people suggesting that maybe the junior folks can
Starting point is 01:07:34 crank out a lot of the work and senior folks can kind of like more do that second level of betting but uh i haven't seen anybody fall into that yet. Everybody's working as hard as they can and really planning for the future. It's just such a big race. But yeah, it's a huge problem. And there is this thing called Devin. There's a company called Cognition.ai. I'm curious.
Starting point is 01:08:00 If you have seen it, what's your take on it? I didn't see the demo. I heard people talking about it, but I don't think it comes down to the T word again, trust. I ain't going to trust agents until they're trustworthy. Not before, not a jot before then, which means I'm not going to be an early adopter of them unless they have a mode that allows me to use the agent as an assistant or it does part of the job and then i tell it where it went wrong with chat and then it can continues the job if they can do that like human in the loop you know driving it along and steering it then i think they'll land a lot faster and people will trust them a lot faster but my my my suspicion is that people are they're chasing investor dollars and so they're trying to do something that's hitting home runs, and they're not going to hit it. Not in the next year, 18
Starting point is 01:08:48 months, I don't think. But I've been wrong before. So similar to coding assistance, there is another aspect that engineers care about, which is understanding how the existing code works. And you mentioned batch in case of Kodi and Sourcegraph. Is it a direction which you're pursuing where one could ask questions of the code to understand how it works? And I recently saw a demo, I forget the name, but they had this thing called, which would basically generate a wiki out of an open source code base. So I could just go go and say how does react work or how does kubernetes work or aspects of it yeah yeah this is it this is an idea this is the idea i mentioned earlier in the talk that one of our customers pitched to us and they actually got it from google via another customer of google so this is spreading
Starting point is 01:09:40 what you're talking about is i've look it was hard for me to get my head around it, but I view it as a new kind of source code index that's complementary to a search index or a graph, right, that a compiler would build, or embeddings, any sort of index, right? They all have different, you know, strengths. There is a new kind of index emerging, which is generated by LLMs and it's a semantic index. And I think they're going to have incredible, they have incredible potential. I know some people who are building them now. We will be looking at them for sure. I'm excited about that direction, but that is, that is smoking hot new. That'd be amazing by the way. Like wikis and dogs get out of date. This would be pretty neat.
Starting point is 01:10:26 This customer spent a whole afternoon educating me about it. Why? Because they didn't want to build it, right? They wanted me to build it, which kind of makes sense, right? Because it's kind of rad. So, yeah, I'm getting chills. This is a new direction, right? It's so weird.
Starting point is 01:10:45 You're basically building this document store, this semantic index that doesn't have to be human readable. It just has all the semantics that are unpackable by LLMs. And then you can have business owners who can't look at the code necessarily. They can be going into legacy code bases of 20 million lines of COBOL or whatever, your company doesn't even understand anymore,
Starting point is 01:11:04 but you're dependent on it. And they can go in and actually start making like informed, not just questions, but potentially even start, the company could start doing refactorings now that are like tractable when they weren't tractable before. And trust me, I know a lot of you out there that have intractable migration problems, right? Trying to get your monolith split up or whatever. Like this is going to be a game changer for that. A teeny tiny benefit of this would be developers getting less pings from their managers about how does this thing work?
Starting point is 01:11:34 They could just go ask. It is one of many benefits that this structure has. And I'm just, it was weird. It's like a discovery. You start realizing this is an inevitability. Like people are all going to figure this out, you know, is use the LLM to explain all the code in great detail. And then now you know how it works in ways that you just couldn't before.
Starting point is 01:11:57 Now, I mean, like how to build that index is still a wide open question. What's the format of the index? What's the granularity? Do you run it at the function level, the file level, the module level, the graph level? We'll see, right? But it's really cool that a lot of people are innovating on this right now. And a lot of developments we see right now are on the left side of the developer's cycle, in a way, which is code assistance to help them develop code or the summarization in a way or the code understanding semantics of the system and then helping you understand how
Starting point is 01:12:31 it works. There is this entire world of things on the right side, which is when system is running in production. And you can't reason about a system, especially in the service-oriented architecture, where you have like 2,000 things talking to each other at any time with configurations and somewhere else, secrets somewhere else, and they are just connected via this network. Do you see any movements on that side, which would help one understand the production environment better? I mean, I'm sure there's like startups and stuff doing that, but we view that as a subset of the context problem. Companies came to us and immediately they were like,
Starting point is 01:13:09 oh, Cody can index all our stuff and then we can ask questions about it. Then can we throw our wiki in there? And we're like, yeah. And they're like, well, can we throw our issue tracker in there? And we're like, yeah. And all of a sudden they want everything in there, the logs and whatever. And so that's why I said we're building a platform with an open context that allows you very simply to basically allow other contexts to get put into your workflow.
Starting point is 01:13:34 It doesn't have to be a query. It can be a CICD workflow that you're building, right? Those platforms are huge. Okay, I completely missed then what you meant by platform because this is fascinating. So essentially, Kodi's, while the way you interact with it is through the coding assistant interface or the chat interface in your IDE,
Starting point is 01:13:55 but the context it has is beyond just the code in the repo. So you're saying... It is, it is. It's negotiating. You can mention URLs and stuff, so you can slurp down now in Kodi. It's negotiating. You can mention URLs and stuff. So you can slurp down now in Kodi. It's actually quite, it's funny. It's not the way we thought it was going to go. And our AI people are a little bit indignant, just a little bit, right? Because they're like, well, technically
Starting point is 01:14:18 you shouldn't have to figure this out. The model shouldn't be able to figure this out. And I'm like, well, there's your operative word word should. All right. So why don't we just go ahead and work with reality, which is that we're going to work. We need control over the context. We need to be able to sling it around like gun slingers. I mean, slice it, dice it, prune it, go back and rewrite it, edit history. Your conversation becomes the dynamic context, right? That's going to help you solve your problem, whatever it is. And so, yeah, you need full editing ability to go back and rewrite that thing, you know? And we decided to go down that path with our AI people kind of running after us to try to, you know, model it, right? And that's given us just tremendous flexibility. That's what I mean by platform.
Starting point is 01:15:00 We can integrate on many different surfaces. We can integrate on the model, the backend. We can integrate your context. We can integrate at the repo level or with your particular tools. That's a lot of work. It's like three times much work to build it that way. Then people can build stuff like what we just talked about. That magical document store, you know, and,
Starting point is 01:15:27 and integrate it into your tools. And this is why I'm telling people that the, the growth is exponential, that it's only been what, 18 months since GPT three, five came out, you know, or whatever,
Starting point is 01:15:39 three GPT four. And, and, and that's kind of garbage compared to what we have today. The next 18 months, isn't going to be, you know, like, as much as happened before, it's going to be significantly more than happened in the last 18 months, because we're growing exponentially. So it's a little bit dizzying,
Starting point is 01:15:55 actually, man, is it exciting? Now? Do you see why I'm saying this? Seriously, I think everybody should they should they should be jumping on this so you mentioned earlier that while building kodi and also using kodi it has surprised you in ways where it acted in a way you didn't anticipate it to act that way uh are there any specific instances that you can recall where it surprised you yeah i mean just sometimes it just has no, you feel like it has no business knowing what it figured out, right? And this happens a lot, especially because Kodi does a lot of
Starting point is 01:16:31 magical context fetching for you. You can see it. You can open it up and look at which ones it picked, right? It'll rank them. It pulls some out of the embed. It'll embed your query and see if it can come up with some relevant stuff that way. And it'll do a search and it'll check our graph and so on.
Starting point is 01:16:49 And sometimes that context is completely irrelevant we need to work on it and sometimes it's so relevant that even with like it's incomplete and you look at it you're like actually even like a senior engineer probably shouldn't have been able to figure that out and yet here the lm generated the right code maybe it's just really good at guessing, right? But I mean, in the end, if it's doing the right thing, I'm still regularly blown away by these things. So I don't really have products, so this question might be a dumb question, but I was just trying to visualize in my head in terms of how this thing functions. Visualizing things makes it easier for me to understand stuff. So you have this model in one place,
Starting point is 01:17:28 which is the core LLM, call it GPT-4 or Cloud 3.5 Sonar, something else. You have Kodi in the front and then context you said is where the magic happens or that's the differentiator. Yeah.
Starting point is 01:17:43 Kodi can pull context from different places. Now, context here, tell us a little more about what that looks like. So I'm just imagining in one case you have all of your source code, in one case you have your wikis. And this is something I see when I just search on Sourcegraph.
Starting point is 01:18:01 By the way, Sourcegraph search is outstanding. That's my go-to place to search code i've recommended to most of my teammates i work with um anyway so in that case it says something like search based it'll actually show that tag but in terms of fetching this context can you elaborate a little more on what that looks like? Yeah. I mean, it's not a one-size-fits-all problem, right? It's domain-specific.
Starting point is 01:18:35 So if you're generating unit tests, your context is going to be your company's testing style guide, whatever framework classes you're using, maybe some examples of tests that are particularly representative of how you want them to be written in your organization. So we actually allow for things like this by allowing you to put in pinned context and, you know, having administrators actually point in context that everybody's going to be using all the time for specific use cases. You can do custom prompts basically and build up a prompt library so that, because the prompt can help bring in some of the context as well or interpret it.
Starting point is 01:19:10 And then it's gonna be a completely different set of context for the use case that you brought up in your earlier question about how do you debug in production, right? And the answer is the LLM can use tools and it can read and interpret the output of tools. And so, our context there is, can we get a, what information can we get out of prod
Starting point is 01:19:30 that we can get in front of the LLM? And since they're multimodal, maybe that's as desperate as doing a screenshot, but hey, right, that may work too. So context can be anything. Context is context. It's literally like, it is defining the problem. It's the most fundamental thing. Sanyam Bhutani. So in the rag part of this equation, this is
Starting point is 01:19:50 the retrieval part. And how much of the classical search techniques apply to this part? Or is this part also very different nowadays? It's very similar, actually, like if you think about Google Search, right, it's not one back end, it's not one size fits all, just like this AI domain, right? If you're searching for baseball cards, there's going to be a very specific set of, you know, things in your query that are very different from if you're searching for, you know, a pet store. or even thousands of models that all report back on what they think the relevant answer, context for your query is, search results, say. And then somebody has to go and arbitrate, right, those answers and multiplex them.
Starting point is 01:20:34 And that's where some of our key differentiation is. We're not just a context fetching engine. We're a context assembly engine. And there's a lot of, there's an art to that as well, right? Cause it's a bin packing problem. So for someone who has some knowledge or experience with information retrieval systems or search in general, I can see them transitioning into the space
Starting point is 01:21:02 relatively easily. What are some of the other transferable skills in terms of software engineering to just building AI products? Typing. Right? Because if you're doing chat-oriented programming, that means you've got to chat. And so if you're really a slow typist, you're going to be the bottleneck. Although it would be great if we could... I think, I think this is, it's finally time for, you know, speech to text to, to really shine.
Starting point is 01:21:30 We need to get it wired up so that you can talk and type and whatever at the same time. That was slightly tongue in cheek. I get it, but you know but yeah, in terms of software engineering, I would say, look, the skills are the same, but for my entire career, the low level skills have been becoming obsolete one after another as we level up. Okay. So when I started, you know, in college, like we were literally like using put pixel, like to put a colored pixel on the screen and we would use our own Z buffering and whatever to build 3d graphics and by the time i graduated from college it had already gotten to animation courses it was accelerating that fast right and at some point we didn't need to know how to render
Starting point is 01:22:14 polygons and do brezhenham's algorithm anymore right and because it's down in the hardware and this steady march of pushing software down into the hardware layer over and over again has meant that we've been focusing on higher and higher and higher level things there are still computer steady march of pushing software down into the hardware layer over and over again has meant that we've been focusing on higher and higher and higher level things. There are still computer science-y things, and you still have to understand algorithms and data structures and big O complexity and all that. You have to, right? But the specifics of technologies that are staples, I don't know, do you need to know relational databases anymore? Maybe not for long.
Starting point is 01:22:50 If LLMs know everything about relational databases and all you need to do is tell them what you need, right? You're gonna need somebody to go in and fix it, one person on staff. Again, this is the problem, right? But yeah. So we're coming towards the end of our conversation. And so in one of your youtube posts uh you mentioned that having something to truly push up a mountain is fulfilling we
Starting point is 01:23:12 like struggle and struggle is necessary for life you've had a very successful career over this period what have been some of the struggles that you are the proud, most proud of? Am I the most proud of? Or most have been most fulfilling in a way? Yeah, I mean, like, I guess one that I would love to do is almost like a PSA is your mental health is really, really important resource that I think that maybe like, so I'm Gen X, and we don't talk about that stuff ever. Okay, it's dilemma, you know, head on. Very, very difficult problem. You know, my mental health really, really took a hit, you know, and I learned how important it is.
Starting point is 01:24:12 And that was a huge struggle, a huge struggle, right, to get better, you know what I mean? Like, and get back to my jolly old self, you know, it was not an easy thing. And so I just want people to, especially the older programmers, you know, to recognize that, yeah, stuff can get so hard that you need to go get help. So there's a struggle I'm proud of telling you about. Does that count? That totally counts. It totally counts. Steve, this has been an amazing conversation. We highly encourage people to check out all of your blog posts we'll link to them in the show notes and we learned a lot through this conversation and i'm sure all of our listeners
Starting point is 01:24:51 will too not only learn they'll find it entertaining so thank you so much again for joining the show well thank you so much for having me thank you steve awesome all right guys Awesome. All right, guys. Hey, thank you so much for listening to the show. You can subscribe wherever you get your podcasts and learn more about us at softwaremisadventures.com. You can also write to us at hello at softwaremisadventures.com. We would love to hear from you. Until next time, take care.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.