Engineering Evergreen2 min read
AI coding is here to stay
Rubin BashaThe real differentiator will not be who generates the most code. It will be who still understands the system, because people are accruing technical debt, but actually even more worrisome is cognitive debt.
AI can dramatically improve delivery speed.
It can remove repetitive work.
It can help explore ideas faster.
It can accelerate migrations, refactors, debugging, and experimentation.
But there is a dangerous trap in treating software engineering as merely prompting until something works.
Because software is not just output.
Software is understanding:
- architecture
- tradeoffs
- failure modes
- maintainability
- scalability
- product behaviour under pressure
At BasalBit, we see AI as an amplifier for experienced engineers, not a replacement for engineering thinking.
The companies that will build durable software products in this era will likely be the ones that combine:
- AI accelerated execution
- deep technical ownership
- architectural clarity
- careful review
- strong debugging capability
- product understanding
Fast delivery matters, but long-term trust in the system matters more.
Customers do not buy prompts.
They buy reliable outcomes.
Interesting discussions recently around AI coding, cognitive debt, and the future role of software engineers.
A later thought
AI makes it easy to implement features quickly, but speed can hide a cost.
A system can accumulate unnecessary abstractions, duplicated logic, too many data models and layers that make sense locally but not as a whole. Each change might look reasonable on its own. The complexity shows only when you try to understand the whole system, or change something later.
That is the cognitive debt I mean: not only code that needs refactoring, but a system that becomes harder for the team to reason about.
The answer is not to avoid generated code. It is to be deliberate about what we accept:
- Ask whether the abstraction is necessary.
- Check whether a new table or service represents a real domain concept.
- Prefer the smallest design that solves the actual problem.
- Review the whole system, not just the latest change.
The measure of good engineering is not how much code we can generate. It is how well the system solves the problem, and how understandable it stays.
Originally posted on LinkedIn, where the discussion is.