Why Do We Call It a Ladder?
The Google engineering levels, the expectations nobody publishes, and what happens when you try to fit an agent into the levels.
Gathering up these manager memories, I caught myself doing something without noticing: assuming a Google-style job ladder and level scheme as the natural order of things. I absorbed it the moment I joined Google, an American company, and somewhere along the way it hardened into a narrow conviction that everyone runs this way — or ought to. So, today, the job ladder. We call it a ladder, but it turns out to be neither one direction nor one line.
The one I know best is the Google Software Engineer job ladder. It’s a level system, though it leans less on the seniority-step idea — the Korean hobong, pay that climbs with years served — than you might expect. A web search, or any AI, will give you the details; let me lay it out and add a few notes.
The Google SWE ladder
- L3 — Software Engineer II. Entry level, fresh out of a bachelor’s or master’s. Write and test code, collaborate on small projects.
- L4 — Software Engineer III. A couple of years in, or a PhD. Medium-complexity work, a voice in design reviews.
- L5 — Senior Software Engineer. The core level. Leads complex projects, sometimes a small group, owns technical decisions.
- L6 — Staff Software Engineer. Technical lead across multiple projects or a large team; longer-horizon strategy.
- L7 — Senior Staff Software Engineer. High-complexity systems; sets technical direction across teams.
- L8 — Principal Engineer. Strategy for company-wide efforts; technical director for very large teams.
- L9 — Distinguished Engineer. Drives large-scale technical strategy; advises VP-level leadership.
- L10 — Google Fellow. VP-equivalent; influences thousands of engineers and the broader industry.
- L11 — Senior Google Fellow. The very top; sets technical direction for all of Google.
(Treat the boundaries as soft — the titles are firm, the rest bends by org and era.)
Behind the table
New grads start at L3. The lower levels are for interns and younger folks. Most of the people you actually see are L3 through L5; the long-tenured lifers turn up at L6 now and then, and when you spot someone senior with every kind of fire piled on their desk, that’s usually an L7. You meet different people at different levels, so part of this is just what was in my line of sight — and a company that large has its own distribution.
Get Chaesang Jung’s stories in your inbox
It ties to expectations — and, oddly, per-level expectations are hard to find published anywhere. The values come down to roughly this: how hard a problem you can be handed, whether you do the thing without being asked, whether you need less hand-holding. Doing what you’re told, done well, is the starting line — but in the best sense they don’t leave you standing on it. Earn trust, take on more, move up a level. Put that way, it isn’t so far from the tiered ranks I’d known in Korea — staff, assistant manager, manager, deputy general manager.
In Korea, people pin extra words before and after “Software Engineer” to signal specialization. This leveling mostly doesn’t care about domain. “Specialization,” when it comes down to it, is usually learnable; a search-ranking L5 and a frontend L5 are held to the same bar. There are people rewriting compiler internals or inventing new languages, sure — but you’re frontend, stay out of the backend, or _don’t put this person on backend,_are things you mostly don’t hear. Which is how, looking back, I brushed past a long parade of languages and lived in all sorts of domains without ever changing companies.
The moment you hold up the measure
At calibration you inevitably end up analyzing the neighboring team’s difficulty and impact. On the search team, which has more impact — ranking or serving? was a recurring debate. It goes better when a higher manager directs traffic ahead of time: _juniors, focus on using the templates; seniors, run the experiments with ranking impact._Declared up front — as an OKR, say — it cuts the disputes, especially the ones about impact.
At lower levels you tend to surface volume, things like PR count; at higher levels you carry influence through documents and reviews more than code. You still have to ship code as evidence sometimes, and when a senior has their own little group to feed, work gets funneled their way. Past senior, it’s not rare to land an exceeds expectation without writing a line. Come to think of it, from senior up, “look at this person’s code volume” only ever showed up in a below-bar verdict — shorthand for are you even doing this much?
Scenes off the ladder
The manager track runs alongside it. A little at L5, usually from L6, the people headed into management pick up reports and a different title. Influence scales with headcount, so the definitions of complexity and impact shift, and time gets spent differently. You rarely see this in Korea — for a stack of reasons.
Different era, but around L5 they’d start recognizing tenure. A new grad enters at L3, and failing to reach L5 within a set window is a bad sign; the push comes. The promotion cycle ran about three years, so reading it as expect five frantic years after graduation is usually right. Layoffs are more frequent now, in more forms, but if you dodge those, being low on the ladder rarely makes you the target.
The system gives a partial nod to your whole career, and rather than pay steps it tends to honor the level you held at another company. In the good sense, that’s it crediting an interview bar or a promo cycle you already cleared elsewhere. In the bad sense: stay flat at one level without much story, and even if that last level was set ten years ago, they’ll carry the final state forward. Run your own no-name company as CEO, then join a big one, and you get the rank you left at — and absent a reason to overturn it, you accept it. As if anyone short of stubborn wouldn’t argue. It was well over a decade ago, and maybe I’m just old enough now to wonder whether today’s L5 is the same animal as the L5 of back then. Promotions, I’ll pick up elsewhere.
Small companies struggle to apply any of this. To pull someone in from a big shop, you need at least a title — don’t you? The sales move of printing two business cards and walking the loftier one into a client meeting is culturally legible, but a small company, where that order doesn’t hold, has a hard time of it. Forcing a title onto a senior hire feels arbitrary, and with nobody yet verified, everyone’s a little awkward about it. The best practice tends to be to lump people under Staff or MTS — member of technical staff — defer the question, and not hand out too many EM hats. Rendered into Korean, by the way, these titles turn even more fearsome.
It’s of a piece with why the whole industry sprouts more C-suites every year. For what it’s worth, across thirteen years at Google the only ones I remember passing through were a CFO and a CEO — the weight that mattered was founder, and I saw plenty of directors and VPs. Start a company, though, and the instinct is to sort out the C-titles first. Which is its own reminder that the level behind “C-level” is a very different ruler from the one above.
Agents on the ladder, in the AI era
Lately I’ve been building agents in Claude Code and handing them work — and as I fuss over harnesses and skills, I find myself thinking hard about what the near future is asking me to prepare for. Especially this: the day we start mapping these agents onto the people slots, every concern above comes back at once.
The whole job-ladder logic rests on a familiar human motivation — leveling up, reward, recognition. Pull that assumption out, and someone has to hold the order up in its place; the weight of that could land squarely on one manager’s shoulders. What am I supposed to say to an agent that (seems to) ignore me? I hear Claude’s pricing is changing — and some part of me wonders if it’s my fault.
Part of Lessons from the Company — first-person notes from inside engineering organizations, from my years at Google and after. See the full series →
Adapted from my Korean essay on Brunch: brunch.co.kr/@chaesang/171
Comments