Return to site

77. Transforming Code Reviews with William Zeng: From Manual to AI-Powered Efficiency

· podcast,AI

 

broken image

 


Podcast with William Zeng Part 2

 

 

Summary:

Imagine an AI-powered assistant that reviews your code,finds technical issues, and suggests improvements instantly, cutting down the
time spent on tedious manual editing. In this thrilling podcast, we have
William Zeng, the brain behind Sweep, a game-changing AI tool transforming code
reviews. Learn how Sweep accelerates development cycles, helps startups handle
technical debt, and empowers developers to become 20 or 30 times more
productive. Whether you're a coding expert or a non-technical listener, this
episode will open your eyes to the future of software development with
AI-driven efficiency.

In this episode, we dive deep into how Sweep, theAI-powered virtual assistant, is revolutionizing code reviews and handling
technical debt. William Zeng, co-founder of Sweep and former leader of Roblox's
machine learning game search team, explains how the tool caters to engineers,
startups, and small companies, helping them scale their productivity. Discover
how Sweep eliminates back-and-forth communication in code editing, enabling
developers to instantly get feedback and make changes, just like in continuous
development. Whether you're a seasoned developer or a business professional,
this podcast will give you valuable insights into the power of AI in software
development.

[00:00:00] Andrew Liew: Are you looking at solvingsolving the tech for developers who are in a startups solving a tech
development and who are actually doing a software agency houses, or is it in a
big multinational companies?

[00:00:14] Andrew Liew: Do you have some kind of userpersona within even technical debt in

[00:00:19] William Zeng: that sense? Of course. Sotalking about our first users, we're really focused on. Engineers and startups
and small, smaller companies, we think that these have the both the need to
build this, especially ones that are starting to accumulate the tech that as you're
building in a startup like we are.

[00:00:38] William Zeng: We're definitely accumulating alot of tech debt, and we use and especially for we do use sweep internally, as
you can see on our GitHub, there's quite a few issues quite a few PRs and issues
fixed by Sweets but okay, going back to the technical depth of our first users,
we really want this to work for people who are really familiar with the code
base, because our thought is that if you're, Very familiar.

[00:00:59] William Zeng: It's easy [00:01:00] for you to review the code and you canalso describe with very high detail what needs to be done. And those two things
I think are really important for using sweep.

[00:01:09] Andrew Liew: Hold it there. This is aninteresting conversation now isn't that sounds like a paradox because if let's
say I'm on my friend who know the code base so well, I could actually go in and
just read it through a natural language for me and just tweak all this code
base.

[00:01:25] Andrew Liew: Normally, the real problem that Inormally see is. Let's say my startup grows and I no longer am just a hands on
one man show or two man tech guy. I would have to hire a bunch of guys because
I need to build two or three different versions plus all the other peripherals
around it.

[00:01:42] Andrew Liew: And whenever I have to hand overto a junior dev or a VP of engineer dev, or

[00:01:47] Andrew Liew: my code base is, the guy thattakes over... He would have huh, what's going on? And that's where the
technical depth starts to compound. Oh isn't that the case? I don't know. What
do you think?

[00:01:58] William Zeng: Yeah, definitely. If someonedoesn't [00:02:00] quite understand what theyshould be doing and they do it wrong, that could be that could definitely add
to your technical debt.

[00:02:06] William Zeng: So thinking about this, like ifyou think about what parts of the day let's say you have, you're like, you're
describing two or three birds of the same coat. You may not have to give it to
someone else. We really want you to just be working with sweep and allowing
yourself to scale. We want to turn the people that are doing like, like the 10
X developers.

[00:02:25] William Zeng: We'd love to turn to 20 or 30 Xdevelopers, like just being like, we can want to make you two or three times
more productive because like you said Because so well, we just want to save you
that time of let's say you're, you have four things you want to do today.
Let's, do one of those things for you.

[00:02:39] William Zeng: Or two of those things for youand ideally because of all, there's a bunch of surrounding work, like that
breaks up your time. Let's say you do the first two things that are not so
interesting. You're going to run out of energy. So if we can subtract one, it
probably, it makes you perhaps. Not exactly.

[00:02:56] William Zeng: It doesn't take away 25. Itmight take away like 30% of your [00:03:00]your work, right? Because you spend time changing back and forth. You have to
test it, especially if you have stuff like GitHub Actions, which can test
things for you. But you feel very confident, or you can even ask it to write to
GitHub Actions that test it for you.

[00:03:11] William Zeng: Ah yeah,

[00:03:12] Andrew Liew: Yes. Not, that you say it makesmore sense okay. Maybe to the audience, there, there are some audience who are
not the technical folks, right? They may be the business folks or investors,
right? Or even partners to those guys. The, analogy would be like anybody
writes a, book, a novel or, publisher, Amazon book, right?

[00:03:29] Andrew Liew: And if he were to use the writehimself, he probably will write an outline, write. Some body, text, and then
ending kind of stuff with some concept. And he started, he needs to edit in
order to make the book readable to be sold as a product, right? Now on average to
those folks who doesn't know, because I also write books as well, it takes
about three to six months, even the fastest guy to write a decent book.

[00:03:52] Andrew Liew: And it takes another six to ninemonths to edit the book. Now, what I also used to do is I will write some white
papers with ChatGPT. [00:04:00] I'll give himsome outline and then I'll ask him to review my the grammar details of the
readability structure. Am I right to say that Sweep is something like that it's
almost like the code version of ChatGPT in that it helps you Review all your
code base so that when the dev actually release the product press the release
button Is that executable?

[00:04:21] Andrew Liew: Pre polished product with asminimal bugs

[00:04:23] William Zeng: as possible That's one of ourgoals. Definitely. So going back to that. We can go back to that book analogy I
think if you think about One cause of why this takes so long, right? Definitely
one is that and I can go back in software and in editing One is that you have
to go back and forth with someone.

[00:04:39] William Zeng: You probably send your editor anemail with your edits. I don't know how long it takes them to get back.
Probably not. Instantly. I'm probably a decent while. And same for, if you're
working in a company, if you have a junior developer and you're working with
them and you tell them to fix a comment, it probably takes them like maybe an
hour to get there.

[00:04:58] William Zeng: And then they probably need [00:05:00] let's say it takes them an hour to perhapstheir meetings, they're in a meeting, it takes them half an hour and then now
they need to spend 15 minutes to write it. If you have a really great test
suite, it might take it like another 10 minutes for a test to run.

[00:05:11] William Zeng: It takes an hour for you to getyour, and then it goes back to you and you might be in a meeting and then you
may have another et cetera. Yeah. So if we can cut out. The part that goes the
back and forth, I think that could speed your time up by a lot, especially if
you have a really good test suite.

[00:05:26] William Zeng: Yes,

[00:05:26] Andrew Liew: yes

[00:05:27] Andrew Liew: So, sweep actually enabled thatlike literally saves a lot of time by cutting out all this back and forth,
Exactly.

[00:05:33] William Zeng: Even though that's not whatwe're that's not what we're doing. It ends up being like that, that you can
just get instant feedback and kind of work with that and save one less.

[00:05:42] William Zeng: Kind of hop of communication,

[00:05:44] Andrew Liew: isn't it? Very similar to theJenkins, the C. I. C. Continuous improve iteration continuous development kind
of idea. Yeah, I

[00:05:52] William Zeng: think I can show you one ofthose, this may be a good time to show the demo if that makes

[00:05:57] Andrew Liew: sense. Yeah, that, that makessense.

[00:05:58] Andrew Liew: So that we [00:06:00] can actually conversate on that demo. Andthe audience who's listening to this, I'll probably have to like like a cooking
shop to describe how the demo looks like. This is my first time actually
looking at the damage. Oh, for sure.

[00:06:13] William Zeng: So I'll go to here. This is akind of an old version of our web page.

[00:06:17] William Zeng: I'm saying it's old versionbecause there's a bug in here and I'll scroll down and I'll show you the bug.
We have this video describing what we do, have some icons with our users. If we
scroll down even more, we have some descriptions of sweep, right? Let's say
like this PR does this.

[00:06:31] William Zeng: So scrolling down even further,I'm going to go to our testimonials, which we had. And you may notice the bug
now. They all say this guy's name is his initials are J.

[00:06:40] William Zeng and Andrew (2023-07-12 12_02 GMT+8):E.

[00:06:41] Andrew Liew: Oh, yes. Yes. I see. Yes. Theaudience out there. This is a landing page website with a testimonial. One of
the things that is very striking is that there's this little icon.

[00:06:51] Andrew Liew: It's supposed to have the rightrepresentative initial of the customer's name. But in this particular case, all
the [00:07:00] initials are the same, meaningto say that there's a technical mistake over here. Suppose for example, the
first guy was Jeremy Evans, the second guy was Eduardo Ruiz, and the third guy
was Konal Gupta.

[00:07:10] Andrew Liew: But the initial is actually J Efor the first one, J E for the second one, J E for the third one. So clearly
that's a that's like a call it like a user interface visual error in a sense.
Yeah.

[00:07:21] William Zeng: Yeah. And there's two cases thatI want to talk about. So if you're a very experienced developer you can do this
without having to look at it.

[00:07:29] William Zeng: But even for someone that's notsuper familiar with front end myself. I can type an issue and you see some
examples. I can say sweep. This UI is the GitHub issues. It's where you report
bugs. So I can say fix the initials on the testimonials page. They all say J E,
so I'll just submit this issue and you can describe what's happening to the
audience.

[00:07:52] Andrew Liew: Okay, and then, what do I seenext?

[00:07:56] William Zeng: So the bot has added the sweeplabel, and you can see what's happening now.[00:08:00]So the bot is now searching the code base to find out what code it should look
at to solve this problem.

[00:08:05] Andrew Liew: Okay, can you give an idea to theaudience just an example what's the number of lines of code for this code base?

[00:08:11] Andrew Liew: 200, 500, I don't know.

[00:08:13] William Zeng: This line, this code base, Ithink is around... Just a rough range. I'd say a thousand lines of code.

[00:08:20] Andrew Liew: Okay, a thousand lines of codeand it will typically take how long to run through this thousand lines of code?

[00:08:26] William Zeng: To be honest, this is my, cofounder wrote this, so I actually don't know, but I, think Is he next to you?

[00:08:32] William Zeng: Yeah, but if you can see allthese files, initialized. This is made using create react app. So it has quite
a lot of kind of things that you can see, that around 20 files here. Yeah,

[00:08:43] Andrew Liew: that's about 20 files, a thousandlines of code into 20 files. So each file is about 250 lines of code.

[00:08:49] Andrew Liew: So it's almost a 300 to 600 pagesof book, except this one is a software application. Yeah, it could

[00:08:56] William Zeng: be pretty time consuming. It'sbeen about a minute. So our. [00:09:00] Our botsuite has almost finished. It came up, it read the code, it said, looks at the
testimonials, and it says, it found the testimonials page.

[00:09:07] William Zeng: You can see this looks familiar,right? It's the it's the code that we just talked about, that we just saw. You
can see some testimonial brackets, and then it makes a plan. It says, okay, I'm
going to make a function that makes the initials from the name. So I'm going to
fix the bug. And then if you go here, it wrote the pull request.

[00:09:23] William Zeng: And that was about two minutes.

[00:09:25] Andrew Liew: Yeah, it's like pretty fast, liketwo minutes to search, figure out the problem or narrow to the problem sets and
then solve it. Is it is it that consistent? Or is it, because it's trained so
well to identify this like, I said this semantic search I don't know, I'm
asking.

[00:09:44] William Zeng: Yeah, for sure. So we have thecustom we wrote our own kind of Search engine that runs pretty fast. This
search engine runs on any code base that's that we've seen in about three to 15
seconds. So that part happens. And I will [00:10:00]show you some of the other ones that we created. I think we had a kind of an
issue in the last one.

[00:10:05] William Zeng: This is what kind of the PRlooks like. It says. This PR fixes the issue with the initials displayed on
testimonial page. They all say GE. So then we fixed the PR by making the
initials based on their name, not based on the not hard coded.

[00:10:18] William Zeng: It's the kind of you can see howchanges are made. It made a helpful function and it moved it changed
everything.

[00:10:25] William Zeng: Then it tells you how to testit. And one thing we have is. We have the CI pipeline, which actually build the
preview of the website. So if you look at this preview of the website we scroll
down, you can see that the actual, the initials are actually correct here. Oh,
yes. So, then you can see that this person's name says that, and I can show you
the code to the code is very short, so it's quite simple.

[00:10:46] William Zeng: You can see that instead of J wecall this, so you can read that one and see.