If 80% is spent understanding reading about the domain in which you are working, talking to your users and domain experts, documenting your work, and mentoring juniors or being mentored by seniors, there should be nothing depressing about that.
If you have 8-10 engineers you’re supervising and are the person interfacing with management, I don’t think it’s unreasonable to spend half your time coordinating, teaching, and planning.
So scale down the expected SDE 1 quotas (~50% coding), and you get around 25-30% coding time.
I think a lot of people confuse being an experienced career engineer with being a technical lead; that’s the real jump from SDE 2 to SDE 3.
I don’t think I explained that well — but a 3:3:1 to 5:5:1 SDE 1:2:3 mix is fairly standard across industry. (Again, with an SDM doing the managing.)
I used the word “supervising” because I wanted to distinguish that technical leadership from managing, but didn’t explain enough. Sorry for the confusion.
I think I write perhaps a couple of lines a week and that's usually patching something in an emergency after other people have failed.
Advice: never get too senior.
A trait of a good manager is allow different people to be effective in the collaboration of writing software together.
The article paints an unreal rosy picture where "everything runs smoothly and has forward momentum".
Working with a live system is messy. There is always compromise because there is never enough time to keep everything smooth.
It is very common to be stuck at some problem. That moment you let a problem clunk around your brain and you randomly think of a solution in the shower or at the grocery store is way too common. And honestly fun.
The percentage of coding on a project that I get to design is even lower.