Speaker 1: Welcome to the deep dive. We take interesting sources, find
Speaker 1: the core insights, and well help you get up to
Speaker 1: speed fast Exactly. Today we're diving into something huge, something
Speaker 1: that's really changing the game for software development.
Speaker 2: It really is. The whole landscape is shifting.
Speaker 1: It's not just about writing code anymore, is it. It's
Speaker 1: about you know, working alongside AI, AI assisted coding. What
Speaker 1: that actually means for programmers?
Speaker 2: Yeah, the role is definitely evolving. And for this deep dive,
Speaker 2: we're leaning heavily on Addie Asmani's book Vibe Coding The
Speaker 2: Future of Programming, specifically the chapters on the seventy percent
Speaker 2: problem and beyond the seventy percent really insightful stuff.
Speaker 1: Okay, great, So our mission today, let's unpack the reality
Speaker 1: of AI and coding. We want you to understand where
Speaker 1: it's genuinely good, where it will falls down, and crucially,
Speaker 1: how you, as a human developer can use your skills
Speaker 1: to thrive with these tools.
Speaker 2: Right, it's about finding that synergy maximizing your human contribution
Speaker 2: in this sort of new AI powered world.
Speaker 1: So let's kick things off with what Osmani calls the
Speaker 1: seventy percent problem. Because these AI tools I mean they
Speaker 1: are astonishingly good at certain things.
Speaker 2: Oh, absolutely, generating boilerplate stand up functions. Yeah, they can
Speaker 2: turn that stuff out incredibly fast.
Speaker 1: Yeah, getting projects like roughly seventy percent of the way there.
Speaker 1: It feels almost like magic sometimes it does.
Speaker 2: But you know, it's fascinating how you hit this this
Speaker 2: wall after that initial burst. Peter Yang tweeted about this perfectly.
Speaker 1: Oh yeah, what did you say?
Speaker 2: He said that first seventy percent is super fast, but
Speaker 2: that last thirty percent is frustrating, like one step forward
Speaker 2: and two steps backward, new bugs popping up constantly.
Speaker 1: Hmm. That rings true. It brings up this core idea,
Speaker 1: doesn't it. This complexity divide. Fred Brooks talked about this.
Speaker 2: Ages ago, right, accidental complexity versus essential complexity.
Speaker 1: Exactly an AI. It crushes the accidental stuff, the repetitive, mechanical,
Speaker 1: oftent tedious work.
Speaker 2: Yeah, eats that for breakfast.
Speaker 1: But the essential complexity, you're truly understanding the core problem
Speaker 1: managing its inherent difficulty. That's still firmly on us, on
Speaker 1: the human developers.
Speaker 2: Absolutely, and that leads straight into what Osmoni calls the
Speaker 2: last mile gap.
Speaker 1: The last mile explain that well.
Speaker 2: The AI gives you a first draft basically a plausible solution,
Speaker 2: but that final thirty percent covering edge cases, refining the
Speaker 2: architecture so it actually scales, making sure it's maintainable long term.
Speaker 2: That needs a human, that needs serious human expertise. And
Speaker 2: AI might spit out a function that works fine for
Speaker 2: the main scenario, you know, but it won't automatically think
Speaker 2: about weird inputs or race conditions, performance issues, or what
Speaker 2: the system might.
Speaker 1: Need next year unless you explicitly tell it to or
Speaker 1: like guide it really carefully with your prompt precisely.
Speaker 2: You have to teach it in a way.
Speaker 1: And this is where it gets well, maybe big concerning
Speaker 1: the AI's confidence often doesn't match its actual reliability.
Speaker 2: Oh definitely. Stevie Edge had this great analogy. He compared
Speaker 2: LMS to wildly productive junior developers, super fast, super eager potential,
Speaker 2: actually whacked out on mind altering drugs, prone to coming
Speaker 2: up with crazy or unworkable approaches.
Speaker 1: Huh Okay. That paints a picture. So what's the real
Speaker 1: danger there for a developer?
Speaker 2: The danger is the AI doesn't really get the problem.
Speaker 2: It's just matching patterns from its training data. It's stitching
Speaker 2: things together. Right, Only a human, someone who deeply understands
Speaker 2: the domain the system, can spot if a solution that
Speaker 2: looks okay on the surface is actually hiding like long
Speaker 2: term land mines.
Speaker 1: Land mines, I like that. AI doesn't invent new abstractions,
Speaker 1: does it.
Speaker 2: It doesn't take responsibility, Nope, it remixes what it seems.
Speaker 2: So if it confidently gives you bad code and you
Speaker 2: don't catch it, while, that could be disastrous.
Speaker 1: So okay, big picture, then what's the takeaway for US developers?
Speaker 1: AI is clearly a force multiplier, a turbo.
Speaker 2: Boost definitely handles that maybe seventy percent of the grantwork, but.
Speaker 1: It's absolutely not a silver bullet. It's not replacing human judgment,
Speaker 1: not at all.
Speaker 2: That remaining harder thirty percent that still needs trained, thoughtful humans.
Speaker 2: That's where the real value add is now.
Speaker 1: Okay, good, So moving on. Asani points out, these two
Speaker 1: distinct ways teams are actually using AI right now, the
Speaker 1: bootstrappers and the iterators.
Speaker 2: Yeah, the bootstrappers, they're all about getting a new project
Speaker 2: off the ground zero to MVP right.
Speaker 1: Using tools like bolt or V zero or those screenshot
Speaker 1: to code.
Speaker 2: Things exactly imagine like a solo dev taking a Figma
Speaker 2: design and turning it into a working web app really
Speaker 2: really fast, in next to no time, as oz money
Speaker 2: puts it. That's bootstrapping with AI.
Speaker 1: Wow, that's powerful for just getting ideas.
Speaker 2: Out there quickly, totally great for validation. Then you have
Speaker 2: the iterators. These are the folks weaving AI into their daily.
Speaker 1: Coding, like using Copilot or cursor, kline, windsurf. Yeah, those
Speaker 1: kinds of tools exactly.
Speaker 2: They're using AI for com completion, refactoring, generating tests, writing docs,
Speaker 2: almost like a pair programmer.
Speaker 1: Okay, so two different modes. Yeah, but there's always a
Speaker 1: button there. They're hidden costs here, failure patterns pop it out.
Speaker 2: Yeah, definitely. One big one is this House of Cards code.
Speaker 1: Puss of Cards sounds fragile, it is.
Speaker 2: This happens when say, junior engineers just accept the AI's
Speaker 2: output too easily because it looks right. The code might
Speaker 2: seem complete, maybe even past basic tests, but under real
Speaker 2: world stress, it just collapses. It lacks that deeper architectural thought.
Speaker 2: They're robust error handling. A senior dev would build in HI.
Speaker 2: We stop that vigilance, good mentorship, because otherwise you fall
Speaker 2: into that two steps back anti pattern, Right, the one.
Speaker 1: Yang mentioned fix one bug, the AI suggest to fix,
Speaker 1: and bam, that breaks two other things.
Speaker 2: Exactly. It's this frustrating loop of diminishing returns, and this
Speaker 2: points to what Osmani calls a knowledge paradox.
Speaker 1: Knowledge paradox.
Speaker 2: Yeah, seniors use AI to go faster on things they
Speaker 2: already understand how to do, But juniors they sometimes try
Speaker 2: to use AI to figure out what to do in
Speaker 2: the first place.
Speaker 1: Ah, so are they actually hindering their own learning? Is
Speaker 1: AI creating a skill gap?
Speaker 2: That's a serious question and a real concern. It potentially
Speaker 2: could if not managed well.
Speaker 1: And it gets even wilder with agentic AI.
Speaker 2: Oh yeah, the autonomous agents like Devin AI clawd code.
Speaker 1: These things don't just suggest code, They plan and execute
Speaker 1: whole tasks.
Speaker 2: Pretty much minimal human input sometimes, which sounds amazing. But
Speaker 2: the risks they get amplified, like.
Speaker 1: What just relying on it too much?
Speaker 2: That plus not being able to step in easily if
Speaker 2: it goes off the rails, imagine cascading errors if you
Speaker 2: haven't audited its process properly.
Speaker 1: How do you even audit something like that? Effectively?
Speaker 2: It means you can't just check the final code. You
Speaker 2: need to understand its reasoning, trace its steps. Your own
Speaker 2: foundational knowledge becomes even more critical to spot the flaws
Speaker 2: it might introduce.
Speaker 1: It really hammers home the need.
Speaker 2: For fundamentals absolutely.
Speaker 1: And then there's the demo quality trap. Ah.
Speaker 2: Yes, AI builds a slick demo happy path works perfectly.
Speaker 2: Oh wow's everyone.
Speaker 1: Looks great on Twitter exactly?
Speaker 2: Yeah, but then real users touch it and all the
Speaker 2: missing polush shows up, weird error messages, crashes on edge cases,
Speaker 2: accessibility fails, performance nightmares.
Speaker 1: Stuff AI didn't think about because it wasn't explicitly told
Speaker 1: to right.
Speaker 2: Building truly self serve robust software that still takes human empathy,
Speaker 2: real world experience, and that deep sense of craftsmanship. AI
Speaker 2: isn't there yet.
Speaker 1: Not even close. It sounds like no.
Speaker 2: Okay, So given all this complexity, these traps, how do
Speaker 2: we actually use AI well day to day? Osmani says,
Speaker 2: Vibe coding isn't some weird separate thing, right, It can
Speaker 2: fit into agile DevOps totally.
Speaker 1: It's about integration. One key pattern is AI as the
Speaker 1: first drafter.
Speaker 2: So the AI writes the initial version.
Speaker 1: Yeah, AI generates the code. Then the humans step in,
Speaker 1: refine it, refactor it, test it rigorously.
Speaker 2: Makes sense. What are the key practices there?
Speaker 1: Well, team coordination is huge, like talk and stand ups. Hey,
Speaker 1: I'm gonna use AI for this part. Agree on coding standards.
Speaker 1: Maybe even feed those standards to the AI.
Speaker 2: Oh interesting, Give it context exactly.
Speaker 1: And share good prompts. A well crafted prompt can save
Speaker 1: someone else a ton of time and version control. GET
Speaker 1: must be vital, more vital than ever. Commit often try
Speaker 1: to isolate the AI generated changes. Some teams tag commits
Speaker 1: like AI.
Speaker 2: Not for blame, but for awareness.
Speaker 1: Precisely so reviewers know, okay, give this bit an extra
Speaker 1: look for hidden assumptions or edge cases. It's like a
Speaker 1: little flag saying scrutinize me.
Speaker 2: Got it? What's another pattern AI as a pair programmer.
Speaker 2: This is more of a hybrid.
Speaker 1: Approach, blending human and machine.
Speaker 2: Yeah, human intuition, machine speed. AI does the boilerplate, generate
Speaker 2: some tests, maybe the human does the critical review, ensures
Speaker 2: the quality.
Speaker 1: Ask the right questions, so like I might ask the
Speaker 1: AI to draft code for integrating a new library.
Speaker 2: Right, and then you take that draft and carefully check
Speaker 2: it against the official docs. You don't just trust it blindly.
Speaker 1: How's that different from pairing with another human?
Speaker 2: It's a different vibe. Human AI is great for rapid generation,
Speaker 2: getting scaffolding up fast. Human pairing still king for really
Speaker 2: deep problem solving, architectural debates, and just learning from each other.
Speaker 1: Okay, best practices for this AI pairing keep AI sessions
Speaker 1: focused on distinct tasks so the context doesn't get muddy.
Speaker 2: Write clear, focused prompts, review the output constantly, commit frequently,
Speaker 2: keep that feedback loop tight. Iterating with the.
Speaker 1: AI makes sense.
Speaker 2: And the last pattern, AI is a validator, using tools
Speaker 2: like deep code or snick for bugs and security issues,
Speaker 2: or things like test GTT or Quoto to help generate
Speaker 2: test cases.
Speaker 1: So AI does the first pass.
Speaker 2: Analysis, Yeah, spots the obvious stuff. Then human review focuses
Speaker 2: on the tricky bits, the complex logic, the user experience,
Speaker 2: any ethical concerns.
Speaker 1: It's a collaboration, like a tireless intern, finding common mistakes,
Speaker 1: freeing you up for harder problems.
Speaker 2: Exactly that.
Speaker 1: Okay, This leads nicely into what osminding calls the golden
Speaker 1: rules of vibe coding. With all these possibilities and pitfalls,
Speaker 1: what are the absolute must dos? The core philosophy.
Speaker 2: Rule one basically, be specific, clear prompts, Tell the AI
Speaker 2: exactly what you want, like giving instructions to that brilliant
Speaker 2: but very literal intern right. And then always always validate
Speaker 2: the output. Check it against your intent. Don't just assume
Speaker 2: it's right because it looks convincing.
Speaker 1: Treat AI like a junior dev. Need supervision, constant supervision, and.
Speaker 2: Use it to expand what you can do, not to
Speaker 2: switch off your brain. Don't let it replace your critical thinking.
Speaker 2: That's absolutely key.
Speaker 1: Coordinate with your team before you start generating swaths of
Speaker 1: code with AI.
Speaker 2: Yes, talk about it. Make AI use normal, transparent, not
Speaker 2: some hidden secret.
Speaker 1: Isolate AI changes and get separate commits.
Speaker 2: Makes life easier definitely, and ensure all code gets reviewed.
Speaker 2: Human written AI written doesn't matter. Code review is non negotiable.
Speaker 1: And the big one. Don't merge code you don't understand, period,
Speaker 1: no matter how cool the AI made it look.
Speaker 2: Couldn't agree more. And finally, prioritize documentation comments ADRs, especially
Speaker 2: for complex AI generated bits. Share good prompts, reflect on
Speaker 2: what's working what's not. Iterate.
Speaker 1: These aren't just about getting code out faster, are they?
Speaker 1: They're about keeping quality, clarity, and control.
Speaker 2: Exactly, maintaining sanity in this rapidly changing field.
Speaker 1: Okay, so that brings us to beyond the seventy percent,
Speaker 1: that crucial thirty percent where human skills are just irreplaceable.
Speaker 1: This is where you really add value or future proof
Speaker 1: of your career.
Speaker 2: Absolutely, this is the zone of maximum human contribution.
Speaker 1: So for senior engineers, what does this look like?
Speaker 2: You become the architect, the editor in chief. Let the
Speaker 2: AI be the fast typer generating the first draft, but
Speaker 2: you are the brain. You define the architecture. You've vet
Speaker 2: every line, you maintain the high standards.
Speaker 1: You push back if people are just throwing raw AI
Speaker 1: code over the wall.
Speaker 2: Exactly. You also use AI as that force multiplier for bigger,
Speaker 2: more ambitious projects. Steve yeggs these chat oriented programming or
Speaker 2: chop idea fits here.
Speaker 1: Chop iterative prompting, Yeah, refining prompts.
Speaker 2: Collaborating with the AI. It lowers the barrier to entry
Speaker 2: for those wouldn't be nice if projects that maybe seem too.
Speaker 1: Big before and mentoring becomes even more critical for seniors.
Speaker 2: Hugely coaching less experienced folks on how to use AI effectively,
Speaker 2: how to self review how to test properly, championing diligence
Speaker 2: and critical thinking about the AI's.
Speaker 1: Output, Cultivating domain mastery using your history and business knowledge.
Speaker 2: Right, that's how you catch the AI's subtle mistakes. Trust
Speaker 2: your gut. When code looks off, your experience often spots
Speaker 2: things the pattern matter misses.
Speaker 1: And with AI handling some routine coding, seniors need to
Speaker 1: double down on soft skills leadership.
Speaker 2: Totally communicating with stakeholders, leading design discussions, making those tough
Speaker 2: judgment calls. AI can't being the indispensable technical guide for
Speaker 2: the team.
Speaker 1: Okay, what about mid level engineers. They might feel squeezed.
Speaker 1: Maybe tasks automating.
Speaker 2: It's definitely a shift, but it's an elevation, not elimination.
Speaker 2: The key is adapt and specialize. How so deepen those
Speaker 2: CS fundamentals, data structures, algorithms, distributed systems, databases, networking. This
Speaker 2: stuff helps you manage the tricky integrations, the boundaries between systems,
Speaker 2: the edge cases AI flubs.
Speaker 1: Become the integration expert.
Speaker 2: Yeah, and build deep domain expertise. Finance, healthcare, and real
Speaker 2: time systems, places where nuanced human understanding is vital. Bridge
Speaker 2: that gap between code and real world impact.
Speaker 1: Master performance and DevOps too.
Speaker 2: Oh yeah, As generating code gets easier, making it perform
Speaker 2: well and deploy reliably becomes super valuable. Understand the whole stack,
Speaker 2: monitoring security costs.
Speaker 1: And focus hard on code, reviewing QA relentlessly.
Speaker 2: AI often gives you functional but horribly optimized code. As
Speaker 2: Osmani says, you need to be the quality gatekeeper. Develop
Speaker 2: a strong testing mindset, diagnose the complex bugs.
Speaker 1: Learn systems big picture crucial.
Speaker 2: AI doesn't currently get the user needs or business goals
Speaker 2: unless you tell it very specifically. You need to hold
Speaker 2: that context, see how all the pieces fit.
Speaker 1: Together, and just keep learning right, be adapt.
Speaker 2: On, stop, learn the fundamentals deeply, stay curious about AI tools,
Speaker 2: maybe even do those AI detox days to keep your
Speaker 2: own coding muscles strong, smart idea.
Speaker 1: Communication skills too. Translating business needs.
Speaker 2: More important than ever, and prompting AI well is actually
Speaker 2: a form of precise communication itself. Asking good questions both
Speaker 2: of humans and machines.
Speaker 1: Learn system design and architecture.
Speaker 2: Yes, designing robust, scalable, secure systems that needs an experienced
Speaker 2: human hand on the wheel. AI offers limited help there
Speaker 2: right now.
Speaker 1: But still use the AI right, don't avoid.
Speaker 2: It absolutely, use it daily, scaffolding prototypes, pair programming, repetitive stuff.
Speaker 2: Let it handle that while you focus higher.
Speaker 1: Up and maybe venture into UIUX thinking.
Speaker 2: Yeah, develop better product sends, Collaborate better with designers. Understand
Speaker 2: the user because coding itself might not be the bottleneck anymore.
Speaker 2: Understanding what to build and why that's key.
Speaker 1: Okay. Finally, junior developers lots of anxiety. Maybe headlines about
Speaker 1: the death.
Speaker 2: Of the junior death understandable anxiety, but the role is evolving,
Speaker 2: not vanishing. The bar might be rising. You need stronger fundamentals,
Speaker 2: faster perhaps, but you're needed to effectively use and validate
Speaker 2: these tools.
Speaker 1: So number one piece of advice.
Speaker 2: For juniors, learn the fundamentals, don't skip the y. Use
Speaker 2: AI like a tutor, ask it to explain things, but
Speaker 2: build your own mental model of data, structures, algorithms, memory.
Speaker 2: You need that to know when the AI is wrong.
Speaker 1: Practice problem solving without the AI.
Speaker 2: Sometimes yes, do those AI free days. Debug AI code
Speaker 2: yourself first before asking the AI to fix it. That
Speaker 2: builds real confidence and understanding. Don't outsource all the learning.
Speaker 1: Focus on testing and verification. Challenge the AI's output exactly.
Speaker 2: Write tests, for its code. Prof it works. Catching an
Speaker 2: AI bug that's pure human value right there.
Speaker 1: Build an eye for maintainability. Go beyond just making it work.
Speaker 2: Yeah, look at code structure style, refactor messy AI code.
Speaker 2: Internalize good design principle.
Speaker 1: Develop prompt skills but wisely it's useful.
Speaker 2: Sure, but good prompting often just reflects good understanding of
Speaker 2: the problem itself. Use AI like a supercharged stack overflow,
Speaker 2: a powerful assistant, not an oracle.
Speaker 1: Seek feedback, mentorship from humans absolutely critical.
Speaker 2: Learn the nuances, the trade offs, the soft skills from
Speaker 2: your team. Be open to feedback on your AI assisted code.
Speaker 1: And remember communication and collaboration software as a team sport.
Speaker 2: Always has been, always will be. Humans clarify requirements, coordinate,
Speaker 2: Even prompting is communication. Shift your mindset. Don't just consume
Speaker 2: AI answers, Understand them, dissect them. Learn how you could
Speaker 2: have gotten there yourself. That's how you level up.
Speaker 1: So pulling it all together. The durable skills for the
Speaker 1: future in this AI world seem to be this in
Speaker 1: design systems thinking, critical thinking, domain expertise, quality is sharing
Speaker 1: and communication, adaptability, continuous learning.
Speaker 2: That's the core list. These skills are durable because they
Speaker 2: don't become obsolete with the next AI model. If anything,
Speaker 2: AI makes them more important, right.
Speaker 1: As Simon Wilson says, AI makes strong programming skills more valuable,
Speaker 1: not less.
Speaker 2: Exactly, think of an experienced engineer like a seasoned pilot
Speaker 2: with a super advanced copilot. Faster journey, maybe farther, but
Speaker 2: the pilot still needs to navigate, make decisions, land the
Speaker 2: plane safely.
Speaker 1: Software engineering was always about solving problems really, not just
Speaker 1: writing code lines Precisely.
Speaker 2: AI doesn't change the fundamental goal. It just challenges us
Speaker 2: to solve problems at a higher level, maybe tackle things
Speaker 2: we thought were impossible before.
Speaker 1: So the future involves less typing, maybe more directing and
Speaker 1: curating
Speaker 2: Seems likely, but it will always always need human developers
Speaker 2: at the center, people with the wisdom, the judgment, the
Speaker 2: deep understanding to actually do it right.