In my (naturally limited, anecdotal) experience, "principal" engineer suggests skill with building (or "architecting") large systems, and understanding every facet from estimating effort to design to code to test to documentation, coupled with an ability to delegate chunks of work to other people and to mentor them.
From the technical skills you posit learning, distributed systems seems to me most in line with "principal"-level thinking, though machine learning seems pretty popular and ostensibly lucrative at the moment.