It's not necessarily wrong to compare the median to the average once a sufficiently large dataset is reached given LLN, but I'd argue that a z-score is still far too basic to capture the nuances of such a varying dataset with so many points. Some type of hierarchical model would probably be best for this dataset.
Fair point on the z-score still to simple but better than a ratio.
As far as the LLN, also right but this assumes that PayScale has anywhere close to enough datapoints for that number to be reached which I would question. Also not sure if we can consider the LLN in the same way if you are comparing a total population with a sample here?
That I guess is the other compounding factor actually, the population of Software Engineers is actually just a sample of the overall population of "the general public's income" and so that does impact this as well. We're not comparing group A to group B but rather group A to group ABC...N.