This is a gem of a post. Loved it.
Don't miss:
Notice how the fish interlock without leaving out any space in between them.
Escher FTW.
And: Abstraction barriers are useful tools that can reduce the cognitive overhead
on the programmer.
Although of course familiar with the concepts of abstract data types from CS and architecture/implementation layers from CompE/EE, I've not heard the term abstraction barriers before this. I like the combination.