Lenny's Podcast: Product | Career | Growth
00:59:52 · Lazar Jovanovic, Lenny Rachitsky
So I was like, "Oh, okay." And that's the big disconnect that I've had all along. So again, if I'm answering your question directly of like, "Okay, what are some of the other tricks? What are some of the other things?" Design. Guys, just expose yourself to exquisite designs. Follow Felix from Lovable. He has an amazing newsletter. And learn how to prompt for a good design, learn about design styles. I didn't know what Bauhaus meant or glass morphism. I had no idea. So I built an app as well for that in Lovable. I was like, "I needed to build an app to learn these styles." So now, it's public. Anybody can see it. It's like some UIstyle.lovable.app. I don't know what it is. It has 18 different styles and prompts to replicate them. So learn what good design means, learn all the design styles, learn how to prompt to get them is probably what I would optimize for at this stage. Yeah. [01:00:56] S1: While we're on this topic, what's your sense of just engineering as a function? Do you feel like there will be a future where software engineers are still a thing? Do you feel like that goes away based on your experience?
01:01:05 · Lazar Jovanovic
[01:01:05] S0: It never goes away. We will need elite engineering more than ever. Because let me tell you this. In a world where everybody builds and everybody's building everything, who's doing the maintenance, right? Obtaining code bases, scaling code bases, maintaining projects, they're still going to be a thing definitely. And obviously, AI is going to be good at this, but again, that requires a different level of skills. Right? It's one skill to build something, it's a completely different set of skills to expand it, extend it and maintain it. And not to mention that in a world where everybody's building, infrastructure suffers. Right? Like, we all know and experienced Cloudflare went down two or three times in the last two or three months, the whole internet goes down. Elite engineers are the ones fixing this. Lovable experiences massive amounts of influx of new users. Infrastructure there suffers. Elite engineers are the ones building the infrastructure to hold the fort. Right? So I think we're going to need a lot of people with really good skills of like, "Hey, who actually builds the world that needs to support billions of builders now?" Because everybody's going to want to learn how to build stuff. How do we teach them? How do we maintain everything that they need? The hostings, the security, the email, the connectors, the APIs, the whatnots. So I think there's going to be room for it, but I'm also on the boat of people like, if I had an 18-year-old brother and he asked me what should I do, I would tell him, "Hey, go become a plumber. Don't go and get a CS degree. Learn a good trade." Because the new generation of millionaires in the US are actually electricians and plumbers and whatnot. Right? So it's a balancing act, I'd say. I don't know. I do still think that good engineers with good sense of understanding where the future is going are always going to be needed and scarce.
01:03:08 · Lenny Rachitsky, Lazar Jovanovic
[01:03:08] S1: Such an interesting question. I think to your point, there's definitely going to be, people need to keep building the machines that power all this stuff. Will we need engineers to build actual products, the application layer? That's the question. Is everyone going to be like you? Are designers just going to be all we need? [01:03:27] S0: Everybody's going to become an engineer. And let's speak to that end. I feel like I'm a rapid engineer. I'll refer to myself as a rapid engineer in a year from now, because vibe coding is just coding in 12 months from now. And even today, we spoke about this before. Like, how many elite engineers are publicly admitting, they're no longer hand coding or manually coding, whatever you want to call it. AI writes all the coding. I use the analogy here of like, coding is going to be like calligraphy. You writing code is going to be the equivalent of like, you fine printing on a canvas. And people would be like, "Oh my God, you wrote that code? That's so amazing." It's going to be so rare that it's going to become an art. Right? It's going to be commoditized completely. It already is in a sense. Most elite vibe coders rely on AI. Again, it's an amplifier. Right? So I think everybody becomes an engineer in the world of the future, a designer, a PM. Everybody is a forward deployed engineer or an AI assistant engineer or an LLM engineer or a vibe coder. The term is irrelevant. We're all using LLMs for raw output based on good judgment or bad judgment.
01:04:54 · Lenny Rachitsky
[01:04:54] S1: Oh, man. Essentially, these Venn diagrams of engineer designer, PM, they used to be very separate. Now, they're converging and people with a specific, with deeper PM, engineering design background, they can all do the same thing essentially. All the roles are converging. What a time to be alive. And it's so hard to predict exactly how this all goes, but it's fun to pontificate. I want to get back to when you get blocked. Speaking of elite engineers, in reality, you are still writing code using these tools. Sometimes code goes, things go wrong. Bugs are introduced. There's a weird database thing. There's some network issue. What do you do when you get stuck? Do you have a workflow you go through of unblocking yourself?
01:05:37 · Lazar Jovanovic
[01:05:37] S0: Yes. Great question. And absolutely true. No matter how good of a plan you have in place, you're going to run into problems eventually. And I have a small little framework that I call, four by four, just again, analogies. Right? Four by four, if you have it on your car, you're going to get yourself out of the mud much easier than the other way around. So in that sense, four different ways to debug. Attempt one of each only once, and I'll explain why in the end. First one is, again, every tool is different. I'll reference Lovable's workflow, which is when something breaks, Lovable's agent is smart enough to say, "Hey, I made a mistake." It will label that message in orange and have this little button usually, which is called, try to fix. So your agent basically admits it made a mistake. You click on a button and most times, when it's a smaller issue, it corrects the course, fixes it. No problem. Right? Now, there are situations obviously, when the problem is a little bit deeper than that. Right? You click to try to fix, but the problem persists. And sometimes even the problem persists, but Lovable's agent is unaware that it persisted. So there's no more try to fix button. Lovable thinks everything's working, but in reality, it isn't. And the culprit there is usually, you're using a third party integration. You did not give enough context to Lovable what to observe and what to see. So it can't see that the problem exists because Lovable, Cursor, Claude Code, you name it, all of these tools are good enough today to fix any problem they're aware of. Again, awareness is the key here. Right? So when they're unaware of it, there comes the second part, which is, "Okay, I need to bring the awareness layer." And what I do there is I go and very simply open the preview sandbox dev environment of my app, whatever, try to run the function that's broken, right click, read the console log. Right? Every browser allows you to just go and read the console log. And a lot of times, it will record stuff. If it doesn't, you can prompt any tool and say, "Hey, I don't think you're seeing the problem. So instead of me yelling at you, let's find it together." Right? I think it's a problem with X, Y, Z. I want you to write console logs in relevant files so that we can monitor every step along the way. Let's just bring awareness layer into the equation.
01:08:13 · Lazar Jovanovic
It writes the console logs, you rerun it. Guess what? Now you have a full history of everything that was happening. You copy that, you paste it inside your chat. 99% of the time, that's enough, that's already enough. AI is like, "Okay, got it, found it, fixed it." But then, there's situations when even that's not sufficient. So you're like, "Okay, I need to go even deeper." And that's where code reviews and evaluations come into play. My go-to tool today for that is Codex, OpenAI. What I do is any build that I do, I will export it to GitHub. Lovable allows you to own your code cursor as well. All of these tools allow you to have a copy of the code that you can export to GitHub, and then import it into wherever you want to. So I use Codex since beta, like import it in there, and then I'm using an external tool. So I'm like, in the first try, if you remember, I used the tool and I was like, total vibes, I'm relying on the tool. Right? In the second try, I use myself as the awareness facilitator. In the third one, I'm using an external tool as a facilitator, which is like, I'll either connect to Codex and chat with Codex to then fix the problem in Lovable. Right? I don't allow Codex to make code changes for me. A lot of people will say, "Why don't you like, it's a good model?" I just don't know its agent well enough. I don't want to go and use a tool that I don't know how to steer. So I use it only for diagnostic purposes and I'll also do it manually. It's an old workflow that I had before Codex and before Claude Code, which is there's a tool called Repomix, which allows you to compress your entire code base into a single file. You download it, and then I upload it to Claude, just regular Claude or ChatGPT. And I'm like, "This is what I'm building. Read it and this is the problem that I have. These are the console logs." Again, it's almost like having an external consultant at that point. You're hiring help elsewhere because your team just can't handle it. Right? And then the fourth one is usually the best one, because another time when there are problems, it's my fault. Like, no matter how your ego is big, guys, that you're watching this, it's your fault. Trust me. You had a bad prompt. You premised your request in the wrong way. You just don't want to admit it or you can't remember that you did, but it's your fault.