There's a third possibility: the code your company generates is either so heavily managed or so relatively easy that they don't need "good" engineers, just "barely competent" engineers. I ran into that situation with a large defense contractor. They won't pay for quality partly because they don't need it, and they see all people as replaceable cogs.