nice article
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.
Just to check that I've got it right by the way, are you referring to the Ralph Wiggum loops? And are these Taches? https://github.com/glittercowboy/taches-cc-resources
I'm definitely keen to dive into these tools.
A message that I maybe didn't land in my post is that it is a little bit ridiculous to demand or only deliver "Artisanal Code". It's more labour intensive and the end product is virtually the same at the end of the day.
Spot on. These are the exact tools I was referring to. They seem a little un-magical but the real value is the boilerplate they provide for context management. Essentially allowing coding agents to perform at their beat. For what it's worth, Taches is my tool of choice.