when I write all the code I can fit the whole system into my brain and if I forget its easier to catch up to where i left of when compared to reading AI code that I didn't write.
how does that work for you when working on a massive established codebase, with hundreds of engineers committing daily? do you still keep track of everything in your head? do you carve your sandbox and only work within it? I have seen way worse code from actual engineers, than from LLMs (especially lately).
I currently work on a 11 year code base with around ~20 developer who make changes to it daily/weekly.
how does that work for you when working on a massive established codebase, with hundreds of engineers committing daily?
Its unlikely that I will understand everything but each time I add a feature or fix a bug I understand part of the system better. I currently have mental models of the different systems that make up the code base and over time the more I work on it the more refined my models gets. Some section of the code base I know that really well even though didn't write it myself.
do you still keep track of everything in your head?
Like I said, for parts I haven't looked deeply into I have mental models, think a white board with a bunch of boxes and arrows between them.
do you carve your sandbox and only work within it?
some parts of our code base are well written so you don't have to understand everything to work in it just the class and methods your call. The same way you don't have to know how fastAPI classes and methods are actually code just how to use them. That being said there are time where I have to look into the actual implementation but its not the worst thing in the world.
yes some human written code is bad but I find that its bad because its quirky and doesn't follow a familiar flow. On the other hand LLM's are pretty good at following patterns of a code base but i find that they do more than what is necessary.
nice article