I think the problem is further compounded by the fact that "software engineer" is woefully vague. Are we talking a highly educated Machine Learning specialist working at at top tier institution, or are we talking about the CRUD dev working for the local bank; or perhaps we're comparing generic IT that barely codes at all? The former might be underpaid, the latter maybe over paid, but they're all going to reported as "software engineer" and it really muddies the waters..