Software Engineer at Microsoft, but these are my opinions.
All problems in computer science can be solved by another layer of abstraction ... except for the problem of too many layers of abstraction