Can Claude 3.5 build production-quality apps without us having to write code? Felipe Aguirre tried doing just that!
In this episode, Felipe Aguirre, a senior data scientist and AI enthusiast, joins host Simon Maple to explore the groundbreaking applications of AI in software development. Discover how AI tools like Claude are changing the landscape of coding and what this means for developers.
Episode Description
In this enlightening episode of the AI Native Dev podcast, Simon Maple sits down with Felipe Aguirre, a seasoned data scientist with a PhD in computer science and over 15 years of experience. Felipe, the organizer of the Medellin AI Tinkerers community, shares his journey from academia to entrepreneurship and delves into the transformative potential of AI in software development. He provides practical insights on using AI tools like Claude to generate code and build applications, illustrating how these innovations can streamline development workflows and boost productivity. Whether you're a developer curious about AI or a tech enthusiast, this episode offers valuable perspectives on the future of coding.
Resources
Chapters
- [00:00:23] Introduction – Simon Maple introduces Felipe Aguirre and the topic of AI in software development.
- [00:01:16] Felipe’s Background – Felipe discusses his extensive experience in AI, his PhD, and his roles in various sectors.
- [00:02:38] AI Tinkerers Community – Overview of the AI Tinkerers global community and its impact on AI innovation.
- [00:03:25] Entrepreneurial Journey – Felipe shares his experience founding a company in the fashion industry and the lessons learned.
- [00:04:54] Early AI Tool Experiences – Felipe talks about his initial encounters with tools like GitHub Copilot and ChatGPT.
- [00:06:13] Transition to Advanced AI Tools – The transition to using more powerful tools like Claude and their impact on development workflows.
- [00:08:20] Deep Dive into Claude Projects – Felipe’s experiment with building a web-based game and the importance of clear specifications.
- [00:10:12] Iterative Development with Claude – The role of iterative development and error handling in AI-assisted coding.
- [00:12:33] The Future of AI in Development – Felipe’s vision for the future roles of developers and the evolving responsibilities with AI integration.
- [00:33:01] Summary and Key Takeaways – Recap of the main points discussed and advice for developers looking to leverage AI tools.
Full Script
[00:00:23] Simon Maple: On today's episode of the AI Native Dev, joining me is Felipe Aguirre. Welcome Felipe.
[00:00:31] Felipe Aguirre: Thanks Simon for having me.
[00:00:32] Simon Maple: And today we're going to be really talking about how you can generate code using projects, using specs, using prompts. And we're going to do it in a very, developer focused way where we're going to talk about it in this episode, in a very developer focused way to show how you can actually build through discussion, through a chat API, and really,
[00:00:54] Simon Maple: show what, in this case, Claude, which is what we're going to be using to generate that can do, we're going to split this up into two episodes again, in this episode, we're just going to really talk about some of your experiences, what you built using Claude, and then in the next episode, which will be, released shortly after this one on YouTube only, we're going to jump into screen share, and we're actually going to try and build a front end to a database access.
[00:01:16] Simon Maple: Let me introduce you, Felipe. so Felipe is a senior data scientist. You have a PhD in computer science, 15 years of experience in education, research, also startups and government, also the organizer of AI Tinkerers, which is actually a worldwide, organization. They have chapters effectively in various places.
[00:01:33] Simon Maple: And whereabouts is your chapter?
[00:01:35] Felipe Aguirre: In Medellin, in Colombia. I am originally from Colombia.
[00:01:38] Simon Maple: Amazing. and so tell us a little bit about what, the AI Tinkerers does. what it is as a community.
[00:01:44] Felipe Aguirre: Sure. Yeah. So AI Tinkerers is a global community. And the idea is, you always say the luck is a mixture between preparation and opportunity.
[00:01:54] Felipe Aguirre: And I always say that AI Tinkerers is, is the venue where we make these opportunities happen. Oh, nice. You know, so when we bring, prepare people together so that the opportunities can happen.
[00:02:06] Simon Maple: Yeah.
[00:02:07] Felipe Aguirre: So we gather once a month,for tinkering, discussing what we're doing. We have a very relaxed format of presentation.
[00:02:13] Simon Maple: We don't like long format presentation with slides. We just want to see your code running, even if it's messy. It doesn't matter, it's as if you were bragging what you've done to your best friend, you know, so, and that really creates a nice atmosphere. So do check that out and see if there's, see if there's, There's chapters all over the world. Yeah. You mentioned one in London. So I'm going to definitely check that out as well. I was in Paris last week for the inauguration. Yeah. Yeah. Yeah. Cool. And you're also recently co founded a company.
[00:02:37] Simon Maple: You're a founder as well.
[00:02:38] Felipe Aguirre: Exactly. Yeah, I run a company for two years. We were three co founders in the fashion industry. It was a blast. It was a great experience, a great learning experience for me. And I really got the taste of entrepreneurship. grinding and working hard and trying to make things happen.
[00:02:54] Felipe Aguirre: but sadly, yeah, the market is quite hard at the moment. As you can imagine, like we all know that it's quite hard to raise money at the moment. And we did build a product that even though adds a lot of value, is a really high cost of acquisition. For customers who, yeah, finally we didn't make them, we decided to make the right choice, which shutting down the company.
[00:03:13] Simon Maple: Yeah, I'm sorry to hear that, but, as part of that, you actually did some building using Claude projects and, building applications and front ends with AI. So it's not a core part of the business, but you were using it effectively as a developer, right?
[00:03:25] Felipe Aguirre: I think that the way we built our company was the right way to do it two years ago, but what I've learned with, yeah, with all of the experience that I've done so far is that actually, it's much easier nowadays to build MVPs. I don't know what production ready products, I think I will still rely on professional developers to make sure that front end is really working.
[00:03:45] Felipe Aguirre: I'm not a front end developer, but when I compare the time it took us to, to build the first prototype, the first MVP to show to our clients, to see, they're actually willing to pay and willing to buy this product versus what I can do today. That's incredible. I see that this is really going to shape the industry in serious ways.
[00:04:04] Simon Maple: So let's talk about your journey as it were through using various different types of AI. In terms of using an AI assistant in an IDE, doing one line at a time, I guess Copilot is, most familiar to people for that type of AI coding assistant.
[00:04:19] Simon Maple: How much have you used that? Was it, how did you find it?
[00:04:21] Felipe Aguirre: Like I do remember I was part of the private beta of GitHub Copilot. It was a long time ago. I don't remember, three, four years ago, something like that, yeah. and I was so excited. I remember talking to my colleagues back in the day, I was at a different company.
[00:04:35] Felipe Aguirre: People were a bit hesitant. I saw it and said, huh, this is actually not that bad. Like it really managed to, like you started the function, you did doc strings and like a comment and boom, you build a function. And it actually worked pretty well. And it got me really excited.But I never thought that we will get to the point we are today.
[00:04:54] Felipe Aguirre: And afterwards, ChatGPT came out and then the rest is history. like I started using it for, so I'm a data scientist. I have very few experience with frontend, but I've always tried to build frontends for, for internal apps, like it's always nice to have internal apps to look at what, whatever is happening with your business, but always it was static HTMLs.
[00:05:18] Simon Maple: This is interesting, really, because, if you're using something like Copilot, let's say you're someone who doesn't know anything about frontends. When you're using something like Copilot, you have to be a little bit more surgical in terms of, when you declare what you want. Sure. You say it in comment by comment, say, look, I want this.
[00:05:31] Simon Maple: And sometimes, yeah, you could say, give me a method that does this. But. That's a, that's even if you don't know really what you're doing around frontend, and I'm a backend developer by trade. So frontends, yes, similar kind of,aversion to frontend, let's say. So I, if I was to go down to that level, I don't know what I would ask for in, in Copilot or Comments.
[00:05:51] Simon Maple: But then when you take it up to a ChatGPT, or we can talk a little bit about Claude, the, you ask for bigger things.
[00:05:57] Felipe Aguirre: Yeah, that's where I was going. Actually, I, with the front end, I didn't use Copilot for the front end, precisely for what you were saying, like you, you're not going to build a full, webapp with just Copilot, you know. If you do know frontend, of course, but if you don't know much about it, you really need the full thing done.
[00:06:13] Felipe Aguirre: So that's where I started using ChatGPT on, it was not that bad, actually. It was quite good, but there was a lot of back and forth and a lot of Googling around because things didn't work. So we just Google around the errors. And I also used it a lot for building the whole data infrastructure of Prediktia, my, my previous company.
[00:06:31] Felipe Aguirre: I didn't know much about infrastructure as code. actually ChatGPT was really good at building AWS SAM scripts for, step functions,Lambda functions and API gateways and stuff like that. I was, I really felt powerful. it was really nice to do that with ChatGPT and that was amazing.
[00:06:47] Felipe Aguirre: I remember that's when I did that, we started paying right away, chatGPT plus to all of our employees, oh my God, this is a huge productivity boost, but I was, it was not yet at the point, that Claude brought us, which is, I can actually trust this to do a full fledged front end and it will work.
[00:07:07] Simon Maple: Let's talk about that then, because you did a couple of projects, right? You did,the one project, which was a product colors catalog. Yeah. And then a second product, which was a product match explorer. Now, both of these, you use Claude. What was it that drove you to Claude? Was it the model itself providing, you know, a better level of code return that you were expecting.
[00:07:25] Simon Maple: Was it the projects functionality with the AI engineer? What was the AI, what was the drive?
[00:07:30] Felipe Aguirre: I would say, I don't know, like Twitter, let's say.
[00:07:34] Simon Maple: Social pressure.
[00:07:36] Felipe Aguirre: No, not even pressure. everybody's talking about it. And but basically to make this story short, I, I gave a talk at AI thinkers Medellin because I really felt that some people in the community were not using LLMs,
[00:07:50] Felipe Aguirre: from the API, everybody's using ChatGPT, but not everybody's using the API to actually build products. So I said okay, I'm going to do a quick demo so that people know how to call the API and try to motivate people to do that, and that was a huge surprise for me because I said, okay, let's do this very quick demo of how to extract colors from shoes, and it was, I was happily surprised that in one morning I managed to replace a model that took us three or four months, to do with traditional machine learning.
[00:08:20] Felipe Aguirre: I did it with OpenAI in one morning and it's way better. Yeah. So that really opened my eyes and I realized like, Oh, I think I'm
[00:08:27] Felipe Aguirre: underutilizing ChatGPT. I was using it, but maybe not as much as I should. So that, that started our journey. Okay, what else can I do?And I had been seeing people around talking about coding with, differently, not with Copilot, of course, but like full fledged apps built entirely from LLMs and I bumped into Claude Engineer, which is like I think it's a great tool.
[00:08:48] Felipe Aguirre: That was my first approach to it, which is this agent, it's built by this Italian guy, Pietro, I think it's called. He partnered up with Antropic now to work on that. And it was quite cool. The thing is that I felt that it was really powerful, but I don't know, as a scientist myself, I think,
[00:09:06] Felipe Aguirre: I wanted to touch the equivalent of bare metal in this case, which is no, I want to go directly to the LLM and me being the one who tests everything. I wanted to test the raw power of Claude. So that's what led me to different experiments where I said, I'm force myself to use the web UI. I'm not going to use, any extension in VS code that
[00:09:29] Felipe Aguirre: calls Claude. And I'm going to document everything.
[00:09:33] Simon Maple: Which has advantages and disadvantages, When we think about the advantages, yeah, you can get directly to Claude and you can craft your prompts as you wish. And those are the prompts that are going to Claude.
[00:09:43] Simon Maple: However, you're not necessarily seeing it in an IDE, right? You're still seeing it in a web UI. So the experience afterwards, after Claude has created a number of files, which it stores in his projects and things like that, it's something that you can't necessarily, then play with in an IDE.
[00:09:59] Felipe Aguirre: Yeah, I think it was a painful experience, let's say. Yeah. but again, like I really took it as an exercise, as a test. I don't think that's the right way of doing software nowadays. Like moving forward, I will use cursor or VS code. We continue that dev, something like that, but it was really important for me to take everything from the middle, like I want to go straight to the experience and also backed by Claude projects and artifacts. I think it was a good setup to, to actually build my mindset, develop my own workflow. Yeah. That was important for me. And also, that's why I'm saying I took the scientist out of my heart and said. Okay, let's do some statistics over this. So I use Git to document everything.
[00:10:40] Felipe Aguirre: And in each commit, I documented how many prompts I used, how many of those prompts were corrections over mistakes that the LLM did. And also I, took note of this commit is working on the backend, on the front end, the data models scaffolding the project. So I did a full documentation of these that I will put on GitHub so that people can actually look at it.
[00:11:02] Simon Maple: So let's describe that. Let's describe what you're faced with, in terms of the screen that, that you have for people who aren't familiar. So you obviously had a space to prompt, you had a, and projects allow for a number of files to be, to be created and stored for you.
[00:11:17] Simon Maple: You can use those various files as, as context and you can actually refer to them, right? So I want you to do X taking Y and Z into account where Y and Z are two files maybe in the, in, in the project. Yeah, in, in terms of that flow, what were your requests, talk us through the kind of requests that you would make to Claude, what you would have as context stored, and then what you would do with the output.
[00:11:40] Felipe Aguirre: Yeah, so going, let's go back a bit on actually why we're here talking to you and me. Yeah. so when I started doing these experiments, you, that you described, Like right after I finished my second one or something like that. I saw your first podcast. Yeah. And it really struck me, wow.
[00:11:54] Felipe Aguirre: They really put in words what I've been feeling and mostly around the, we're going for a code centric, product spec centric software development process. So and that's important to notice, like the product spec centric aspect of it, is quite important in the experiment I was doing. And I really felt that the future of software developers is going to be increasingly become product owners and architects.
[00:12:18] Felipe Aguirre: So I tried in these control experiments, and actually it's also worth saying that the experiment that I did was something outside of Prediktia. Yeah, my company, because I felt it was important to start something from scratch. Like how is Claude going to be helpful for me if I start something from scratch, something that I don't have any prior knowledge. So I did a web based version of Cards Against Humanity that I called Cards Against AI. But at the end, that's just details. But to get into the details of your question, so basically the Claude interface has what we call projects. It's a very simple interface, but extremely powerful. It's just like an isolated environment where you have like common chats that they all belong to the same environment.
[00:13:03] Felipe Aguirre: You have a pseudo system prompt. this is the prompt instructions for everything that goes into these chats and then let's say like a folder where you can just upload different files and what's important there is that again, going back to the fact that we become product owners and architects.
[00:13:22] Felipe Aguirre: So those four, the instructions is like my, my, my mindset as a product owner, architect of how I envision the whole product and the files that you put into it is not the code itself, but product specifications, natural language product specifications, and also technical specifications like, I don't know, like SQL, DDL script.
[00:13:45] Felipe Aguirre: To build a database, which is code also, but technical code that can serve as technical specification, the open API schema definition and things like that. So that is the setup, like an environment that understands that you're trying to build Cards Against Humanity. You describe the tech stack that you want to use, the style of interactions you want to have.
[00:14:05] Simon Maple: And that's interesting. The style of interaction, because this is this, you're referring to the roles, I presume, for this.
[00:14:10] Felipe Aguirre: Among other things, yeah, roles, but also like the main instructions, for example, something I really like is to say, provide mermaid diagrams when relevant. Because it's actually quite good at coming up with abstractions of what it's telling you, putting them into mermaid diagrams and with the artifacts interface, which is basically inside a chat when Cloud recognizes that it's actually has something that can be shown in a different document.
[00:14:37] Felipe Aguirre: You have a right pane that previews the document. So if it's a memory diagram, you can see the code of the memory diagram, but also you can see the diagram. If it's React code, you can see the code, but you can also see a rendering of the React visual.
[00:14:51] Simon Maple: Yeah. Yeah. And that's interesting to that rendering.
[00:14:54] Simon Maple: Yeah. It's effectively a REPL in the Claude project, so it's not just code that is being, generated, it's actually running that in a local sandbox.
[00:15:03] Felipe Aguirre: It's a bit tricky because in reality, sometimes like you create a react, react visual that tries to import components from other files. So if it creates three different files and there's like an app.
[00:15:19] Felipe Aguirre: that calls component from other files where it doesn't render. So you have to cheat a bit and force it to put all the components in the same file so it's not as powerful as Replit, but I think you saw recently I haven't tried it, but Replit they actually, released an LLM based agent. LLM agent. I have to give it a try, but I've been on holidays for the past month.
[00:15:40] Felipe Aguirre: Yeah, it's just crazy. You stop for one month and you're outdated. But anyway, that's my next thing to test.
[00:15:49] Simon Maple: Yeah. So the conversations that you have, they're effective. You have it against various roles. You might have it against, start a conversation with the front end. specialist or a backend specialist or a data specialist and so forth.
[00:15:58] Simon Maple: There's also, cause I've seen obviously the video that you presented, where you actually go through a lot of this, you talk about in that, you talk a little bit about, firing roles essentially. So this is when a conversation to talk to, this is where you effectively get to a dead end with a conversation and you need to
[00:16:14] Simon Maple: start again, essentially. Talk, tell us why you get to that dead end and what the value of that, I think you mentioned handovers, what the value of a handover is going from one to the other.
[00:16:22] Felipe Aguirre: So before going into that, maybe let's talk about roles first, because I think that's, that we, I think I, I skipped that part of the question and I think it's important and that leads to the dead end afterwards.
[00:16:33] Felipe Aguirre: So I really felt that what I was doing, it felt like each different chat. It's as if I were talking to a different software developer. So when I was, and I think we all agree up until this point, we all agree that you have to keep things tidy and one conversation, one subject, you cannot talk, just open up a chat and build the whole app in one chat and projects provides you with the environment.
[00:16:59] Felipe Aguirre: You can have different conversations. So it's important to keep separate conversations for separate subjects. And Even when you're talking about backend, you can have several conversations about backends and several conversations about data models.and that's where I think that the role of the software developer is still relevant because we know those abstraction layers and we know
[00:17:19] Felipe Aguirre: what goes with what And we know the blue points between the different roles. . But basically the roles that I had, like the obvious ones, which is backend developer, software developer, and data engineer. The CTO was the meta prompt, let's say. The data engineer was actually quite good. And I also had some separate, roles that served as auditors.
[00:17:40] Felipe Aguirre: They cannot
[00:17:41] Felipe Aguirre: interact in between chats. But if I have one chat where I'm writing front end specifications, because the whole project is not for writing the code.
[00:17:49] Felipe Aguirre: I use it also to write the specifications of the project. Yeah. So I thought it was important that, because as we said at the beginning, product specifications is the future, so if that's the future, Claude should help me write the product specifications and that makes part of the source code.
[00:18:06] Simon Maple: So you have prompts, which are short term, which allow Claude to create these longer term specs That then it is able to then create the code from in with all of that information and context in the, in that.
[00:18:19] Felipe Aguirre: So that's what I was trying to achieve. That's what I achieved. And those specifications, I also added them to the repository.
[00:18:26] Felipe Aguirre: They're in Git, they're coming to Git and they're, they make part of the statistics. And just to remind you, 39 percent of the prompts. 39 percent of the prompts that I used, were dedicated to product specifications.
[00:18:38] Simon Maple: To create the spec that the code is from.
[00:18:39] Felipe Aguirre: So at the end, you, for example, I have a front end developer helping me write this specification to front end, then another one helping me, a back end developer helping me back end specifications.
[00:18:49] Felipe Aguirre: And then I had a full stack developer where I said, please read front end specifications, back end specifications. Let me know if there's something wrong, if there's consistency, what you should change.
[00:19:01] Felipe Aguirre: ,
[00:19:01] Felipe Aguirre: I was quite impressed with what it said. Like it said listen, you forgot this data model that will be used in this part of the front for doing this and that.
[00:19:08] Felipe Aguirre: And that was actually quite powerful. Like before actually implementing, I used a lot of critiques between the different specifications. Did the, to actually get to that,
[00:19:15] Simon Maple: Did the developers get very, flustered when with their feedback and they get, they started speaking very defensively towards Exactly.
[00:19:21] Simon Maple: Is that real?
[00:19:22] Felipe Aguirre: But it's funny, the way I describe this auditor, I actually described it as colleague that you, nobody likes you. We all know really good. Don't like you, but thank you. That's the description I gave to that role. I'm going back to your question about firing up, these roles. So let's talk about the error rate.
[00:19:42] Felipe Aguirre: I think it's important. It's not just the error rate, because I actually didn't fire him. I fired myself. You have to be honest on that, of course. I'm the one who made the mistakes. Yeah. So I did in total, I did 169 prompts with an error rate of 28%. We can develop further that.
[00:19:59] Simon Maple: And an error is, describe an error.
[00:20:02] Felipe Aguirre: I put a prompt. Yeah. I say, please make a red button, a square red button. And it makes, I don't know, like a diamond blue button. That's an error. So I know, please, I said square. You'd need to, you'd need to fire that one straight. So that's an error. Like I asked for something and it does something that is not in accordance to what I asked.
[00:20:25] Felipe Aguirre: And another error is, implement the front end and then I run it and I bump into an error. it doesn't run for whatever reason. So I have to, Hey, I got this error. It doesn't, it didn't run. So that's an error. but what I realized is that most of those errors were due to lack of clarity.
[00:20:42] Felipe Aguirre: And we're circling back to what we were saying. Product specifications are key. Clear product specifications are key. And I don't, I'm sadly, I didn't take note of how many of those corrections were due to my lack of specificity, but I do have this subjective feeling that most of them was the case because, and again, the reason I did cards against humanity instead of an app for Prediktia is because I wanted to bump into these cases.
[00:21:06] Felipe Aguirre: Like I wanted to bump into the case where specifications are not clear for me. And assume that's the new source code, and there you have the proof. Like most of the errors. I do have the feeling that I was not specific enough, but
[00:21:19] Simon Maple: I was gonna say, what would you do next time then to remove those errors?
[00:21:21] Simon Maple: is it be better? there's a really good, there's a really good quote, actually. Guypo had a session with, Des trainer of Intercom, and Des said something, I'm gonna ruin this quote now, but Des said something along the lines of,Um,willingness or our wanting a need for short prompting.
[00:21:39] Simon Maple: So to write short prompts is robbing us of the ability to add specificity into, into our requests. So effectively we can, short prompts and get something back from an LLM quite easily, but it's actually the devil's in the detail, as it were, the, the, a lot of the important information that we want to get across to the LLM,
[00:22:02] Simon Maple: we tend not to sometimes just because a short prompt will do is that kind of how you felt you were interacting with Claude a little bit, giving not enough information for the depth it needed to actually create you something it wanted. Still stuff too much in your mind and not enough on the platform.
[00:22:16] Felipe Aguirre: So here's the thing. I completely agree with that, but I have a bulletproof solution for that, which is in my instructions. I say, always ask for clarifying questions so I can be lazy because I'm lazy. And then Claude realizes I'm being lazy and asks a lot of clarifying questions. Yep. Yep. that's
[00:22:34] Simon Maple: almost where you want, a role.
[00:22:36] Simon Maple: Yeah, of almost like we talk about junior developers a lot in the podcast and with AI, but almost a role where there's a developer or someone who's constantly asking clarification questions or depth questions. Okay, I see what you're asking for here, but how, or maybe there's clarification on, do you mean this?
[00:22:52] Simon Maple: Or do you mean that? Just add that level of detail. So that's a really nice interaction where you know, the LLMs prompting you effectively asking you to add more detail. It
[00:23:00] Felipe Aguirre: solves the blank page problem. Yeah. It's hard. Like it's thinking is hard.
[00:23:05] Felipe Aguirre: Yeah.
[00:23:05] Felipe Aguirre: and sometimes you ask a friend to, to be your sounding board and it actually helps.
[00:23:10] Felipe Aguirre: But in that case, my sounding board is Claude and it just asks me as many questions as you can.
[00:23:14] Simon Maple: And one thing we're going to ask a little bit about takeaways and things like that, but one thing sounds relevant to, to add it here is you mentioned as a good takeaway. You. do less writing now in terms of code for sure, but probably possibly less in, in just keyboard taps anyway, less writing, but more thinking.
[00:23:34] Simon Maple: Yeah. And that's really interesting. Tell us a little bit about that in terms of what were the things you, if you were just to write, start writing code from scratch, what would be the things that you wouldn't think about up front, which an LLM is actually forcing you or making you think about earlier?
[00:23:49] Felipe Aguirre: Yeah. So let's put numbers on that.
[00:23:51] Simon Maple: Yeah.
[00:23:51] Felipe Aguirre: AI wrote 87%. of the lines. So that's a lot of code, everything, so specifications, code, data models. Yeah, let much less writing, but the way I see it is, I don't know, let's assume that you can put an IQ requirement to every software development test, task, and let's assume that 80, 90 percent of software development out there is, you don't have to be very clever to, to achieve that.
[00:24:19] Felipe Aguirre: Maybe between, it will require between 80 IQ, an IQ of 80 and 110, 120. I don't know how much that is, but let's just assume that whatever it is for the purpose of illustration. I feel that with, with Claude, everything that requires a lower IQ is immediately automatized. It's as simple as that. Like the easy thing is that the things are easy for you.
[00:24:42] Felipe Aguirre: That is just mechanic, automatic. Like you're just, you're typing and you're not thinking all of that is automatized.
[00:24:47] Simon Maple: The dull jobs that developers tend not to want to do anyway. Yeah, exactly.
[00:24:50] Felipe Aguirre: That, and that many developers after 10, 20 years, they get bored and they don't want to code anymore because of that.
[00:24:55] Felipe Aguirre: Because all of the same thing, all of the same thing. So all of those things, they go away quite quickly. And you're left with these high IQ requirement tasks that you have to do. So that's why, I think the experiment really made me realize that was tough. Yeah. It was a tough exercise. It was really tough to be thorough on your description.
[00:25:15] Felipe Aguirre: Or another way of saying it is, my mind is a closed loop. My messiness, all of my messiness inside, they speak to each other and they know how to speak to each other. So if it's only me who is coding, I can let the messiness be and things will happen. The code will be written. But when you have a second brain, which is the LLM, you cannot speak with messiness.
[00:25:40] Felipe Aguirre: You have to put your order on your head to make it clear so that the instructions are clear enough for that thing to handle their own messiness
[00:25:47] Simon Maple: and write what you want to write.
[00:25:48] Simon Maple: It's like teaching someone else or education. It's like when you realize,it's funny when you think you know a topic and then you realize you have to go and present at a conference about this topic and you realize, Oh crap, I only know about 10 percent of this.
[00:25:59] Simon Maple: And then you think about all the edge cases, and it is, you need a, it's breadth and depth in terms of what you know, the extra you need. Yeah. In order to actually be able to describe that to someone else so that they can actually get that good understanding. Yeah, and it's interesting to know whether, where those gaps would be if you was to, if you was to not do that.
[00:26:16] Simon Maple: What would, what would some of the biggest surprises then that you had while doing this? Was there some around that lack of explicit context that you were adding in this person in the prompts and conversations, were there other surprises as you were going?
[00:26:30] Felipe Aguirre: For me, the surprises, I mean that I'm, I love software development, but I was not trained as a software developer.
[00:26:38] Felipe Aguirre: I was trained, I'm a, I'm actually a mechanical engineer. Then I did my PhD in computer science, but that doesn't make you a computer scientist. This is, that just makes you a PhD, let's say. And all of my life I wanted to become a software developer. And I think I became one, as a data scientist, you have to do some software development.
[00:26:54] Felipe Aguirre: I actually became good at not being the typical data scientist that just do Jupyter notebooks. I do some backend, I put things in production, it's okay. But I always felt like I cannot build a product. A full product, I don't have the capacity to put, to build a full product. So what surprised me the most is that actually with these, now I can, and that these models are powerful enough to help me do a poc, and even an MVP,viral product that people can pay for.
[00:27:24] Felipe Aguirre: And for me that was quite surprising. And the fact that. It was clever enough to understand my instructions. It was clever enough to compare front end and back end specifications and come up with ideas.
[00:27:35] Simon Maple: And what was it, do you think? Cause if you was to go, just go to ChatGPT, plenty of people will say this isn't good enough to provide me with exactly what I need to go to a market with or something like that. Do you feel the structure of the, Claude projects environment helped as well? Yeah,
[00:27:51] Felipe Aguirre: I was going to that too. there's Claude as a model that is more powerful, I would say, but there's also projects and artifacts that, okay,
[00:27:59] Felipe Aguirre: it also provides with, for example, for myself, where I don't know about frontend, so I had the ability to iterate some visuals in React with the artifacts before even thinking about going to the terminal and doing npm run dev or whatever. I didn't know how to run a Node.js project at the beginning, but it doesn't matter.
[00:28:22] Felipe Aguirre: With the artifacts, I can see the visual. And then I said, okay, I like that. Now help me implement everything and tell me how to run this thing, because I don't know. So yeah, I think, and I do think that projects and artifacts are equally important as a good LLM. Yes,
[00:28:37] Felipe Aguirre: yeah, in my
[00:28:37] Felipe Aguirre: case.
[00:28:38] Simon Maple: And when we talk about artifacts and the stages that you have to go through, how does that differ, to normal software development, in terms of, you talked about project specifications, we talked a little bit about, the architecture design and things like that, maybe some technical specifications, what's the, or I guess when you sat down to do it, first of all, how did you approach it and how would you do it today differently?
[00:28:59] Felipe Aguirre: Yeah, the way I approach it again was. I wanted to force myself to only write prompts and only on the web UI. I wanted to be as close to the LLM as possible and avoid any other interactions. So that's how I did it, how I would do it, for the next project. I will still use the Cloud Web UI for specifications because I think it's quite comfortable.
[00:29:25] Felipe Aguirre: Why use something else? Like it's really comfortable with the artifacts. You can see a marked out document that is being written and modified. So that's comfortable enough. For the mockups, it's also very good. So maybe that's what I would use. Although I also see that Vercel did a version of VC something to build, mockups, maybe I will give it a try to that.
[00:29:46] Felipe Aguirre: But when it comes to code and implementing the code itself,one month ago, I was saying that. I was going to try Claude Engineer, but then I took a look into, Cursor that they released recently the composer mode that I can actually do a comparable thing to what I did in the web UI, which is you give an instruction and it gives you several files and it actually modifies several files or creates several files.
[00:30:10] Felipe Aguirre: I am really curious to see how that goes.
[00:30:12] Simon Maple: Yeah, absolutely. It does feel like it's going to change the way workflows can work. What advice would you give to a developer today wanting to implement this type of, new workflow?
[00:30:24] Felipe Aguirre: I
[00:30:24] Felipe Aguirre: would say,
[00:30:25] Felipe Aguirre: first of all, is a change of mindset. I do think that, as I said, like all the simple tasks are going to be automated.
[00:30:36] Felipe Aguirre: So we're going to remain with the difficult tasks and those difficult tasks, they require a different mindset. Like you have to think as a product developer and not as a software developer. I think that would be the best advice I could give. So now to develop further on what I mean by that is that now implementation, the code is just implementation and it starts becoming less relevant.
[00:31:01] Felipe Aguirre: I've been a hardcore Pythonist for my whole life. Now I'm considering, maybe I will do Node. js. I don't care. Yeah, this will be really nice. Yeah. Just an implementation. Even the cards against humanity, I did the backend in Python. And I was thinking, it doesn't make sense if the front end is in Node.js, I would just do the back end in the same service. So things like that, switch your mind from code matters, but not as much as before. Proper code does matter and you have to be the auditor of the process so that code is actually good. Don't trust blindly. I don't think we're ready to trust LLMs blindly, at the moment, but it becomes just an implementation detail.
[00:31:42] Felipe Aguirre: So really focus your mind as a product developer, care about why you're doing what you're doing, who is going to use this, who is going to be the end user, care about the user experience, the UI, and broaden your spectrum. I think that I do have a feeling that, I don't know if we It will still make sense to be a back end developer, front end developer.
[00:32:04] Felipe Aguirre: I think we will have a broader base of knowledge in all disciplines of of software development. And maybe we will still have specialties. Maybe we'll still have backend developers in frontend developers, but you cannot just be that.
[00:32:16] Simon Maple: Yeah. I think that's interesting. And developers will effectively be more holistic.
[00:32:19] Simon Maple: Yeah. And, I guess that lead that lends itself to the architecture style of looking at, thinking of the application as a whole, and recognizing more holistically flows that go all the way through from a user to a backend or something.
[00:32:32] Felipe Aguirre: Now, I have to give some nuance to my advice because I think it's important.
[00:32:35] Felipe Aguirre: I'm talking as a recent entrepreneur, I had my startup. I'm thinking about somebody that wants to build products, and early stage startups. I don't know if enterprise software developers should follow my advice. Maybe yes, maybe not. I don't know. I'm not sure. I guess it's different if you're
[00:32:52] Simon Maple: building something from scratch, Claude doesn't have to look and already know about a huge existing system, which would be a lot of context.
[00:32:59] Simon Maple: And I think that's definitely a trickier.
[00:33:01] Felipe Aguirre: But if you're talking about startup concepts, yeah, I think that's the one like become architects, become product owners. I'm really worried about it. I think that us that were raised in this era where we actually had to write code, we're lucky enough to go through that because we will be able to audit the code, but what about the newer generations?
[00:33:20] Felipe Aguirre: I'm really worried about that.
[00:33:21] Simon Maple: It's going to be an interesting transition as well? Cause you mentioned, I think it was at 87 percent of, 87 percent of anything generated was generated by an LLM. So apart from your prompts, 87 percent generated by the LLM. The rest was added by you, whether it's specifications or code, etc.
[00:33:40] Simon Maple: And you did do a little bit of coding. How do you see that balance between human coding, the need for humans to code, write code, and the need for humans to effectively drive an LLM to write code or write some implementation, how do you see that balance changing over a year or two, five years, 10 years?
[00:34:00] Simon Maple: So it's a killer question of asking a 10 year out question about what the future is going to be with AI. I apologize for that.
[00:34:06] Felipe Aguirre: Don't worry. Yeah, it's funny because I feel that we leave, we all, I think we can all agree on that. The future became a real, a really weird concept. The future can be tomorrow, two weeks, a month, and also when you talk about when you talk with some people, you feel that they are living in the past.
[00:34:23] Felipe Aguirre: Like I have this feeling when I speak to software developers that they are not using ChatGPT or code assistants, are you living in the past? What is happening? So it's like weird because at the moment people are living in the past, in the present, and have the future right here in your nose.
[00:34:37] Felipe Aguirre: So what is that future? For me, that future immediately is, I think for as long as my mind works, I want to continue building products. Yeah. Maybe not coding. Building products, but right away, immediately, I don't think LLMs are good enough, to the point that we don't need to code anymore.
[00:34:56] Felipe Aguirre: I think we still need to code. I do dream of a world where even though I love coding, I think it would be beautiful if we can just build products out of product specifications, not prompts. I don't like the word prompts. I like it, but it's too generic. It's like saying, English.
[00:35:15] Felipe Aguirre: English is too generic. What do you mean? Is it an essay? Is it an email? Is it a music? So I would say product specification, not prompts.
[00:35:22] Simon Maple: But potentially using prompts to maybe generate those specifications or help, which is what you did with Claude. Yeah, but at
[00:35:27] Felipe Aguirre: the end, the product specification is what will matter.
[00:35:30] Felipe Aguirre: I think that's the case. Natural language, Product specifications, that you can use an LLM to help you write them. Like the blank page problem, like asking questions about this idea that I have at the end, you will get to it. It's okay. But natural language specifications, but also, technical specifications like API.
[00:35:48] Felipe Aguirre: OpenAPI schemas and stuff like that, tests. And the advantage that we have is that code is verifiable.
[00:35:57] Simon Maple: Yeah.
[00:35:57] Felipe Aguirre: So if we have good specification and good tests, I think we can get to that point. Yeah. Awesome. I don't know when, butwe'll see when it
[00:36:06] Simon Maple: won't be long. Amazing. Felipe, thank you very much and appreciate you coming to London, in person, for, it's been great chatting actually in the office for the last couple of days and, great to be able to do this podcast.
[00:36:17] Simon Maple: in, in person. Thanks for having me. It's been really fun. Absolutely. Pleasure. thank you. And, right after this, on YouTube, we're going hands on, we're going to show, Claude 3. 5,with your project set up, showthe Git flows, the ability to create specification, to generate code using the methodologies and the workflows that we just talked about. So do look out for that, and thank you for the listeners for tuning in and hope you tune in again soon.
Podcast theme music by Transistor.fm. Learn how to start a podcast here.