Who knows, perhaps I will immediately plateau and never learn or improve after 30 ;)
If I'm brutally honest with myself, I used to think I was a lot better than I was.
I could fix any bug, I could add loads of new functionality. I was great.
What I wasn't appreciating was that the senior devs had set up an architecture for me to succeed. They'd laid out the code and made the loads of small decisions born of experience that meant I was basically coding with training wheels. I could simply look at how they'd done it and use the same technique. I didn't have to make any decisions, nor was I aware of the decisions they'd made.
What I've seen since is where someone's employed graduates to build something from scratch, those systems are a real mess. They literally code themselves into corners. Adding new functionality becomes harder and harder until they quit and the client has to call in the big boys.
I remember chatting to a senior contract game dev a year or two ago at a meetup, he was complaining that he never got to make a game. He always got called in at the end to optimise the game and do the best he could to fix the stupid architecture decisions the cheap, disposable, inexperienced game devs they'd used to make the game had made.
Stupid edit lock.
The technology world is so rich with concepts now that you could spend your whole lifetime learning and never accomplishing anything. So why should I pay to learn something that only this project requires? Every project will have something new, therefore I can never make money? No, the cost of learning is built into every project. That's the way it is. Software development is not plumbing or carpentry. It's different, and learning is part of the cost of doing any project no matter how old or experienced the engineers are.
i feel that it's easier to bill for something like time spent learning the customer's unique (-ly confusing) data model, or for figuring out the product's requirements (since the company has little to no documentation of that).
OTOH, i feel less confident charging for time i spend learning about the vagaries and unexpected behavior of the android platform since "i'm supposed to know that" (and also since those problems are the android platform's responsibility)
i find the balance hard to strike sometimes. i compromise a lot.
Companies from the US literally hire me to work remotely from my bedroom in France because they can't find somebody with the skill they need at the price they can pay. All of them are either taken or too expensive.
The situation is unlikely to change: the need for software is constantly increasing, but the rate we produce new developers and the quality of them is not following as quickly.
So get audacious. You are on the best side of the fence right now.
Perhaps our industry moves so fast that experience genuinely is a net negative?
Also checking in errors seems a bit weird. Are you sure you are still motivated in what you do?
Looking back I believe the reason was there is a subtle physical slowdown between late 20's early 30's, you are indeed slightly past your physical prime.
Then I hit 40 and felt young again.
But really, one shouldn't feel they are mentally slowing down at 30 or even 39. If that's the case you might need to check environment or what you are doing or some external factors.
But you can write type hints in Python and get your tooling to tell you when something is wrong.
Personally I got mypy as a pre-commit hook, and vscode run it on each save, making my code lighting up like a xmas tree if I mess up.