It’s been almost two years since I built something with Ash, and LLMs have significantly changed my workflow since then. After trying it on a new side project this month, I have some new thoughts on Ash.
LLMs have made the task of generating working code much easier. This means that the human programmer spends a larger portion of their coding time reviewing code. I think the benefits of Ash shine brighter in this scenario. I wrote a longer form version of this here.
I’d be curious to hear other opinions on a thought experiment:
If LLMs got 5x better than they are today at quality, speed & cost. Assuming you can very quickly be presented with working code that at least achieves a reasonable interpretation of the initial prompt.
If in this new reality, your responsibilities as a software engineer is:
- Ensure that the resulting code does what the business needs.
- Ensure that it’s built in a way that when the stakeholders change their minds, the resulting changes will be made in a reasonable timeframe.
- Ensure that when other engineers or LLMs come to work on the project, they can copy the existing patterns without making you sad.
- Ensure that we can either handle the “ilities” (reliability, observability, usability, maintainability, operability, etc.) now, or can make reasonable changes (no re-writes) to handle them if we run into massive success & scale in the future.
In that utopian/dystopian future, would you rather be reviewing Ash code or something else?
In my opinion, Ash wins here because I would have so much less code to review and because different dimensions of the same functionality (auth, code interface, relationships, persistence) are all organized in a way that I can review one of those dimensions at a time without having to load all the others into my brain.
What would you choose?






















