Once a codebase reaches a certain size and level of complexity—and is clearly no longer a toy project—it becomes difficult, and eventually impossible, to keep every implementation detail in your head. At that point, this also starts to drift away from what you should actually care about: invariants, and ensuring they are not broken or gradually eroded over time. From my point of view, this is much harder to achieve than one might expect, especially without a highly skilled team to help reason about and discuss these concerns.
Focusing on concepts and invariants, and being able to reconstruct the core ideas of the system from them, is therefore the right priority.
Thank you for the kind words! I completely agree with your thoughts.
I have been part of projects with millions of LOC; team members including leads keep changing. This means after a short and certain amount of time, any project will be handled by members who are completely new to the codebase and not a single member exists who have gone through the entire code. Does that mean the devs and the projects are now bad? NO! You just continue working at a higher level i.e. at the project's invariants, concepts, guidelines, guardrails, scope etc. You dig into the code when there are issues or working on enhancements.
Focusing on concepts and invariants, and being able to reconstruct the core ideas of the system from them, is therefore the right priority.
Keep grinding, and good luck with your project.