**Claude is Good at Assembling Blocks, but Still Falls Apart at Creating Them**
The latest release of Opus 4.5 has left many in awe of its capabilities. Some even claim it's a step-change in the field of Artificial General Intelligence (AGI). While I agree that Claude is an incredibly impressive tool, my experience with it suggests a more nuanced view.
After using Claude in real-world codebases for several weeks, I've come to realize that its abilities are not as straightforward as some might think. In fact, the same pattern of behavior has emerged time and time again – whether it's debugging, migration, or refactoring. And this pattern is exactly what senior engineers do.
**Debugging with Claude**
One of my most impressive experiences with Claude was when I asked it to debug a Sentry setup that was causing me endless frustration. I had tried numerous approaches, but without any good logs, I was forced to resort to guess-and-check methods. That's when I turned to Claude.
I wrote a simple testing script using Playwright that simulated a chat on our website and connected it to Sentry via MCP. I then gave Claude the task of figuring out why Sentry wasn't working as expected. And after about an hour and a half, it finally solved the problem – which was caused by the fact that Sentry automatically sets up transactions for FastAPI endpoints but not for ones that return StreamingResponses.
This experience highlights the incredible power of Claude in performing tasks that would be tedious and time-consuming for humans. With tools like Playwright and Terraform, Claude can essentially automate a significant portion of the debugging process – making it an invaluable asset to any team.
**Migrating from Modal to AWS ECS**
Another impressive feat I witnessed was when I asked Claude to migrate our infrastructure from Modal to AWS ECS. The task seemed daunting at first, but with Terraform and access to the AWS CLI, Claude effortlessly created Dockerfiles for our code, pushed them to AWS's container registry, set up permissions using the cli, and configured AWS ECS configs in Terraform.
What struck me most about this experience was how quickly Claude completed the task – in just three hours. And what would have taken me a day or two, filled with numerous mistakes and hours spent poring over documentation, was now done without a hitch. This is precisely why I believe AGI will not replace human engineers anytime soon.
**Senior Engineers: The Unsung Heroes**
So, what exactly do senior engineers do? They're not just code wizards who magically write perfect solutions; they're also gardeners, constantly pruning and refining the existing codebase to ensure it remains elegant and efficient. This requires a deep understanding of the underlying system, as well as the ability to identify areas where improvements can be made.
Senior engineers are not limited by their technical abilities but rather by their willingness to execute non-obvious improvements quickly and fight for large step changes that pay off in multiples down the road. In contrast, Claude's powers are limited by the quality of the abstractions it's given – which highlights the importance of well-designed infrastructure.
**The Limitations of Claude**
While Claude can assemble blocks with ease when given good infrastructure and abstractions, it still falls apart when tasked with creating them from scratch. This is because Claude lacks a "soul" – it doesn't have its own desires or motivations beyond executing tasks to the best of its ability.
This lack of creativity and original thought means that Claude can only build upon existing knowledge and cannot reproduce complex, well-designed pieces of code like Sentry and Terraform. Until Claude is given a soul, I believe we should temper our enthusiasm for its capabilities.
Despite these limitations, Claude remains an incredibly valuable tool – one that highlights the importance of good abstractions and infrastructure in software development. So let's not get carried away with visions of AGI just yet; instead, let's focus on harnessing Claude's powers to make our work easier and more efficient.
**A Final Note**
I'd like to thank Konsti for pointing out the need for clarification in my React section. I've revised it to better explain the mistake made by Claude – which was proposing a linear lookup where a fast lookup would have been possible had it understood the underlying data structures.