Don't forget about beautiful, messy apps like Airsonic that you host yourself. It's the best solution IMO. You can listen to your whole collection at the quality you want on basically every platform. A fork of pSub is what I use a primary CLI player for it, but the mobile apps are also great. You can cache music locally, so I like to queue up a few albums before I leave the house (not that I do that often nowadays) so I can listen to them while driving without using any precious mobile data.
> have a healthy respect for authority, and can delay gratification in the extreme.
What does these qualities have to do with being a effective software developer?
> The degree acts to filter out people who are too independent to fit well within a hierarchy.
Wouldn't people that fall into the category of "free-thinkers" make for better engineers — or at least engineers that are more capable at creating novel solutions to hard problems?
Delayed gratification means that you are willing to work on tasks that are not immediately fun or are frustrating or when manager is not looking. It means that you are more likely to keep doing tasks whose benefit is in the future (like writing tests). It means that you dont need pat on the back and managerial supervision so often to keep motivating.
Lack of healthy respect for authority typically means more fights about who will do which task and more likely to unilaterally refuse to follow random parts of code standards. It may mean refusal to close jira tasks or open them. It may mean that analysts have much harder time to convince that one person to do what is needed, again.
Software development is typically strongly team work and requires quite a lot of coordination among people with opinions. When one person decides he does not accept authority of analyst, architect or manager, yes there are consequences for whole team.
There's a difference between actual respect for authority and knowing when to shut up as well. I could not like management but I have nothing to gain from getting into a fight.
One isn't Always creating novel solutions to hard problems. Sometimes there's boring work that Has to get done; respect for authority (understanding that the boring stuff Needs to be done) and delaying gratification (working on the boring stuff) is thus useful.
> Wouldn't people that fall into the category of "free-thinkers" make for better engineers
No. However "freethinkers" can launch their own companies. It is like people say that Steve Jobs would not get hired at Apple today as if it were some great insight. It is simply company is looking for a set of skills and willing to pay money for it. SJ would rather launch a new company "Apricot' instead of working at Apple.
Besides 'freethinker' is just an euphemism and part of linkedin cliches nowadays. And the definition of free is anyway restrictive and bound to cultural and societal norms.
How much of the ACTUAL scope of work needs to be novel? I'd say a limited amount. There is a LOT of work that is just running ops. For example, a billing system doesn't need to be novel it's been pretty well worked out many times.
My take is that many people are out on vacation during the summer months and sometimes things break (or break harder than usual) when certain knowledgeable people aren't available.
It's legitimately my favorite interface of the major OSs or the many choices of desktops on Linux. It has everything I want. And since they stopped having "hot corner" nonsense on by default, nothing I don't want gets in the way.
I just read an article that there revenue for 2016 was estimated to be $400 million. Not bad. I don't know what the profits were but I would guess that gets them 'unicorn status.' :)