I think skill differentials in programming is a contributing factor to the bimodal distribution. I think there's also another factor which is the degree to which one is an active "curator" of one's own career. I've known some devs who were quite talented but were perfectly content to stay at low-paying jobs where the value they generated for their companies for developing CRUD or other low-multiplier apps was moderate. Others who were much more deliberate about developing skills in areas of software where much higher multiples were possible and choosing jobs strategically to build their careers made MUCH more money than the former despite not necessarily being more technically skilled. These latter developers are much more likely to be the ones working at FAANGs (or whatever) for $200k+.