Always keep in mind that sometimes the "principal engineer" title is just a company's only way of hiring a senior engineer because their pay bands are so far below market rate. Don't let a description of a Google principal engineer scare you away from inquiring and applying for principal engineer positions at other companies.
Or more generally: Job titles aren’t portable between companies in the tech industry. Don’t assume that they mean the same thing at every company. Don’t assume a company is underpaying people just because they’re giving out Principal Software Engineer titles. Principal Software Engineer at one company could just be the equivalent of Senior Software Engineer II at another company.
On the hiring side, everyone knows that titles only indicate relative seniority within a company. Interviewers must actually interview candidates to determine what their role was, how experienced they are, and other factors.
It can be a warning flag, however, if a company is giving titles like “Principal Staff Software Architect” to someone who is clearly junior enough that they would require a lot of mentoring and guidance if they were hired. It’s common that candidates are resistant to downleveling their titles when changing jobs, so handing out enormously inflated titles is one way companies try to trap junior employees in their companies. At least until they realize that nobody cares about their inflated titles and they still have to pass the same tech interviews as everyone else.
As someone whose first job title was "Assistant Director of IT," and who did nothing but write really bad PHP for a couple hours every day, this tracks with my experience. It also made interviewing harder because if you get a resume from someone with one job they've had for two years, and that job is Assistant Director, you're probably - rightfully - trashing that resume. I eventually learned to just change the title but then explain on first contact that my actual title was different, it just didn't bear any relation to what I was actually doing.
At one of my jobs, all the developers were given the title "Member of Technical Staff" because our boss had worked at a particle accelerator (he had a PhD in physics) and that's what the scientists running experiments had on their badges. He did it for morale, and it probably did make us feel a bit fancier while we were writing Grails and GWT code.
I've always thought of "Member of Technical Staff" as a Bell Labs thing.
I almost did it at my last startup, to signal the egalitarian, cooperative engineering culture that I intended. One of the concerns was that it could hurt people's career mobility out (and willingness to join, since the startup was unlikely to be the engineer's home for the next few decades until retirement).
I think it works easily when your organization is known as one of the places to go, everyone knows that they do titles that way, and that anyone there is worth considering as a hire. (But not when recruiters filter their resume keyword searches for senior, staff, or principal.)
I don't know why Google didn't do it, way back when, since they did a few other culture things. I suppose that might've set a different tone for our industry today. (Though what seemed at the time to be low-loyalty culture coming out of California was already in force when Google started, most conspicuously in what I called "IPO-hopping", and maybe Google just had to work within that, at the time.)
Well, every dev is listed as "Software Engineer" unless they change it specifically. Maybe you're forced to change it if you're a manager, but I'm unsure of that. So you never exactly know the level of the person you're talking to unless you work with them a lot or go out of your way to look it up.
I think it's sort of a labs (whether national labs or more broadly) thing. I have a good friend who works for one of the national labs subcontractors and they use the technical staff terminology.
I think this is pretty common at early stage YC companies. At least the one I started at did this until they needed to give us fancy titles to impress investors.
I had the inverse experience: I worked for a startup that gave literally everyone in the engineering department the same title of “Senior Software Engineer” in the HR system because they had one boilerplate offer letter used for everyone.
I was a manager-of-managers, but officially I was a “senior software engineer”. Burned me badly on a couple reference checks, until I specifically started explaining the situation during interviews.
Yup. And I always am weary of any manager at a startup. They think just because they were a manager at a startup, it means they can be a manager at a much larger company. How many people did you manage? (some of them managed 1 person) What did you actually manage? (can't explain other than order people around) Don't assume the title means they know how to actually do the job at your company. Titles tend to be severely inflated at small startups.
I had a job as a VP a few years back… at a six-person startup. I cringe when I list that job on my resume - do I lie and list the title accurately (I was a programmer with a massively inflated title) or report what my actual given title was and risk being seen as misleading?
The vast majority of titles in tech confer more prestige than deserved, because there's no downside to a company handing them out like candy. I don't look at it as a portability issue, the incentive isn't to be accurate to begin with. Inflated seniority is just a perk they can offer that doesn't cost them any money, so everyone offers it. Titles across the industry are meaningless unless you're calibrated to that company's levels.
There are only a few titles that mean anything, and normally it isn't what you think.
Legal at a bank only a vice president or higher can make some loan decisions. Thus if you go to a large chain bank to get a mortgage you will talk to a vice president. Their title must be vice president, but they doesn't make a lot of money, and don't have much power other than the ability to give you a mortgage.
Last time I posted the above someone chimed in "yeah, even though all I do is write code all day I'm a vice president because what my code does can only be done by a vice president"
You also see a lot of salesmen who are vice presidents - again they don't have a lot of power in the company, but the places they sell to want to talk to a vice president so sales hands out those titles.
This reminds of a story I encountered in finance where everyone in the department got a bump in title as their bonus. I asked one what was difference in their role: nothing. Since everyone got bumped, everyone's role stayed the same. This was during the financial crisis and was the bank's (well known) cheap ass way to get away without paying a monetary bonus.
I'm stuck inside a 5000 person IT company hiding inside a much larger consumer product company, and 3/5 of us are all 'principal' engineers by title. This includes a bevy of old timers who exist just to run a few ancient shell scripts and otherwise keep a chair warm. Although they are shrinking quickly, they still vastly outnumber us coming in from the software industry. There is no title above principal here; we are hired into principal and that's it until we invariably get bored or stressed out and leave.
We have other titles above principal, which I wont name here because you could figure out where I work, but suffice, those titles are gated and only promotable by multiple director consensus. It keeps their numbers very, very low. My department wont mint a new one, but only hire outsiders already at the title.
Vice Presidents at large financial institutions are a joke. Coming from any other industry you'd think it's some sort of executive position. Nope, just a random senior software engineer 8 levels down on the corporate ladder. To be fair the first 6 levels (all the way to the CEO) are all "Managing Directors".
i had a job where i was the first staff, but when they started promoting everyone to staff cause every senior wanted a promotion, they had to create new levels of staff to differentiate
I was under the impression that Staff just meant you have some sort of leadership role, as opposed to just being an individual contributor. Is that not the case?
The only job in the tech industry that's not some sort of leadership role is Intern. Everyone leads and mentors. Senior Engineers at the level of a single team, with perhaps some cross-team impact. Staff Engineers at the level of an org with several teams.
Yes, this. Principal means something vastly different between Microsoft and Google (where at Microsoft it means “Staff”). I even got recruiting emails from some not-popular SV firms for “Principal software engineer” when I had 3 years of experience.
One company out there 'staff' is entry level. Whereas in all the companies I worked at 'staff' was a very prized title to have. Another company I worked at my title was basically just some random bits of roman numerals and something that sounded vaguely like a engineer. I usually just put sr software engineer/developer depending on the company and role.
I "normalize" my previous titles to whatever pattern/scheme my current company uses. It more clearly demonstrates the career progression on your resume and you typically only get a reference check at your previous employer so putting an "inaccurate" title for jobs older than that is unlikely to matter. Obviously don't inflate the titles.
Are there many folks who care more for a title than compensation? Granted, a higher title might help one win more compensation when negotiating one's next job, but fundamentally one must back that up. I mean, you could hire me as a principal engineer for $100,000 today and I could hope I can get hired as a distinguished engineer for $800,000 next year, but somehow I don't think anyone with that much money to spend is going to make that terrible of a mistake.
Right? Because if not, I need to have a discussion about titles!
I'm not aware of companies caring what your current or last job title is when they hire you, and for that reason I don't think most developers care what title they get when taking a new job. The titles are really only important internally, if companies have a culture of respecting certain titles, or when they have strict salary bands for each job title that are matched to some supposed industry standard. Salary bands are a blanket corporate policy that many companies use to enforce a very crude form of hiring discipline, and over time they can get really out of touch with reality (always on the low side, of course.) In the last couple of years I've spoken with several companies that limit the salary of "senior" developers to $160k or even less. Some of these are stodgy old companies like you would expect, but some are also midwestern companies that are switching to a "remote first" model but still have salary bands calibrated to their low-COL city of origin.
Managers deal with unrealistic salary bands via title inflation when they can, but sometimes their hands are tied. I joined a team that did have the freedom to use title inflation and ended up with a principal title in a team with more principal engineers than non-principal engineers.
I've seen this exactly. Someone at my former company was a Principal engineer but when they left to go to Netflix they were then just a Sr. Engineer. They definitely were not Principal engineer material so think it was all to appease the pay-band gods.
Exactly it's just a job description and name. In my last job our org rarely promoted anyone technical (only managers and above) so almost everyone was either Lead Software Engineer, or Senior Software Engineer. Other orgs promoted everyone to the max no matter what they did - I knew a group where the lead was a Director but coded, and all of his reports where Principals; yet they did simpler work than anyone in our org did.
Source: have been that person.