To me the average level of developers at most companies I know is just heart-breaking, many times they don't seem to be thinking on the right abstraction levels and instead treat development as something you just persevere through by pure exercise of will (which is of course exactly what you are rewarded for: put in long hours, results don't actually matter as long as you try your best, onboarding/training is limited to manners, how to clean the whiteboard and how to water the plants (not joking), your university education/diploma is considered worthless, hence why lots of people suddenly become "software engineers" with a law degree or a biology degree or an english major degree because tech jobs generally pay better). In the end in my opinion the prevalent culture/values are just not very conducive to becoming better at software (although it kind of works in hardware and on the outside definitely appears to work in services).