
What languages/skills to master to progress from senior to principal engineer? - seasonalgrit
(Edit: or, really, how to keep going once you are a senior engineer? particularly in terms of earning potential).<p>I have been coding for several years, in several languages -- general purpose, mostly data pipelines as well as server infrastructure.  Language-wise, I did some C++ early in my career. I&#x27;ve actually been working with functional languages for several years hence, along with a smattering of Java, Python, etc.<p>I&#x27;m of the opinion that functional languages (and also Java) are not enough in and of themselves for me to continue to progress professionally at this point.<p>I&#x27;ve been thinking about next steps, and I&#x27;m considering throwing my energy into one of three directions:<p>1) C++ --  I&#x27;ve gotten the impression that doing C++ server infrastructure would allow for significant headroom in terms of earning potential (Google, finance), so I&#x27;ve been thinking of taking up C++ again  and really becoming competent in it.<p>2) Machine Learning -- On the other hand, machine learning also seems to be all the rage, and that seems to center around Python, R, Matlab.... as well as stats and linear algebra.<p>3) Distributed Systems -- or I could dive deeper into distributed systems, which has its own set of concepts and practices to master.<p>Each of these seem like distinct directions to take. I only have so much time on the evenings and weekends so I want to leverage those chunks of free time well, and focus my energy in a profitable manner.<p>Opinions?
======
tjr
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.

~~~
seasonalgrit
thanks for your thoughts.

the term 'principal' might be a misnomer; i'm really just brainstorming how to
keep growing professionally, in particular in terms of earning potential.

------
JudS
If the goal is continued growth and to make yourself more valuable to your
employer the key improvement in this step is underatanding the business
extremely well and helping the VP and CTO to guide the work of the engineering
team in a way that is beneficial to the business as a whole. That seems
uninteresting to many but it's these people who turn their employers into
successful businesses.

