One thing I believe makes a good engineer is the wise use of available resources to accomplish a job. I regularly use two applications that seem to have questionable design features. While I'm not 100% sure without seeing inside the code, I strongly suspect that I know the problems.
One of the applications is by none other than Microsoft itself. The other is by an individual developer whom I will not identify because he is quite helpful with support for his work.
The issue that I suspect is that developers seem to assume that they will always have unlimited resources so fail to adequately account for their use in their designs.
I'm working on Windows 10, and an i9 system with 32gb of memory.
The Msft application that I use daily is Windows Media Player. My music collection consists of just over 70 thousand tracks. When I start up WMP, it would be nice if I could begin selecting what I want to hear. Unfortunately, WMP will instead spend the first several minutes apparently reading through the whole library which it has already built before I can do anything. It could at least let me see a list of the 60 or 70 genres or the several hundred artists that are available before it retrieves all the detail.
The other is an application that performs reformatting functions on a series of files in a directory. When it starts up, it goes through the initial prompts and then begins obviously trying to load all of the files before it does anything. These are .CSV files which combined contain roughly 1.3 million records. For the first part of the files it displays the name of the file it is processing, but soon it simply freezes, most likely from attempting to load far too much data at one time.
Even the well-known application that I use for my finances which claims that it uses a secret database structure has to have its data volume regularly pruned so that the insertion of a new row doesn't cause the working screen to sit and flicker for up to 15 seconds before one can proceed.
My assumption here is that as hardware and software resources have become more powerful and less expensive software engineers are losing the ability to make wise design choices.
One of the best days of my IT career was the day I told my boss if the problem was so simple he should go fix it himself.