The reality of being a Principal Engineer
leaddev.com
leaddev.com
In theory, we aligned the ladders in a manner that Principal sits parallel to Directors in the management track. I'm expected to impact org-wide culture, policy, technology direction, strategy, etc... but so rarely am I allowed into the rooms where decisions are being made, let alone discussed. I don't know (at all) what is being discussed, and by the time I find out about it things are set in stone.
I do what I can with mentoring and team culture, and lead by example for code-related things, but that is all very zoomed in and tactical. We've been told explicitly that we're holding off on having people write technical strategy/vision until we have organization-wide direction from those in upper Leadership. That has been the promise for a long time, but for one reason or another keeps failing to materialize.
At this point, upper Leadership won't even meet with someone of my rank/position, as they only respect others with VP to C-level titles to work with.
This is the type of reality I fear encountering at other organizations. I worry that despite the allure of Principal title, the reality is that too often such things happen and that when it comes down to it, VPs and C-levels only respect similar, and want Principals or Distinguished Engineers simply as "advanced fixers" for problems in a short time.
At least for me, in hindsight, a lot of that was just in my head. It's fine once you earn the level to not always operate at it. Just as long as when that's needed again you are able to step up.
In my experience as a pre-staff – it is your job to create the green light. You’re director level, there is no-one to say “make it so”. You’re the one who’s supposed to do that.
Org-wide stuff not happening? Guess what, you have to go figure out how to make it happen. Even if that means getting buddy buddy with some of the other directors and building informal networks within the company. That’s the job. Making things happen. Poking the right person at the right time, cashing in favors, building a rapport, etc.
And yes, sometimes pulling a VP into a meeting and asking “hey can you pull a string”
You might be able to help with those politics but it's probably also not your job to do that. That's partly why actual engineering and product managers are on-staff to focus on things like that.
If the principal engineer doesn’t champion technical issues created by org design, then who?
I sense that we have different experiences and so can't relate to each other's points without getting more specific so I will make this my last reply.
I will just say that a common trope I've seen in online discourse on this subject is basically that you aren't a real <verySeniorIC> unless you are effectively doing the job of (or heavily carrying) your peers in the org chart who explicitly hold management roles. I broke my own back, metaphorically, trying to live up to that ideal with nothing to show for it and at the expense of the output that was expected of me and so I reject that notion. The <verySeniorIC>s Ive seen who hold those titles with longevity aggressively delegate politics to management and focus on the tech.
The org wide work but not org wide alignment rings very true and it occupies much of my free work time trying to solve.
That seems extremely high in my personal experience, which is that Principal Engineer corresponds to Manager on the management side.
> I'm expected to impact org-wide culture, policy, technology direction, strategy, etc...
Also in my experience this sounds more like Technical Director level as that really having input into directing the org.
An issue is that as an org grows it tends to create more titles in order to cater for egos and the pecking order among people who may have been there for a long time. So you have Junior Engineer, Engineer, Senior Engineer, Principal Engineer, Senior Principal/Associate Director, Director, Senior Director... In which case Principal Engineer certainly isn't on same level as Director on management side.
Level - SWE ladder - Eng Manager ladder
L8 - Principal software engineer - Director
L9 - Distinguished software engineer - Senior directorThe principle remains, though, that titles multiply to make people feel good in the pecking order.
That’s pure HR talk and is indicative of where you might stand compensation wise. It doesn’t really give you equal standing in the company. It’s not a question of title. It’s the reality of what you can do.
If you think about it, it entirely makes sense. Directors leverage their team to achieve results. You only have yourself and the example you can set.
I say this because I host such a call with our marketing team. I know what's coming down the pipeline before any developer even hears about it. My boss also uses it as an opportunity to interject and remind marketing that they already are trying to push too many initiatives our way, so they have to push some back.
Keep titles, descriptions, projected development start dates, and projected release dates, and a column for all status updates (date them, and put a name to the last status).
Plus, you tend to reset titles when you swap jobs. Staff, principal et.al. tend to be reserved for internal promotions.
> Once I became a principal engineer, it quickly became clear to me that my job involved a lot more than closing tickets and writing code to achieve things.
If we take this sentence at face value, are we to conclude then that _before_ she became a principal engineer, it was not clear to her what the role would entail? And if yes, then what would be the process that made it clear to her after she became a principal engineer?
If you’re the first ‘principal’ engineer in your company of course you don’t know what you have to do to succeed. And even if there are already a couple of people with that title, there’s no guarantee that they know how to actually make a difference at that level - they’re figuring it out too. Or that what they do to succeed in their division will work just as well in yours.
A big part of being put in a leadership position is precisely that if you have questions like ‘how do I actually make a difference in this company on this dimension?’, the answer is: ‘we don’t know. That’s what we hired you to figure out’.
It can also go another way: during growth from 1 or 2 people to a small team, at some point a company might start assigning titles to people whoe already know what they're doing. Just because, well, the board or newcomers feel like it's needed or just for clarity or desire to structure things. Which leads to funny situations like me going to look for definitions of what my job might be, finding out that is non-trivial because there are apparently no strict definitions of 'principal engineer' and 'architect' and 'senior developer' and 'developer vs engnineer' and so on. So I ended up 'principal software architect' or something like that, a title which hasn't come up in any conversation ever since nor changed what I do.
On the other hand, if you are the first (and, therefore, the only?) 'principal engineer' in your company, how do you even know whether you have succeeded or not? :-)
This is what an industry of outsourcing to “contractors” has done. Companies that aren’t ran by tech people have no idea how to actually hire tech roles and are trusting the contracting firm owners, who I’ve found also have little knowledge how to hire for tech.
This rarely is beneficial work the company should/must do, instead it is promotion driven development.
Note that I am referring to product engineers. Platform/infra engineers necessarily have to work cross-team. And of course some "product" projects should be cross-team ... but if most or all of your product engineering projects are cross-team that is a huge red flag.
Unfortunately resume and promotion driven development are a very rational approach in most companies. If yo do what needs to be done in an efficient way, you will rarely get recognized and others who do shiny stuff will pass you by.
I agree with what you said, but I would have thought that was common knowledge. Your interests should always outweigh the company's. Anyone believing otherwise is eventually going to get an unpleasant surprise.
If you:
1. Write code
2. Build proof-of-concepts
3. Fix bugs
4. Create designs
5. Align work across multiple teams
6. Work together on a complex feature, or features
7. Identify new directions and opportunities
8. Create an architecture
Then, congratulations, you're a software engineer.
Enough with this self-aggrandizing s*!t already.
It's a good summary overall, but in my view the best principal engineers are the ones who also solve pure, hard, technical problems. Far too often, people at the principal level are content with strategizing and guiding, staying away from the ground. But you lose a lot of potential that way. Nothing can replicate the value of problem solving and building things together. As an engineer, few experiences will give you the kind of learning you get when pairing with someone experienced, knowledgeable and passionate in a subject. As a principal, there is no better way to visit the depths of a problem domain than by working directly on it. Of course it takes a tremendous amount of trust from both parties to not feel undermined sharing responsibilities, and that's usually the hardest part.
What did I do? I was on a two person project with another Principal Engineer for all that time, sharing architecture, coding, design, refactoring work. writing tests, doing deploys, etc. basically the same thing I've done anywhere else. What made me a principal? Maybe the fact there was no-one telling me how to code? I guess that doesn't qualify me as a "true" principal like the OP is describing ... but thought I'd share!
The reality?
>One of the most important competencies of a principal engineer is to become a force multiplier. This is a more mature definition of the ‘10x engineer’ than what the Silicon Valley ‘cargo cult’ like to use.
A 'more mature definition'? What? It's just another buzzword. What a garbage article.
The 10x engineer is simply one who has an output far higher than average. The Principal engineer working as a force multiplier has the goal of raising the output of the entire team, group or company. If I can 1.5x a 10-person team, I'm already more valuable than that 10x engineer.