![](/static/253f0d9b/assets/icons/icon-96x96.png)
![](https://programming.dev/pictrs/image/3d2f8ea4-8ed4-47c2-bc1c-756d51a0cbf3.webp)
It’s fine for the usual straightforward and easy problems – problems that common developer tools and paradigms have solved. Like a product that reduces to CRUD with a few boolean expressions, joins, and simple algebra mixed in. But I think it’s inefficient maybe even unworkable for harder problems. And hard can be scale, like moving up two orders of magnitude in throughput or entities, or down in latency. Or hard can be algorithmic stuff.
I highly agree with what others have said here, that a culture of “fungible engineers” can alienate those who want to go deep. Some folks enjoy being subject matter experts or are drawn to a craftsmanship aesthetic. And, IMHO, a healthy org culture should work for all kinds of people – specialists and generalists. I think you should aim for and encourage people to grow to be T shaped rather than fungible cogs.
So cool, thanks. As a kid I spent so much time in DEBUG, stepping through DOS’s executables, and especially the Interrupt handlers. It’s so neat to see the actual source code-- way easier to read and follow. I didn’t know it was all written in assembly, from within Debug it sometimes seemed so messy and convoluted that I just assumed more was written in C.