I started my first full-time job as a fullstack developer two months ago. Before that, I worked for about 1.5 years as a working student, mainly in frontend development. I'm currently working on a project with one other developer. We don't have a product manager, which gives us a lot of freedom to shape the product ourselves, make decisions, and experiment with new ideas. Honestly, that's an amazing situation to be in, especially as someone just starting their career.
But the way we actually develop software is making me increasingly concerned. PRs with 30,000 lines of code aren't unusual for us. Neither are functions that are several thousand lines long.
My typical workflow looks something like this:
I pick up a ticket, hand it over to Claude, and let it implement the feature. Afterward, I try to go through the generated code and understand what's happening. But I find that incredibly difficult. Partly because I simply lack experience as a junior developer, and partly because the code itself is extremely hard to follow when individual functions are thousands of lines long.
If I'm being completely honest, I sometimes don't even understand half of the code I'm committing to the codebase. Eventually, all the tests pass, I run several review loops with Claude, fix the issues it identifies, and manually test the feature in the UI. If everything works, I open a PR, which usually gets approved with little to no feedback.
I brought this up with my boss. His opinion is that Clean Code isn't really necessary anymore because Claude has no problem understanding huge, messy functions. According to him, with PRs of this size, you have to accept that certain parts of the code will essentially remain black boxes. What matters is being able to identify which changes require closer inspection.
However, I feel like you first need a pretty solid understanding of the codebase to make those judgments in the first place. His other argument is that AI models are improving so rapidly that, within six months, we might have models capable of refactoring our entire codebase on their own whenever necessary.
And honestly, maybe he's right about some of this. After all, our application has been working fine so far, without any major bugs.
But if this really is the future of software engineering, I increasingly find myself wondering what my role as a developer is supposed to be. My biggest problem is that I feel like I'm barely learning anything with this way of working. Even when I take the time to understand the generated code, I tend to forget most of it pretty quickly. There's a massive difference between simply reading through an existing solution and actually working through a problem yourself, exploring different approaches, making mistakes, and eventually writing the code on your own.
To me, it's similar to studying at university. I could read through lecture slides five times and still learn far less than if I actively engaged with the material and tried to recall what I'd learned from memory. Basically, active recall.
Of course, I understand that companies want to develop software as efficiently as possible. And I'm definitely not against using AI for programming. But I genuinely wonder how I'm supposed to build the experience and technical understanding required to become a good software engineer under these circumstances.
I've honestly reached a point where I'm seriously considering leaving software engineering altogether and moving into project management or consulting instead. Luckily, I've already completed two internships in consulting, so that wouldn't be a completely unrealistic career move.
I'm genuinely curious what you guys think about this:
- Is this becoming the normal way of working in software engineering?
- How are junior developers supposed to build solid technical skills when AI writes practically all the code?
- Does my boss have a point, and am I just holding on to an outdated idea of what software engineering should look like?
- Or should I try to find a different company before giving up on software engineering entirely?
I'd really appreciate hearing your thoughts, especially from other junior developers who also started their careers this year.