Wednesday, 12 August 2020

When hubris is not a virtue

Months ago, I vacated my well-paying position as a web developer for other pastures. My former company is a fairly big outfit, one of the biggest in the world. And over the years, I've increasingly marveled at the fact that someone of my (admittedly, not extremely high) caliber managed to survive that long despite the fact that I was surrounded by younger and obviously more talented people.

In the weeks that followed, I've had time to understand how. It wasn't so much the circumstances, but rather, how I reacted to them.

Remember when I said a certain amount of hubris was helpful for a programmer? It's still true, but equally true is the fact that your ego is your ego and often you need to show it who's boss. Allowing it to take over is a complete recipe for unmitigated disaster.

Asking for help

You see, being the oldest developer among a bunch of energetic and ambitious thirty-somethings have afforded me a certain perspective. I've lived through situations where I personally witnessed (or in some cases, personally experienced) how pride can be a drawback... and I applied this experience by giving absolutely zero fucks about my professional reputation. In fact, I was pretty open about the fact that I didn't think I was that good.

For example, I wasn't shy about asking for help or showing how little I knew. People love helping because it allows them to showcase how much they know. If ever there was any doubt about this, try posting a question on StackOverflow sometime.

Help!

Developers can be a competitive (though unfortunately not always competent) bunch and may subconsciously view you as a threat. Asking for help puts you in the position of supplicant, and if you express appreciation appropriately after receiving said help, you cease to be seen as a threat and perhaps even begin to be perceived as a great way to gain street cred.

I should also mention that older developers need to break out of the mindset that they're experienced and therefore can't "lose" to younger developers. And by "lose", I mean - take orders from, earn less than and learn from. What's next, you can't take orders from a woman? From a foreigner? There's no room in tech for that kind of rubbish. This is the kind of ego that is most definitely unhelpful. I'm not automatically superior because I'm older. That's like if you repeated secondary school and insisted that this made you more educated than others because you had one extra year of schooling.

Taking up unpopular tasks

There are certain tasks that some of my colleagues didn't want to deal with, mostly because those tasks involved a steep learning curve and were outside their area of expertise. I, on the other hand, laid claim to no expertise of any kind. Remember, I had paid my dues in an era where there were no specialists in web development; where everyone was a full-stack dev. Therefore, I accepted these foreign tasks as they were thrown to me. Automated DevOps. API gateways. I already didn't have a reputation to uphold for being particularly skilled. That was my singular greatest edge - I didn't need to be afraid of appearing incompetent.

Unfamiliar work.

And if I was handling something totally new, I didn't have to worry about proving a damn thing. Not only did I not fail miserably, any mistakes I made in the process resulted in me leveling up. And it also resulted in me being able to hold more intelligent tech conversations.

After all, if you're starting from the bottom at something, there's only one direction you can go.

Accepting blame

In my third year, I was given the task of attending to one particular user. This user was notoriously difficult to handle; there was an incident where a back-and-forth email exchange between her and a fellow dev went on for almost three days while they argued heatedly over some discrepancy in production code and whose fault it was. You know the kind of user who types in ALL CAPS and bright red font? Yep. My team sent me to handle her. In their words, I was "shameless". I had no feelings to hurt.

Taking the heat.

Sure enough, eventually something cropped up and I was given the ALL CAPS and bright red font treatment, with plenty of people in the CC loop. What did I do? Not to brag, but I took it like a champ. I readily admitted it was my fault, explained exactly how it had transpired, and outlined a proposed plan to prevent this from happening again. The back-and-forth took three hours to resolve; maybe less. Three hours! Not days!

What made the difference? Easy. Firstly, I was a contractor and didn't feel particularly threatened; this job was never meant to last that long. Secondly, I had a pretty clear idea why that user was doing this - she had way more to lose than me if the blame fell on her and she needed her blamelessness visibly broadcast. Again, I was a contractor; it wasn't like taking the blame was going to cost me a promotion or something.

And thirdly, I went in with the mindset that I was here to solve a problem... and I certainly didn't define the problem as "someone shouted at me through email, I gotta stand up for myself!".

The funny thing was, a day later, the user and I were having an impromptu meeting. At the end of it, she apologized for the way she had spoken during the email... and it took me a couple minutes to figure out exactly what she was talking about because I'd already moved on.

Facing rejection

I've spoken about the job-hunting process before, and how I usually use actual interviews as practice. It surprised me to learn that almost none of my colleagues ever do this... and usually it's because they're afraid of rejection. Because rejection hurts, or some shit like that. Well, here's the thing - you get rejected enough times, eventually you're gonna get numb to it. Trust me, I know.

If you don't shoot, you don't score.


Not only do I expect to get rejected, I consider it way better than not receiving an answer after the interview. A nice formal (and of course, politely-worded) fuck-off is still a response. It's respect. It's professionalism. You may think rejection stings, but that's probably just your ego rankling at being told you're not as good as you think you are. Rejection is a valuable opportunity to find out where your knowledge gaps are. That's how I ended up learning ReactJS and D3 - because enough companies I interviewed for listed it as a requirement. Being rejected at interviews at least pointed me in the right direction. And believe me when I say I wasn't shy about asking for advice from my interviewers after they rejected me. Why not? I mean, I was already there. I probably wouldn't see them ever again. Might as well extract every last ounce of value from our time together, right?

And boy, you'll be surprised how some of the toughest interviewers were so willing to drop the hard-ass act and try to help. "Bro, next time somebody asks you this, you need to stop giving that answer." "Dude, I really can't make sense of your resume. Try this next time..." "I think it would help if you tried to specialize in something." People want to help you and share their know-how. All you gotta do is ask. Encourage them to do so. Especially if they're in the position to do so!

Finally...

Now, you may think that all this sounds really weak. Really... Beta Male. Honestly, if you're still trapped in this Alpha-Beta dichotomy, you've probably got issues that no amount of reading my blogposts will help resolve.

Remember what they say about the reed that bends with the wind, and the mighty oak. Be the reed. Acting tough is easy. Being tough while acting meek, is several levels higher.

Loud, proud and still unbowed,
T___T

No comments:

Post a Comment