The expectation for each level is: L3: you are expected to do projects assigned to you well L4: you are expected to lead a project in your team well L5: you are expected to lead a project across multiple teams in your organization well L6: you are expected to lead a project across multiple organizations well
I think the L6 engineer is basically a CTO role in many other companies. L7 is even beyond that.
Based on my own experience at peer company and https://www.quora.com/What-are-all-the-job-levels-in-Googles...
L4: Capable of independent work on a project and coordinating with a small group (1-2 others). (note this is PhD starting level)
L5: Capable of leading your team (e.g. as a tech lead). Maps to entry-level manager
L6: Capable of leading a large team (e.g. large team TL). Maps to more seasoned manager.
L7: Lead project across multiple teams well. Maps to senior manager (manager of managers)
L8: Lead project across multiple orgs/large org. Maps to director (manager of managers of managers).
At a series B stage company (say 100 eng), on manager track, L7s might be called directors. L8 would be VP engineering.
I have talked to a couple L9 engineers and they're monstrous. L9 managers are directors or VPs.
The fact of the matter is, were DMA indeed a hard problem, I would not have posted the comment.
So instead of posting a link to a blog post, perhaps you could try to disprove my claim?
I got a couple offers over the years for L5-L6 positions at FAANG (specifically Google and Facebook) to work on low level stuff, including system programming and kernel development, since I have a few dozens upstream Linux kernel contributions in some subsystems I dabbled with.
I also had to deal with writing a video4linux custom driver for an embedded industrial machine and a very custom acquisition card using DMA in the past, and it was significantly difficult even to just make it work playing with the well-defined kernel DMA APIs. I can easily see how the complexity required to write the entire kernel plumbing framework that makes DMA possible to leverage for normal developers like me would be a hard engineering task, definitely one that deserves an L7 architect/engineer capable of coming up with the right level of abstractions, incredibly important for a C kernel API. Just because one can explain on a whiteboard what DMA is and how it is supposed to work by remembering the OS college class (I'm not saying that's you), it doesn't make it an easy engineering task, engineering it's about making things work. I'm sure if you go back to the LKML mailing list and look at the time period where DMA support was initially introduced in the kernel, you'll be surprised at the sheer engineering complexity that was discussed when introducing such core kernel feature.
In conclusion, the fact that FB and GOOG wanted to hire me to work on stuff relatively close to what we're talking about, at a level that is considered senior, gives me some legitimacy to say that me thinking it's a hard problem isn't probably too far from the truth, otherwise we are somehow assuming that FAANG extends offers to incompetent people (multiple times), mistakenly considering them senior engineers.
I take your original comment as naive as the people who say "I could have built Instagram/Whatsapp tech in a week!", because you either are a super expert, or you simply don’t know what you’re talking about.
Perhaps you should consider getting an offer for $1M/y (or more! Since L7 tasks are easy for you maybe you can shoot for an L9 and ask $2M/y, I have a close friend at GOOG at that level who gets paid that much) there then, if you're not already in that elite band of compensation?
I took it to mean writing a driver that uses an existing DMA API to talk to a controller.
But yes, I agree: implementing such a DMA interface from scratch — even with an existing controller — is not a trivial problem. Testing and verifying said implementation would also be difficult.
Well, I hope that one day I can make 1M/yr! For now, 3 months into my first job, I’m fairly satisfied with where I’m at :)
I’m considering shifting into kernel development next. Given your experience, would you advise going down that career route? Any tips for a career in low-level development?
My experience with the kernel has always been mostly tangential, typically a byproduct of what I do day to day, which is working at a SaaS startup at scale and wearing many hats, from backend development (Java/C++) to infrastructure management. As I find performance problems, many times I find myself digging into the kernel code and exploring parts of the networking stack (e.g. finding out the specific behavior of a socket option), virtual memory management (e.g. finding out some quirks about the page fault management system), ...
Sometimes that leads to some small kernel patches and I've done several during the years, so that's typically my limit. The v4l driver I mentioned above was 6-7 years ago when I was in college and took a part time job working on that with a very talented team.
Apparently FAANG likes those kind of background, especially if you can get into a more SRE-type role where they are actually not looking to quiz you only on dynamic programming algorithms, but also on your ability to reason with system design, low level systems and performance, at least that's my experience.
There are L8s that lead orgs of more than 100 people they'd map to cto or ceo. Indeed given my own experiences, many L6s have L5 TL/M reports. I'd say L7 is the better mapper to vp of eng at a 100 eng company. That allows you to have 2-3 VPs under the CTO.
VP Engineering -> runs the 100 person org <L8 equiv>
Director -> manages managers (30 person org) <L7 equiv>
You will not be hired as T7 either. Your comp may exceed T7, but not your level.
Yes, you can make a lot of money at Google.
What do you mean by this? (I know someone that was)
I have only ever worked with one and he was one of the first engineers on GCS and Kubernetes.
If you are capable of outputting at t7 level after 10 years of experience, that would make you one of the best engineers (by Google ratings) in the world. And yes, you could be earning a million a year.
Google stock grants vest over 4 years, so 8 years ago doesn't matter, but there is something to just tenure in that yearly refresh grants really add up, and used to be similar size to the first grant, so pay would really escalate over the first four years for many (most?) people.