Master of All Trades
"What the fuck did you tell him?"
These were the first words I heard when I picked up the phone. On the other end was a friend of mine, who had recommended me for a position at his company a few days earlier. At that time, we were both Computer Science students. He had started working at a new company a few months ago, and when he heard they were looking for new junior developers, he put in a good word for me.
Earlier that day, I had gotten a phone call from my friend's boss. I didn't know my friend gave him my number, but I tried to hide my surprise. My friend's boss sounded energetic and driven. He just wanted to say hello, he told me. After some polite small talk, he informed me that I would receive a Google Sheet via email, and he asked me to fill it out as soon as possible. The Google Sheet was titled "Skills."
The Sheet contained a list of frameworks and programming languages. The instructions on top of the page told me to rate my proficiency in each of them. The boxes were titled 1, 2, and 3: 1 meant I know it a little, 2 meant I'm good at this, and 3 meant Expert (yes, it simply said "Expert"). I felt a bit uneasy about squeezing myself into these three categories, but I tenaciously went through the list.
A couple of hours later my friend called me. "What the fuck did you tell him? My boss thinks you're a total idiot! He told me they won't even invite you for the interview!"
I didn't know what to say. I had the feeling I had let my friend down, who had put himself on the line by recommending me. I told him how I had filled out the form and sent it back. That's it. I think I mumbled "sorry" and a few moments later, we hung up. The worst part was that I didn't know what the fuck I did wrong.
I started coding when I was 11. I've always been fascinated with writing code, and I've done so obsessively ever since. Back then, I was a long way off from being a seasoned developer. But I had some (raw) talent and a few projects under my belt, which I thought should have at least qualified me to get invited to an in-person interview.
Still perplexed, I opened the self-assessment Sheet again. Surely I did something wrong! I double-checked every little ✔️ I made. Everything looked fine. I wondered if I should have given myself a 1 for Python (instead of leaving it blank) since I had written a few Python scripts and felt reasonably comfortable with it. But besides that, I would have made the same choices again. I began to feel annoyed.
What did they expect of me? I was interviewing (or hoping to) for a junior position. I was proficient in a couple of programming languages and knew my way around many big frameworks. I paused for a moment and thought: Maybe I have misunderstood the meaning behind 1, 2, 3?
I had assessed my skills based on my understanding of the three different levels: a 1 for me meant I've written a couple of small programs with this language, a 2 for me meant I'm very comfortable with this language and have developed larger applications with it, and a 3 for me meant I belong to the best developers in this area. I never checked a 3 on any skill. I knew I was good back then, but I also knew there were many things I didn't know; things I hadn't learned yet, experiences I hadn't made yet. To consider myself an "(3) Expert" was to put myself on the same level as some of the people I looked up to. And I damn well knew I wasn't on their level yet.
A couple of hours later my friend called me again. "I talked with my boss. I told him you're really good, and he agreed to do the interview after all." And thus, I ended up in an interview with someone who had made up his mind that I was an idiot based on 37 ✔️.
One weird interview later, they hired me on the spot.
At first, I only felt relief. Naive as I was, the impersonal rejection hurt me, but the validation I felt by being hired soothed my brittle ego, and so I didn't worry too much about the whole process in the first couple of weeks. But the process nagged at me.
If it hadn't been for my friend, who had put in a good word for me twice, I would have not gotten the job I was obviously qualified for. Was I supposed to lie on future applications? Tell everyone I'm an expert in twelve programming languages and a grand wizard in 18 frameworks? Fake it till you make it?
Broken hiring processes routinely force us to either overstate our skills or face rejection. Being humble and owning our weaknesses and strengths alike are essential traits. Traits we should cherish and incentivize. Every developer I look up to is painstakingly aware of what they still have to learn.
Finding good developers is hard. I know. The industry is in dire need of good mechanisms to make this challenge a little easier. Putting people into three boxes sure as hell isn't one of them.