Visibility is very important to getting a promotion at a large company. Selling your work is important.
To move up, you must be playing the "choose a good project or team" game for at least 6 months before you try to get promoted. Preferably for a year or more to hit the right checkboxes for multiple cycles.
If you fail to do so, you can do absolutely amazing work but rigid processes and evaluation criteria will conspire to defeat you in a promotion committee setting.
At least, that's true in my company. From my ex-Google peers it seems to be true there as well.
Being in a smaller office means you get fewer of the best projects available to you. Reorgs sometimes steal them. Cancelling projects makes the last half a waste of time from a promotion standpoint.
As for what constitutes a good project. It will:
* Let you lead it
* Have peers at your level + one or two
* Work with multiple other teams
* Ideally work with multiple teams outside of your group, e.g. you're in, say, a chat app team and get to solve issues for some other app
* Good product manager and designers with a well thought out product; it's not fair, but if the project is successful business-wise people will often incorrectly attribute that to your own skills
* Have large engineering scope. Committees get confused and sometimes think simple designs to solve complex problems are bad. You want to solve problems that are complex even in terms of the solution (or can be made to sound complex) to check more boxes.
* Allows you to solve problems for other teams
I haven't optimized for promotion and thats personally hurt me in the quest to get to L6. I very, very close but didn't quite make the leap.
Don't ignore the flaws in this committee process. Exploit them.
Personally that sounds like barf ... politics, stress, insecurities, backstabbing, stress, burn out.
I am much happier working in boring government where working hard for family and with mature/secure with themselves (older) adults is paramount & prevalent. Thankfully not an enticing environment for douchebags.
Funny, I worked as a government contractor in a past life.
The government was worse IMO in that work was very slow and bureaucratic even beyond the big company overhead.
Politics couldn't be ignored; you need to keep the contract, outmaneuver the other guys going golfing with the agency head every weekend, deal with having 10 half-backed solutions you contractually cannot touch but need to in order to get things done.
Promotions were almost always about tenure, certification, and education. You could never get far ahead if you're more skilled. Worse: you couldn't really fall behind, either.
In the right spot, though, it would be lower stress. But much lower pay
Doesn't government come with its own hurdles? I have friends who have to deal with securing grant money (it's own game of flexing how important your project is with decision makers).
Government and Fortune 50 are similar in that they are big command economy type things that make decisions that don’t make any sense.
The only real differences are that leadership people generally won’t fuck you for personal financial gain, because everyone makes about the same at senior levels, and employees rarely get fired, just shuffled around.
If you’re a contractor and are smart, you stay friendly with everyone and always listen. Events that will get you purged are either procurement problems or bad political decisions with respect to the budget for whatever you do.
With employees, you need to do the dance of getting shit done while avoiding accountability. You need to get attention for performance without pisiing people off. It’s critical to find and attach yourself to a good leader.
From the developers standpoint its not something that matters until the 1 to 3 to many year contract expires. THen it times to find another govt. gig working with other nice/older/secure family focused peers.
For those under 40 everyone makes it harder on themselves then it ever needs to be. Not saying people over 40 aren't backstabbers, but its way less and going to work is more enjoyable then you worrying always about looking better then the next, you not believing in yourself and or dealing with those that fall under those categories and are a horror to work with and for.
I got mediocre plus results without too much politics, and I guess that for the long run I could advance without back stabbing anyone (the site was closed before I had a chance to test my assumption) but I agree that most of the moving up had to include politics, stress, insecurities, backstabbing and stress.
On the other hand you can relatively easy get to positions where you influence tens or more engineers while in smaller places those positions are rare and super senior
A simple solution to a complex problem is what I strive for every day as an electrical power engineer. It makes it easier for my co-workers, customers, and anyone responsible for keeping the power on in the next 50 years to understand how something works and be able to fix it if it breaks or build off of it if more capacity is required or it can be reused on a different project.
I am sad that top tier software engineering environments have lost sight of the value of simplicity. Perhaps it is doomed to become the dismal engineering, like economics is the dismal science, that never quite seems to have the answers for economics, or never supplies software that is finished and bug free for software engineering.
> I am sad that top tier software engineering environments have lost sight of the value of simplicity.
I worked in a top tier engineering environment (not SW). The problem was the same there. They valued the complexity of the solution, not the impact it had on the business for solving the problem.
I think this is generally a problem in large companies. In a tiny company the impact is much more apparent to the bottom line. Whereas in a big company, it's hard to see how much difference your solution made in the big picture because there are plenty of other bottlenecks in the pipeline (and out of your control).
> I am sad that top tier software engineering environments have lost sight of the value of simplicity.
I agree, but a more charitable reading is that they want you to demonstrate that you can deliver a complex solution if that's the only way to get things done.
Complexity is highly subjective, of course.
Suppose I need a distributed atomic counter service. After doing a lot of research, I come to the conclusion that the best solution is to write a wrapper around something in AWS or GCP but structure things in a way that other teams can use it.
Other teams are now less likely to need to do that research and can just get stuff done.
But the actual implementation is very simple.
Is that complex?
Maybe, maybe not.
This does provide a perverse incentive to continuously reinvent the wheel, though, which is the worst part of it.
Why not re-implement the low level goodies in DynamoDB if that'll increase the odds of promotion? Many engineers think along those lines.
This is all very applicable to Google. I was at Google for 2 years and I got promoted L5 to L6. The key (I think) was working across teams with people who were already L6 or higher, and who were willing to write for my promo packet.
In terms of what I learned? I think the most important lesson was: Don't get bogged down in details that are irrelevant to you & count on others to do their jobs. I came from a small (~15 engineer) company where we all knew the entire product from top to bottom. At Google, that was impossible.
Congrats on the promotion, did you join Google as an L5?
Also, can you share more advice on the technical side, like what do you are the abstractions, mind models and technologies that you think are applicable outside of Google and would be worthy of studying?
The technical side was probably not terribly relevant to you. I worked mostly on the Linux kernel in C, on drivers and firmware, and never did anything in the main Google repo.
Anyone at Google who's being honest and not just toeing the HR line will tell you that the easiest way to get promoted is to quit, go to another FAANG for a year or two, and come back at the higher level.
I feel the exact same thing about the promotion process from investment banking industries to the big tech firm where I am working now. Normally, you are expected to perform higher than the current level and at least make the contribution at the next level to be promoted. Worst, I feel like to get promoted, I would need to be assigned to work on a high visible project affecting cross teams/organizations like you mentioned. Sometimes, it seems like waiting for the stars to align in eternity.
L7 at Google here (joined as L3 right out of university).
Having feedback from L+1 or +2 peers is very important, otherwise it can be very hard for the committee to judge performance.
Actually "leading" a project less so - often a single "project" can be viewed as multiple components / projects for promo purposes, what counts (depending on level) is initiative, leadership, and technical contributions. It's not necessary to be the formal lead of a big project for this purpose, but rather for your senior peers to attest how well you did in those areas and how it helped the project launch X months faster, improved QPS by X or whatever metric.
As pointed out in other comments, it can be hard for the committee to see impact, so the more hard evidence you have (before/after resource usage, bugs fixed, etc) the better. Same for improving the codebase, document and show the evidence!
Alternatively, one can negotiate the desired level/salary when starting a job so you can ignore the politics at least for several years, right? Or is it as well easy to be demoted (without politics)?
At the big tech companies, you don't really get to negotiate your level.
For L6, for example, you might be able to convince the recruiter to set up the right interview process, but your level is 100% tied to your interview performance.
Salary is a different story--negotiate, always, but be aware level and salary are related.
If I ever find myself working at a FAANG, I do hope that instead of pursuing promotion, I'll stick to stuff that matters to me as an engineer.
While having a FAANG on my resume matters too, I'd much rather use that time to develop my technical skills than to improve my PR skills. In my experience (at a medium sized company with 200+ engineers) these two goals often conflict.
What does "promoted" look like for an software engineer at large tech companies? In my company you're either an individual contributor or tech lead. There aren't really any other rungs on the ladder without going to manager.
At Google there’s an IC ladder from level 3 (new grads) to 11 (Jeff and Sanjay). Basically it’s a pay scale. Half of engineers are below 5, and 90% are below 6.
Edit: pretty sure I was off by one originally. But you get the idea: it’s a triangular organization with a lot of people at the base.
I decided to focus on power engineering instead of software in the mid 2000s since I thought a lot of software jobs would be offshored. Big mistake in terms of compensation!!
Sort of. I didn’t mention it because level doesn’t really limit your scope. If you have a way to make a big impact nobody is going to tell you to not do it because you’re too junior. It’s just that the higher levels are expected to operate at company-wide scope all the time.
You can hide your level such that other people don’t see it, which is another difference between Google and my current company where people introduce each other by their titles, which makes me want to quit every time. Nobody at Google has ever said “And now I’d like to turn the meeting over to Principal Engineer Jane Doe”. Most people don’t mention it.
It’s up to each individual to make the most of an environment where the utterances of senior engineers are just advice. You don’t need their permission.
Of course not, I'm just saying it _is_ part of the current culture to assign hierarchy to levels, probably more so with younger/more junior people. Hierarchy tends to look flat looking down.
Which sucks. Having a technical ladder is important to retain talent and ensure that you maximize the skills your talent pool has.
Pure engineering skills (even the thought leadership aspect of it) doesn't directly translate in management skills and often people get "rewarded" by promoting them to a position where they can no longer use the very skills they have been promoted for.
Check out levels.fyi to get an idea per company. At Google, we have "standardized" levels starting at L3 to L10, each with their own compensation range. Google allows you to climb this ladder while remaining an IC. Going to manager has a different progression and it's not an expectation.
Visibility is very important to getting a promotion at a large company. Selling your work is important.
To move up, you must be playing the "choose a good project or team" game for at least 6 months before you try to get promoted. Preferably for a year or more to hit the right checkboxes for multiple cycles.
If you fail to do so, you can do absolutely amazing work but rigid processes and evaluation criteria will conspire to defeat you in a promotion committee setting.
At least, that's true in my company. From my ex-Google peers it seems to be true there as well.
Being in a smaller office means you get fewer of the best projects available to you. Reorgs sometimes steal them. Cancelling projects makes the last half a waste of time from a promotion standpoint.
As for what constitutes a good project. It will:
* Let you lead it
* Have peers at your level + one or two
* Work with multiple other teams
* Ideally work with multiple teams outside of your group, e.g. you're in, say, a chat app team and get to solve issues for some other app
* Good product manager and designers with a well thought out product; it's not fair, but if the project is successful business-wise people will often incorrectly attribute that to your own skills
* Have large engineering scope. Committees get confused and sometimes think simple designs to solve complex problems are bad. You want to solve problems that are complex even in terms of the solution (or can be made to sound complex) to check more boxes.
* Allows you to solve problems for other teams
I haven't optimized for promotion and thats personally hurt me in the quest to get to L6. I very, very close but didn't quite make the leap.
Don't ignore the flaws in this committee process. Exploit them.
Don't be me.