One of things I've found very amusing is the fact that one can die of thirst if stranded in an ocean and that one can die of cold if left stranded in a desert. While I won't be getting into the science of it I find that some of this relates to software engineering. It sometimes feels as if knowing more makes has the opposite effect on how a developer evaluate his or her knowledge. The more one learns, the more apparent it becomes that there's so much to learn.
There are coding conventions, algorithms, styles and architecture for small projects that won't be used by many clients, what is expected changes with scale. A platform that has 1,000 active users a day doesn't require as much sophistication as a platform that has 100,000,000 active users daily. A lot of digital infrastructure ends up crashing or becoming unresponsive when the threshold has been surpassed.
A lot of people have a hard time understanding why so many developers are needed to manage a software or digital platform that has already been built, afterall, civil engineers aren't working on buildings that have already been built. Unlike buildings, software is like a sea vessel, if you're using a canoe, one or two people will suffice to run it. If you have a cruise ship or an aircraft carrier then you need large teams to run it, not because it wasn't built well but because it's cheaper to have professionals on standby than risk things going wrong.