How I'm dealing with Self-Doubt as a Software Developer

October 24, 2022

As a software developer, I’ve found self-doubt tends to intensify when:

  • comparing oneself with others e.g. can I really be as good as person X?
  • getting some negative feedback, especially from people I’m unfamiliar with (I think this is close to imposter syndrome, where I’m worrying about being judged)
  • looking at something I don’t know much about or struggle to understand

This is an unstructured collection of resources and thought processes I’ve found helpful when that happens.

Remember we don’t see the journey they took to get there

When comparing yourself to others, it’s super easy to be focused on how good they are now, without accounting for time taken to get there (and how much they struggled, just like you might be struggling now).

I paired recently with @vinistock and was amazed by (from my perspective) his deep knowledge of Ruby internals like singleton classes and module hooks. What helped demystify it was asking:

  • did he have this knowledge when he joined his current team a year ago? Answer: No, in fact, it was a struggle to learn.
  • what resources did he use to get better, which he graciously shared. This helped me to chart a sort of “path to improvement”.

There are probably geniuses out there who grasp things immediately, but for the majority of us, it’s about working to get better, and hanging in there.

Realising they made some learning tradeoffs

Another one when comparing yourself to others. @dan_abramov (a public figure in the React community) has written about things he doesn’t know, which helped to break a false notion that because I didn’t know “everything”, I was behind.

It can be easy for us to narrowly focus on what our heroes know deeply about, and forget that they still don’t know everything, and likely made learning tradeoffs to get there.

I still like the idea of being able to know everything, but am a lot more zen about it now. I try to remember that it’s likely something that can be learnt, but I don’t have to learn it now.

Getting more feedback

@bethcodes has characterised imposter syndrome as a lack of feedback, and presented the dangers of choosing not to seek it. To get feedback, we need to put ourselves out there (be it “asking stupid questions”, taking projects outside our comfort zone, or asking directly for it). That’s risky - we can look stupid, get laughed at, and the like. But when we get constructive feedback, it leads to one of two things:

  • learning what you can improve in
  • learning that you’re not as terrible as you think

My favourite passage from @bethcode’s post:

On and on, my stupidity was laid bare for the world to see and it turned out it didn’t matter. No one cared, and when I took the feedback on board for next time they thought it was awesome.

Even with rational understanding of the above, it takes me time and repetition to get comfortable with putting myself out there (be it “asking stupid questions” or seeking feedback). Psychological safety is an important pre-requisite, and I think it’s both trying to find a good environment, as well as testing the waters to see if whether people truly practice a safe environment.

On a somewhat related note, working with different people helped as well, as it became clearer that the positive feedback wasn’t one-off. Plus, if many different people are saying similar things, it becomes harder for you to refute. For me, this became clearer when I changed jobs - I really enjoyed my previous company actually, but kept wrestling with my standing in the industry. (I wouldn’t take this at face value though, depending on you / your company you might be able to achieve similar results without leaving!)

Reframing as something that can be improved (Growth Mindset)

I feel a little cheesy saying this - reframing the subject of my imposter syndrome as something improvable has had the most impact over the last year or so. A key catalyst for this was reading Carol Dweck’s Mindset.

One particular example from the book that sticks with me - children were given a set of puzzles to see how they dealt with difficulty:

Confronted with the hard puzzles, one ten-year-old boy pulled up his chair, rubbed his hands together, smacked his lips, and cried out, “I love a challenge!” … What’s wrong with them? I wondered. I always thought you coped with failure or you didn’t cope with failure. I never thought anyone loved failure. … Not only weren’t they discouraged by failure, they didn’t even think they were failing. They thought they were learning.

When inadequacy or jealousy creeps in, I try now to think of the subject as something I can get better in, as opposed to being something impossible. I avoid thinking about whether I can achieve the same level of expertise, just reminding myself that I can get better. I literally imagine and try to emulate a kid saying, “Whoa, that’s awesome! Let me try.”

Again, it’s not something that changed overnight, and I’m still working on it.



By Nick, a Business grad turned Software Engineer, living in sunny 🇸🇬. I write mostly about Ruby and Rails, not wasabi (sorry!).