I'm a L4 at Google, and am TLing a project with 6 other SWEs. I was working on one of the implementation docs, and had to work on a Postmortem incident and its AIs. I sharded off some parts of the implementation to one of the SWEs in the project. I'm back into the project now, and the other SWE is making great progress and I want to let them take it to completion for credits attribution.
I'm confused on whether I should try to do most of the implementation for the designs I write myself or shard it off as other SWEs have a lot less on their plate in December, and early January. Could it be held against me in promo committees that I didn't handle a lot of implementation myself? My org has a high priority on lines of code written, which is causing this confusion.
Delegation is tough, especially as an L4. Meta and Google have similar promotion standards (the L4 -> L5 course should be helpful here), and L4 is this awkward growing pains phase where you need to show that you have senior/tech lead behaviors while also proving your technical chops (i.e. write a lot of code).
My advice here is multi-faceted, so I'll split it up.
Of course, an engineer is more than their commit count. However, I'm sure most Big Tech engineering leaders are checking their reports' commit counts and code volume in performance review. Numbers matter - This was very much the case at Meta, and while I know that Google is more chill about it, I'm sure they matter at Google too.
I think you should ask your manager point blank what a healthy commit count would look like and how you're trending towards it. You can weave in the nuance I have just mentioned here:
I know that engineers are more than their commit count and that quality is the most important, but I also know that volume matters, especially for performance review. Can you tell me ballpark ranges for what a healthy commit count would look like for the half/year and what you think about my code output overall? I understand that any number you give me must be taken with a huge grain of salt.
My managers at Instagram were thankfully willing to give me those ballpark ranges, and they were super helpful. I made sure to hit those ranges, and it was a big help getting me to "Exceeds Expectations" and above on the Meta "Engineering Excellence" axis.
Once you have a number, you can do math to figure out when you should delegate more vs. doing it yourself. If your volume is too low, take on more of the implementation. If you have a buffer, you can delegate more.
It feels great to rattle off tasks where the code is 90%+ like what you've already done before, but this isn't great for your promo packet and overall development. You aren't learning anything from the experience, and you won't get rewarded on the technical complexity axis.
For these tasks where it feels like breathing, delegate them to an L3 or earlier L4.
As a lead, you need to do the hardest things. If something feels scary and is high technical complexity, that's the kind of task you need to be working on. The less you know about how to complete a task, the better a sign that it's high technical complexity and will give you a lot of promotion points. I talk about this mentality in-depth in my "The Goggles" lesson.
The caveat here is that it should be hard due to the technical complexity, not your unfamiliarity with the entire domain. Let's say you are a back-end engineer. Any front-end task is hard for you because you have 0 idea how to do it - Don't throw yourself at front-end tasks because of that unless your team is severely lacking front-end resources.