I have a little figurine on my desk that I look at from time to time. It’s Michael Jordan soaring for a dunk. The plastic base is missing a corner, chewed off by my dog years ago. The metal stand is rusted and most of the paint is faded. But it’s unmistakably MJ with that red 23, tongue out and hand palming a basketball. I’ve had this figurine since elementary school and it’s been on my desk through high school, college and now as I navigate my professional career. I use it to calm myself down, inject a boost of confidence or when I need a push to stop procrastinating. I look at my little figurine and remember that Jordan wouldn’t be scared and then direct that feeling towards whatever needs to get done in that moment.
Easier said than done, right? I hear about imposter syndrome from almost every engineer I’ve ever managed or mentored. My peers in college and now in industry share that they experience imposter syndrome often as well. It only seems to get worse as you gain seniority. There is a constant feeling that you’re only as good as the last code you shipped or the last value you explicitly produced. A few days without a win can make a person worried that they’re about to be “found out” and colleagues will realize they aren’t as senior as the title or role they hold.
I think on a rational level, most folks in our industry realize this is true of most people around them but somehow it’s taboo to talk about unless you’re speaking in generalities or talking about someone else. Very few people I’ve worked with will come out and say “most of the time I feel like a fraud”. I wonder how much healthier software engineering would be if we talked about this phenomenon more openly. But here I just want to talk about one strategy that has worked for me and might work for you.
To borrow a little more from basketball (half of my manager tools are from sports), I think about how the greatest basketball shooters train themselves mentally and have tried to emulate it in my career. Great shooters always care more about consistency in their form than being perfect. They don’t worry about their last shot, only the next one. And a truly great shooter will continue to shoot even when every shot isn’t going in because they believe the next one will.
How does that apply to imposter syndrome? First, it’s about changing your mentality from thinking you always have to be right or perfect to realizing that sometimes you’re going to miss. Software engineering is a team sport. You want to embrace that you’re only going to get it right part of the time and rely on your team to carry you when you’re making a mistake. When you’re in a meeting and say something that ends up being wrong or even sounding stupid, try and shake it off so that you don’t stay silent the next time you have an idea. It’s much harder to do than it sounds but with practice you can get better at training yourself to be ok with being wrong. When you put up a pull request and get dozens of comments and corrections, you have to trust that if you were consistent in your practices (whether that’s writing good tests, using the team’s conventions or whatever that may be) then this feedback can improve your skills. Instead of getting upset, incorporate them into your “shooting form” (ie the way you write code) for next time.
For tech leads and managers, this can be just as important. Your work is much more visible and it can be much more mentally difficult to screw up because it’s usually in a larger forum. I remember a time right after I became a manager where I presented a new framework for the team’s values at an all-hands meeting. It was a disaster and my boss at the time mercifully suggested we shift the discussion to asynchronous (a polite way of saying “stop talking and let’s regroup privately on this”). It really hurt at the time because I knew he was right and I thought folks on the team realized I wasn’t qualified to be in that role. As hard as it was, the rest of the week I just put my head down, put in the work on other things and slowly built up some wins until I felt a bit better. I doubt anyone besides myself even remembers that meeting years later. I just kept shooting because the only thing I could change was the next task I was going to work on.
As soon as you embrace being wrong, you also get better at asking for help and seeking feedback proactively. Seeking feedback can be a powerful counter to insecurity because it gives you validation (or course-corrects) on your own terms. It is important to distinguish between seeking feedback and seeking answers. You don’t want to outsource your thinking to someone else because then you won’t get better. Wait until you feel like you’ve done all the work you can on your own and only then ask someone else to take a look.
When all else fails, I try to remember that I’ve been able to get by so far and that it’s unlikely this challenge, whatever it may be, is going to be the one that stumps me. I know it’s not as easy for some people as it is for others to adopt a certain mentality and this advice won’t work for everyone. I hope that the take-away you get from these thoughts is that so many other people have the same insecurities and fears that you do and most have figured out how to overcome those challenges and they (and I) aren’t any better than you. The only difference is that we’ve found a strategy that has worked and maybe you haven’t found yours yet. But maybe you have and you don’t even realize it.