Latest / AI Fire Daily / #558 Neil: Coding Agent Skills That Make Senior Engineers Stronger
Transcript
- 0:00Imagine a software engineer at Coinbase on a
- 0:04Monday morning. They have this brilliant idea
- 0:06for a new feature. Now two years ago that idea
- 0:09set in a really sluggish pipeline. Oh, absolutely.
- 0:12The endless Jared ticket updates. Exactly. It
- 0:15required all these planning meetings. It took
- 0:17eight full days just to become a poll request
- 0:20today. That exact same process takes under 30
- 0:24minutes. It is wild. It really is. It is staggering
- 0:28to think about. But here is where it gets highly
- 0:30interesting. The secret isn't just the sheer
- 0:33power of the AI itself. Not at all. It actually
- 0:36requires the exact legacy engineering skills
- 0:40we thought were dead. Right, skills we assumed
- 0:42AI was going to completely replace. Welcome to
- 0:45the deep dive. Today, our mission is exploring
- 0:48autonomous coding agents. We are looking at tools
- 0:51like Cloud Code, Codex, and Cursor, and we will
- 0:54see how they actually make traditional software
- 0:56engineering skills more valuable than ever before.
- 0:58The shift is truly incredible to witness, honestly.
- 1:01We are rapidly moving away from humans just manually
- 1:04typing out code. Right. Now, humans are building
- 1:06these massive systems that manage the AI. Which
- 1:09is a whole different ballgame. Exactly. Yeah.
- 1:12We will look at real enterprise setups today
- 1:14from OpenAI and Stripe. We will break down exactly
- 1:17how to automate away recurring AI mistakes. Yeah.
- 1:21Ultimately, we're going to completely redefine.
- 1:24what a senior engineer actually does. Okay, let's
- 1:27unpack this core paradox first. Yeah. Because
- 1:29before these coding agents arrived, development
- 1:32was, well, very isolated. It's isolated, yeah.
- 1:35An environment supported one single human developer.
- 1:38You wrote your code, you ran your own tests locally.
- 1:41It was a very simple one -to -one relationship.
- 1:43Yeah. Your local machine was set up perfectly
- 1:44for your specific kind of idiosyncratic habits.
- 1:47Right. But now... That exact same setup has to
- 1:51guide many autonomous agents. And they are all
- 1:54working simultaneously across an entire massive
- 1:57code base. Which introduces absolute chaos if
- 1:59you lack strict boundaries. Oh, total chaos.
- 2:01Before agents, one bad commit may be ruined your
- 2:03afternoon. Now, ten agents running parallel tasks
- 2:07could theoretically corrupt an entire architecture
- 2:09in seconds. Exactly. And this is why traditional
- 2:12system rules are absolutely foundational now.
- 2:14They are literally the only way to allow AI to
- 2:18function safely at scale. This brings us to the
- 2:20OpenAI codex case study. Right. They build a
- 2:23complex product utilizing codex internally, but
- 2:27they didn't just unleash the AI and hope for
- 2:29the best. No, they created a tightly controlled
- 2:32environment first. It was highly rigid. What
- 2:35is fascinating here is how they enforced architectural
- 2:38rules mechanically. They didn't just write a
- 2:42polite prompt asking the AI to behave nicely.
- 2:45No, polite prompts don't scale. They built custom
- 2:48linters. And for those unfamiliar, linters are
- 2:51tools that scan code to automatically block formatting
- 2:55or logic errors. Yes. Think of them as automated
- 2:58tripwires. They are hidden right there in the
- 2:59deployment pipeline. So they just catch the bad
- 3:01code immediately. Exactly. They instantly detect
- 3:04and block it before it merges into the main branch.
- 3:06They hard -coded their architectural boundaries
- 3:08directly into the working environment. And they
- 3:10paired these linters with incredibly robust CI
- 3:14workflows. And CI workflows are automated systems
- 3:17that test and build code before merging changes.
- 3:20They checked deep dependency rules automatically
- 3:23on every single agent commit. It was rigorous.
- 3:26Wow. They checked for structured logging protocols.
- 3:29They strictly enforced variable naming conventions.
- 3:32They even had hard file size limits. So how does
- 3:35this feedback loop actually work under the hood?
- 3:38I'm trying to visualize the mechanical interaction
- 3:40here. Sure. If the AI breaks a rule, how does
- 3:43it know why it failed? Does a human engineer
- 3:45have to step in and translate the error code?
- 3:48That is the genius of their automated setup.
- 3:51No human engineer ever steps in to explain the
- 3:54failure. Really? Never. When codecs broke an
- 3:57architectural rule, the linter didn't just flash
- 4:00red and stop. Okay. The lint message actively
- 4:02rejected the bad code, sure. But it also did
- 4:05something else. It explained the exact structural
- 4:07problem to the agent. Yes. It appended detailed
- 4:11fixing instructions directly back into the agent's
- 4:13context window. So the AI learned how to fix
- 4:15it immediately from the system itself. I picture
- 4:18this dynamic kind of like bowling with bumper
- 4:20lanes. Oh, I like that. The AI is the bowling
- 4:23ball rolling down the lane. It desperately wants
- 4:26to knock down the pins and build the feature.
- 4:27Right. It has a goal. But the LINT rules and
- 4:30CI tests are the physical bumpers. They keep
- 4:33the ball completely out of the gutter. We do
- 4:35not have to watch every single roll manually.
- 4:37Because the bumpers handle all the micromanagement
- 4:40for us. Yes. And once those physical bumpers
- 4:43are locked into the code base, they reliably
- 4:46guide every future code change made by any agent.
- 4:49So no engineer has to endlessly repeat instructions
- 4:53in every single prompt. Exactly. It lets the
- 4:56entire team move incredibly fast. Because the
- 4:59underlying architecture stays perfectly consistent
- 5:01despite the massive volume of generated code.
- 5:04Yep. Every coding agent gets that instantaneous,
- 5:08perfectly accurate feedback. You get exponentially
- 5:11more code without checking every tiny logic change
- 5:14manually. And the overall software quality doesn't
- 5:17degrade over time. Not at all. I am struggling
- 5:19with the implications of the feedback loop here,
- 5:21though. Does this mean manual code review is
- 5:24basically dead? That is a great question. It
- 5:26definitely shifts our daily focus away from the
- 5:28mundane stuff. We absolutely stop reviewing basic
- 5:32syntax errors or missing brackets. Instead, we
- 5:35review the underlying integrity of the system
- 5:37rules themselves. We audit the bumpers. Got it.
- 5:40We review the system's guardrails, not just the
- 5:44raw code. Yes. And that is a massive conceptual
- 5:47leap. You are managing the overarching system
- 5:50that directly manages the AI. So we know these
- 5:54system rules are entirely non -negotiable now.
- 5:56They keep the autonomous agents from silently
- 5:58destroying the code base. Right. But OpenAI's
- 6:01approach works for a tightly controlled custom
- 6:03build environment. What happens in the messy
- 6:06reality of the trenches? Oh, it gets complicated.
- 6:09Because I still wrestle with prompt drift myself.
- 6:11We all do. It is incredibly frustrating. The
- 6:14agent fixes a complex issue perfectly on Tuesday.
- 6:17Yeah. But then on Thursday, it completely forgets
- 6:19the broader context. It makes the exact same
- 6:22architectural mistake all over again. You are
- 6:24definitely not alone in facing that specific
- 6:27friction. who created Claude Code, has a brilliant
- 6:32insight on this exact problem. Oh, really? He
- 6:35argues that manually fixing the same issue repeatedly
- 6:38is a dangerous trap. Well, it wastes expensive
- 6:41computing tokens for one thing. It does. Yeah.
- 6:44But worse, it severely risks future architectural
- 6:47misses. Right. Eventually the human reviewer
- 6:50gets tired. You might miss that same hallucinated
- 6:53import on the tenth time it happens. Humans get
- 6:55fatigued. Exactly. So the overarching goal is
- 6:58to turn that temporary prompt solution into a
- 7:00permanent boundary. We need to systematically
- 7:02automate the automator. Bingo. But how do we
- 7:05build these rules? When the AI keeps repeating
- 7:09very specific errors, let's break down the practical
- 7:12workflow from our sources. OK. Imagine Claude
- 7:15imports a module from the wrong architecture
- 7:17layer. Let's say it grabs a database driver for
- 7:19a front -end component. Which is a classic AI
- 7:22hallucination. It just grabs whatever looks plausible
- 7:24to save time. It happens constantly. Now, your
- 7:26first instinct is usually just to type, hey,
- 7:29fix this import path. You have to resist that
- 7:31urge immediately. Do not just ask it to fix the
- 7:35raw code. Because that doesn't solve the root
- 7:37issue. Exactly. You have to force the agent to
- 7:40understand the underlying pattern. You give it
- 7:42a very specific, deliberate sequence of steps.
- 7:45Okay. Step one, ask it to show hard evidence
- 7:49of this repeating issue. So you make the agent
- 7:52dig through the commit history and find the pattern
- 7:55itself. Yes. Step two, ask it to explain the
- 7:58fundamental root cause. Why is it consistently
- 8:01misunderstanding this specific architectural
- 8:04boundary? And step three is where the real magic
- 8:07happens, I assume. You ask it to proactively
- 8:10choose a long -term solution. Like writing a
- 8:13new custom lint rule or generating a new automated
- 8:15test. Yes. And finally, step four, you force
- 8:18the agent to build the solution and confirm it
- 8:20actually detects the problem. It has to mathematically
- 8:23prove the new bumper works. Let's ground this
- 8:25in a specific concrete example from the source
- 8:27material to make it real. It really highlights
- 8:29the power of this methodology, honestly. So two
- 8:31front -end UI files completely bypass the backend
- 8:35service layer. Yeah. They were querying the database
- 8:38directly, and the code base's existing automated
- 8:41tests completely missed this severe violation.
- 8:45They missed it because traditional tests usually
- 8:47only check the final user output. Right, they
- 8:50just verify if the button turns blue and clicks.
- 8:53Exactly. They rarely check the hidden architectural
- 8:56path the data took to render that button. So
- 8:59the engineering team used this exact prompt workflow
- 9:02we just talked about. Claude Code analyzed the
- 9:05critical gap in the testing suite. It realized
- 9:08why the UI was able to fetch data directly without
- 9:10triggering alarms. And then it generated a highly
- 9:13reusable structural check. It added that new
- 9:16check directly into the CI Workhole pipeline.
- 9:18So the new test failed when the bad direct query
- 9:21code was present. Yep. And it passed successfully
- 9:24when the correct architecture was restored. It
- 9:27removed the manual work we would normally repeat
- 9:29through endless exhausting prompts. Every single
- 9:32automation you build like this permanently hard
- 9:34codes your team's specific standards. It's beautiful.
- 9:37But here's where I get slightly skeptical about
- 9:39this entire process. Wow. Isn't asking an AI
- 9:41to write its own governing rules slightly risky?
- 9:44Yeah. It feels a bit like building a flimsy house
- 9:47of cards. out of AI -generated LINT rules. That
- 9:50is a very varied operational fear, which is precisely
- 9:54why this specific prompt workflow demands hard
- 9:58historical evidence. Ah. The AI cannot just invent
- 10:01a restrictive rule based on a momentary hallucination.
- 10:05It must prove the repeating issue exists in the
- 10:08actual code base history before proposing any
- 10:11structural change. Makes sense. Require hard
- 10:13historical proof before changing the actual system
- 10:16rule. Exactly. You never just let it guess at
- 10:18your architecture. You make it prove the fundamental
- 10:20problem exists first. But catching errors like
- 10:23that is still purely reactive, though. We are
- 10:26building the bumpers after the ball already went
- 10:28into the gutter. We need to shift our thinking
- 10:30to the proactive side now. How do we give these
- 10:32agents the hidden team knowledge up front? The
- 10:36unspoken context. Yes, the stuff that usually
- 10:38only lives inside a senior developer's head.
- 10:41And that hidden context is absolutely everything.
- 10:44I mean, AI doesn't automatically know why your
- 10:47specific team chose a relational database over
- 10:50a document store. Right. It doesn't inherently
- 10:53know your bespoke historical naming conventions.
- 10:55And when it lacks that crucial context, it just
- 10:58guesses. It does. It hallucinates a convention
- 11:01that looks plausible, but is fundamentally incompatible
- 11:05with your stack. It is kind of like stacking
- 11:06Lego blocks of data using the wrong size pieces.
- 11:09That's a great way to put it. And this specific
- 11:12problem scales exponentially as your team grows.
- 11:15I can imagine. Stripe faced exactly this terrifying
- 11:19chaos when they evolve their workflow. They hand
- 11:22a cursor out to over 3 ,000 internal developers.
- 11:253 ,000 developers using AI agents simultaneously.
- 11:28Yeah. Think about the sheer volume of code being
- 11:31generated every hour. If every agent is blindly
- 11:34guessing at the internal rules, it would be absolute
- 11:37anarchy. The merge conflicts alone would crash
- 11:39the entire system. Wow. So to proactively prevent
- 11:42this, Stripe utilized something called cursor
- 11:45rules. This provided deep bespoke code -based
- 11:49context right from the very start. Let's unpack
- 11:51the actual mechanics of that system. How do cursor
- 11:55rules actually interface with the IDE's context
- 11:58window? Good question. Because it doesn't just
- 12:01force the AI to read the entire massive repository
- 12:04every time you type. No, no. That would fry the
- 12:06context window immediately. Right. Under the
- 12:08hood, it injects only the rules relevant to the
- 12:11specific domain the developer is currently touching.
- 12:14So a front -end developer automatically sees
- 12:16the front -end guardrails. Exactly. And a back
- 12:18-end engineer automatically gets the database
- 12:20rules. The AI already knows the... intricate
- 12:23rules of the road before the developer even types
- 12:26their very first prompt. They do not have to
- 12:28explain team conventions ever again. You can
- 12:31structure this exact same proactive knowledge
- 12:33yourself too. If you're using Claude code, the
- 12:35mechanism is a file simply named ClaudeE .md.
- 12:39It sits right in the root directory of your project.
- 12:42But the underlying strategy for writing this
- 12:43file is crucial. It must be brutally ruthlessly
- 12:46concise. Too sex silence. It acts as a lightweight
- 12:49map pointing to deeper external documentation.
- 12:53It is not a giant sprawling dump of every single
- 12:57project rule. Okay, but say you have a massive
- 12:59undocumented legacy project. A nightmare scenario,
- 13:02sure. How do you actually build this map without
- 13:04spending three agonizing weeks writing it manually?
- 13:07There is a brilliant prompt strategy specifically
- 13:10for this scenario. You leverage the agent to
- 13:14explore and map its own environment. Oh, that's
- 13:16smart. You ask the AI to thoroughly study the
- 13:20existing code base. So you have it trace the
- 13:22underlying architecture and the complex data
- 13:24flow. Yeah. You have it document your repeatable
- 13:26terminal commands and build workflows. Then you
- 13:29ask it to draft short punchy instructions for
- 13:31that clay .md file. It can even propose specialized,
- 13:35deeper docs for highly complex functional areas.
- 13:38But here's the critical catch in the workflow.
- 13:41You mandate a hard pause for human approval.
- 13:43This is non -negotiable. The AI is strictly forbidden
- 13:46from modifying any actual files during this discovery
- 13:48phase. You review the drafted map first. You
- 13:52verify it accurately reflects the unspoken ghost
- 13:55in the machine of your team's actual culture.
- 13:58And only then do you let it commit the documentation.
- 14:02Exactly. I have to challenge this slightly though.
- 14:04Hit me. Why not just cram every single team rule
- 14:07into one giant prompt file? Wouldn't giving the
- 14:11AI more context always yield better, more accurate
- 14:14results? It actually has the exact opposite effect,
- 14:17surprisingly. Really? Yeah. A massive bloated
- 14:20file completely overwhelms the agent's limited
- 14:23context window. It heavily dilutes the critical
- 14:26information. It becomes mathematically impossible
- 14:29for the AI to figure out which rules actually
- 14:31matter most for the immediate task at hand. Right.
- 14:34Too much context just dilutes the most critical
- 14:37rules. It is exactly like handing a new hire
- 14:39a thousand page manual on their very first day.
- 14:42They won't remember the truly important parts.
- 14:44You need a quick scannable reference guide instead.
- 14:46OK, we are going to take a quick break. But when
- 14:48we come back, we'll look at what this all means
- 14:49for the actual humans running the floor. Sounds
- 14:52good, sponsor. All right, we are back. So, we
- 14:56have encoded the hidden team knowledge cleanly.
- 14:59We have. We have automated our architectural
- 15:02guardrails with custom linters. The bumpers are
- 15:04firmly up. The entire system is humming autonomously.
- 15:09If you are managing an engineering team right
- 15:11now, this is where your workflow fundamentally
- 15:14changes. Radically changes. What does this actually
- 15:16mean for the human engineers running the floor?
- 15:19It demands a complete reevaluation of our daily
- 15:21jobs. As the AI agents increasingly handle the
- 15:25raw code implementation, the human role completely
- 15:28changes. We elevate from typists to systems designers.
- 15:33That's exactly it. Let's revisit that incredible
- 15:35Coinbase example we mentioned at the start. They
- 15:37didn't just casually slap AI onto their existing
- 15:40agile process. No, they recognized the paradigm
- 15:43shift. They rebuilt their entire operational
- 15:45process from the ground up around Cursor. Teams
- 15:48now write product requirements specifically formatted
- 15:50so autonomous agents can easily read them. Right,
- 15:53and they lean heavily into a feature called plan
- 15:55mode first. Let's explain what that actually
- 15:58does mechanically before any code is written.
- 16:01Sure. Plan mode forces the AI to stop and think
- 16:04systematically. Instead of immediately vomiting
- 16:06raw code, the agent reads the requirements and
- 16:09generates a comprehensive dependency graph. So
- 16:12it outlines every single file it intends to modify.
- 16:15It proposes the specific architectural path it
- 16:18wants to take. And the human engineer carefully
- 16:21reviews this logical plan. They don't just blindly
- 16:24accept it. No, they tweet the logic. identify
- 16:27edge cases, and only then approve the actual
- 16:29code generation. And the resulting metrics from
- 16:32this workflow are just mind -blowing. Let's deliver
- 16:34those numbers again, because they really reframe
- 16:36everything. The total time from a raw idea to
- 16:39the first pull request dropped from 8 days to
- 16:42under 30 minutes. Insane! And the time from an
- 16:45idea all the way to a live production environment.
- 16:48That plummeted from 20 full days down to 1 .8
- 16:51days. Whoa! Imagine scaling to that level of
- 16:54speed, taking a 20 -day product cycle down to
- 16:57under two days. That fundamentally changes reality.
- 17:00The compound interest on that velocity is almost
- 17:02unfathomable. It really is. It shatters our traditional
- 17:05understanding of software delivery. But we have
- 17:09to emphasize it only works because of the senior
- 17:11engineers continuously managing those automated
- 17:14guardrails. Exactly. And this brings us to the
- 17:18ultimate redefinition of seniority in this new
- 17:20era. It is a massive structural paradigm shift.
- 17:24Because being a senior developer is no longer
- 17:27just about fixing a junior's architecture mistake
- 17:29in a manual pull request. Right. It is about
- 17:32creating a structural rule that stops every future
- 17:35coding agent from ever making that mistake again.
- 17:38You solve the deeply complex problem once, then
- 17:41you systematically automate the prevention. Your
- 17:44hard -earned experience literally becomes part
- 17:47of the automated workflow. Yeah. You are coding
- 17:49your own expertise directly into the environment.
- 17:51You are building the automated factory itself.
- 17:54You are no longer just hammering the individual
- 17:56widgets on the assembly line. But if senior devs
- 17:58are just building the factory guardrails now,
- 18:01how do junior developers ever learn the ropes?
- 18:03That's a huge concern for a lot of people. Don't
- 18:05they need to struggle through writing that raw
- 18:07code to truly understand the underlying systems?
- 18:11Not necessarily. They actually learn by interacting
- 18:14directly with the automated feedback loops. Oh,
- 18:16interesting. When a junior developer or their
- 18:19AI assistant makes a structural mistake, the
- 18:22system instantly catches it. It doesn't wait
- 18:24for human review. Right. It explains the failure
- 18:27and provides the fix in real time. Fascinating.
- 18:30The system itself becomes an interactive mentor
- 18:33for the junior developers. Yes, they get instant,
- 18:36perfectly accurate feedback on every single commit
- 18:38they make. They do not have to wait three days
- 18:41for a senior engineer to review their cloud.
- 18:43It is actually a vastly superior, psychologically
- 18:46safer learning environment. Okay, let's pull
- 18:48all of these threads together for you. Let's
- 18:50do it. The great paradox of the coding agent
- 18:52era is truly fascinating. The more code the AI
- 18:55writes autonomously, the more critical your human
- 18:58design system rules become. The robust automated
- 19:01tests, the intricate custom lint rules, the continuous
- 19:05integration checks. Exactly. Clear, hyper concise
- 19:09documentation is more vital than ever before.
- 19:11It really is the bedrock. You solve a complex
- 19:14architectural problem once, you build a system
- 19:16that flawlessly remembers it forever. The old
- 19:21legacy skills of system architecture and test
- 19:24-driven development are actually the master keys
- 19:26unlocking this new world. It has been amazing
- 19:29exploring the mechanics of this with you. Thank
- 19:31you for joining us on this deep dive. But before
- 19:34we sign off, I want to leave you with a thought.
- 19:36We are building these automated checks so that
- 19:38AI can safely update the code base today. Right.
- 19:41But what happens when the AI starts independently
- 19:44identifying massive workflow gaps. Oh boy. What
- 19:48happens when it starts writing its own governing
- 19:50rules without asking for human permission first?
- 19:53Will our code bases eventually become completely
- 19:55self -governing entities? Something for you to
- 19:58chew on until next time.