Random reminder that I have a YouTube channel where I post videos about software architecture and design. Usually in the 10 min range trying be concise as possible. If you enjoy please share. Have suggestions? Please let me know.
I keep seeing this take. The "abstraction is going up a layer" is a weak argument because an abstraction layer gives you a _stable_ contract. AI can let you operate with less detail locally (which is awesome), but calling it a new abstraction layer, as if it were a compiler, when
“If you don’t know assembly and machine code, why should you be hired to maintain C?”
We’re on a new abstraction layer now.
But I’m not even saying I don’t know the underlying language, I do. And if I need to drill down on something, the AI can walk me through it on the spot.
Brain dump:
Tests and evals can only validate the things you thought to test. Not what you didn't. I’m skeptical that we can stop reviewing code and just evaluate outcomes.
Looking at the implementation can reveal things you never thought to write an eval for: bad assumptions,
Don't expose internal domain events across service boundaries. When you treat domain events as your public integration contracts, you couple consumers to your internal domain model and workflows, leading to breaking changes and a fragile system that's hard to change.