Zero to Hero Part 1: Dreaming of Mastery
It is the 16th of January, 2023 as I write this, and I feel pretty upset. I work in a company with around 250 other UI software engineers. I lack confidence, but I am confident in one thing: If those engineers made a ranking of all the engineers, I'd be near the bottom.
when I'm quite sure I'm correct, I am not believed, because my track record isn't good enough
You reading this are probably very smart, or at least enjoy the activities of a person who feels smart. You probably enjoy the feeling of people coming to you for advice, and seeing their faces light up as you solve their problems. Or perhaps not. By contrast, feeling like a useless idiot is crushing. The worst part - when I'm quite sure I'm correct, I am not believed, because my track record isn't good enough. On more than one occasion I've wanted to quit and disappear into the mountains. If you're one of my friends trying to console me - this isn't impostor syndrome - the illogical feeling of being stupid when in fact one is great. My track record for months shows my incompetence, and I don't want to stay this way.
Something about feeling like a complete loser is filling me with an enormous urge to climb to the top.
Why write this?
"Many who try to climb it fail, and never get to try again — the fall breaks them. And some are given a chance to climb, but they refuse. They cling to the realm, or the gods, or love ... illusions. Only the ladder is real, the climb is all there is."
Sharing stories of how dumb you are is a risk. it isn't all that common for people to help - it is more common for people to look, feel superior, and enjoy their now elevated sense of superiority. Or worse - people can take these stories as evidence to kick you down or reject you. My correct input can be disregarded because I'm at the bottom. This creates a vicious feedback loop, a pit that is hard to climb out of. Posting this story is a risk for me. I risk alienating the help I crucially need. I risk rejections that I would not have gotten otherwise. Yet, it is necessary. If I can't be honest about my current situation, I can't hope to improve, and I must.
Measuring the unmeasurable
Software engineering, like many skills, lacks commonly agreed metrics. What is valuable to one engineer might seem toxic to another. Are people skills important? Code conciseness? Documentation? Tests? Even if engineering agrees on what is valuable, so much of engineering still doesn't have agreed metrics. Contrast this with becoming top percentile, where the skill is highly measurable, usually in the form of a single scoreboard that is known to all participants.
When the skill is so hard to measure, it's common to see vague advice, a lack of objectivity, perhaps a defense mechanism stemming from a sense of shame. I think I can do better, hence this publicly viewable post. I can feel myself being at "the bottom" in a number of ways I can define and measure:
- Comprehension. Low or no comprehension in text and verbal discussions. Other engineers I see discussing hard problems - I barely understand the problems, and certainly not the solutions they're debating. To improve, I'm going to try accumulating Evergreen notes about UI engineering that I've written myself. I would like this to be in the hundreds, but for now that number is one: I have one excellent note about virtual machines, but I will need many more.
- Helpfulness. Other engineers get stuck every day. I rarely have thoughts to offer, and when I do, such thoughts are not accepted or do not resolve the problem. Thus I find myself avoiding offers to pair program because I fear I'll drag the other person down. The obvious metric is Problems solved, which for now I believe is zero.
- Creation speed. I create code slowly and at a quality that others do not approve. I will measure this in PRs merged per month. At time of writing, I am at around 1.16 PRs merged per month. By contrast, one of the most beloved engineers on the team averaged 5.5 PRs merged per month. Another merged 14 PRs in the last month. And those people did so while helping others. I'm feeling pretty upset just typing this and seeing the gap, but it's important for me to see how big the gap is. It's tempting for me to prioritise this metric, but it depends strongly on Comprehension.
Plan, then execute
My most precious resource is time. With other engineers already so far ahead, I can't afford to dilly dally. Thus, my greatest enemy is time-wasting.
My plan of attack for now is:
- Pair program as often as I can bear. This is the hardest and also the most important.
- Hunt and kill timewasters. I waste a lot of time each day, which I crucially need to make PRs. Those timewasters include:
- fighting the company's tooling. I've lost entire days to this. Other engineers also lose time, but I suspect not as much, and I would like to find out how.
- fidgeting with my phone. this is hard, as my work requires me to unlock and look at my phone for 2FA.
- crawling docs and code. My workplace's docs are so bad that most people default to asking in Slack. I should find ways to get answers faster, and store them in notes to avoid future lookups.
- emails and slack - these yield so little value I
- Block time for the key metrics. My time keeps fizzling away, perhaps because I don't tame it. Time blocking will likely be my most important tool in this adventure, and not with a calendar app.
- Increase energy. When my energy is low, my comprehension speed is also low. When I'm tired, I may reread the same words a dozen times without understanding, and also realise half an hour has gone by. ADHD time-blindness can really be a total bitch. To up the energy, I think I can:
- Look at my numbers. Somehow, seeing how far behind I am fills me with enormous desire to close the gap.
- Work on this plan. Like above, just making this plan (and not copying someone else's plan) fills me with zeal to become better.
It is the 25th of January as I publish this note. I don't know if this plan will work - I've never been a master of anything. But at the very least, maybe for a moment, I can maybe be someone's hero. I look forward to becoming my future self, and writing about it in zero-to-hero-part-2.