David Walsh Blog

I’m an Impostor

This is the hardest thing I’ve ever had to write, much less admit to myself.  I’ve written resignation letters from jobs I’ve loved, I’ve ended relationships, I’ve failed at a host of tasks, and let myself down in my life.  All of those feelings were very temporary — they would be heart-breaking temporarily but within months I’d have moved on.  There’s one feeling, however, that I’ve not been able to conquer during my professional career:  Impostor Syndrome.

I’m an Impostor

“Impostor” is a powerful word but that’s how I have felt during all of my career as a professional web developer.  I feel like I’ve learned every day of the ride but I feel like I’m way behind.  I feel like people see me as something of an expert where I see myself as an accident waiting to happen.  I’m a complete impostor.  A fraud.

It’s hard to qualify all of that without knowing the road I’ve traveled to get where I am.

My Road

Dear diary, I won’t bore you with my life story so I’ll put it in bullet format:

At first glance, that’s kind of impressive.  A midwest American boy gone from nothing to the “big show” of Mozilla, an international organization, in less than a decade.  Not to mention SitePen and MooTools — the top of the JavaScript framework chain.  Honestly though…I’ve never felt like more of an impostor.

Why I’ve Convinced Myself I’m an Impostor

What’s funny is I have a really hard time explaining why I’m an impostor;  I just know I am.  Whether it’s getting any feedback on the code in a pull request, the internal cowardice of asking a colleague for their opinion, or the feeling of being paralyzed when confronted with an intimidating task, there’s always the voice in my head telling me “you need to be better than this; no other developer freezes like this.”

I’ve always fought with low self-confidence when it comes to this industry.  Always.  It started with being self-taught as a high schooler, when you could argue the turbulence of that time in my life was already rough enough, as it is for all teens.  My first college programming class was COBOL, a language I likened to ancient hieroglyphics, which I actually struggled with.  My first job was at a traditionally design and print company which was just opening a web department, where I met every limitation and tight situation you could imagine:  overly demanding customers, short-balled estimates, limited hosting providers, lack of desire by those around me, etc.  It was a nightmare, one I’m glad I went through, but I learned way too much in way too short a time.

During that time I started this blog, where even when I wrote about something simple, I was told there was a better way.  I was asked to join the MooTools team but was always known as “David in Marketing.”  I interviewed at Mozilla and didn’t get the job.  jQuery legend Rey Bango introduced me to Dylan Schiemann, who after a few interviews (and the feeling that I blew them), gave me a job offer.  I asked to Skype my would-be manager at SitePen and begged him to tell me and convince me to take the job — I didn’t think I was good enough (thank you Eric Brown).

When I joined SitePen I knew just enough Dojo (and JavaScript, I guess, for that matter) to get me through the interview process.  I was immediately thrust into Perforce, advanced Dojo charting, and Dijit UI creation, for which I couldn’t have felt more out of my league (I’m thankful for this — “baptism by fire” is where I thrive.)  While feeling like a noob, I started teaching on-site training courses about Dojo, where I felt comfortable but like I didn’t have every answer.  I worked with other developers who emitted an attitude that I didn’t belong.  Sometimes asking questions to colleagues or even via an IRC room felt like it was a trade-off between not getting an answer or getting stabbed with the answer.

Mozilla poached me and the fraud feeling doubled.  Some of it was because I had failed the first time and some of it was because I wasn’t just working with JavaScript experts, I was working with people who created some JavaScript APIs.  And for the love of God, my employment and salary needed to be approved by Mozilla CTO Brendan Eich, the man that created the fucking language.

During each new job, I made mistakes.  Someone with a level head would forgive that as nerves but I felt that as I leveled up, despite the leap in difficulty, it’s somehow my job to make fewer (no) mistakes.  That as a “Mozilla level” developer I should never, ever submitted a pull request with so much as a console.log statement.

You know what that led to?  More mistakes, more self-pressure, and more feelings that I was an absolute fraud waiting to be flown to Mountain View and burned at the stake.  The less I thought of myself and the harder I tried the more I would make the most obvious of mistakes.  Every comment on my pull requests felt like a HR performance warning for my file.  I once approved a pull request to MDN which inadvertently would lead to a JavaScript-powered DDOS on the site (pst, DO NOT TRIGGER REAL EVENT NAMES WITH JQUERY!);  I told my wife what I wanted as my last meal, for I had finally been exposed as the fraud I was.

Three years into my Mozilla career I still struggle with these feelings.  Still.  It’s like a singer going from their local community center to Madison Square Garden, you’d think they’d feel like “You’ve made it”…but I don’t.  I still deeply struggle with these feelings that I’m Vincent Kompany a fraud, an impostor.

Why We Feel Like Impostors

Our industry lends itself perfectly to Impostor Syndrome and it’s not difficult to explain why:

There are more reasons but these were the most obvious to me.  The reality is that our profession tends to encounter on-the-job problems that many other professions simply don’t.  They just don’t.

Why You Aren’t an Impostor

That list was some pretty heavy shit and we all know it’s probably true, at least most of it.  But there is hope.  If you’re reading this post, you probably aren’t an impostor, because…

That’s a much shorter list than the impostor list but we can always think of more ways to cut ourselves down than build ourselves up.

How to Not Feel Like an Impostor (Easy Wins)

Feeling like an impostor is a hopeless feeling but one that even the most depressed developer can overcome.  Here are a few ways I can snap out of it, at least temporarily:

Shaking off impostor syndrome isn’t simple but you can give yourself even the most brief moments of relief by gaining a simple win.  What qualifies as a simple win for you will differ but you must find something.

Moving Forward

It’s hard to look at my impostor syndrome as the worst thing in the world — it has spurred me on to do better, work harder, and aim higher.  On an emotional and mental level, however, it has been debilitating and difficult to get past.  I’ve gone entire days without writing a meaningful line of code due to my lack of confidence.  Other times I take that feeling and crush it by overcoming development obstacles.

I don’t know what more to say.  I don’t even know if this post made sense;  it was incredibly hard to write and the worst part is that I don’t have an answer for all of you.  If you have experience with impostor syndrome and have something to share, please do.  We’re all in this together.

Also remember that development is only a small percentage of our lives.  Find a way to smile.  :)