I combat impostor syndrome with building in public
I have a massive impostor syndrome and I've had it for as long as I can remember, probably since the school started grading us in the 2nd or 3rd class. My professional life has been a constant battle against it and so far I've managed to push through despite it.
When I attended Elisa Heikura's fantastic workshop on impostor syndrome a couple of years back, I found myself in every category she listed as possible ways to feel impostor syndrome. Luckily, I'm not alone as this is such an epidemic in the software industry even though many don't speak about it a lot.
For most of my life, my only tool to combat it was stubborness. There was no way I was gonna let it stop me or ruin my life even though I've probably skipped quite a few things and opportunities over these years because of it.
More recently, I've found a new way that can sound a bit backwards and unintuitive: building and learning in public.
Learning/building in public
I've shared my approach to learning in public before in a few venues but it's mostly been focusing on the effectiveness from the perspective of learning new things, improving skills and meeting great people.
It can sound bit backwards to think that someone who's worried about their skills would like to share their work and outcomes openly to the world but hear me out.
For me, a big part of my impostor syndrome is that I feel it's so hard to guess/estimate/judge my own skills. I have no idea how good I am at something and I worry that if I say I'm good at something, someone believes it and then finds out down the line that I'm not.
I didn't choose to build in public because of this but it has turned out to be a great tool in my arsenal. For example, I've been solving Advent of Code puzzles and writing explanations to them for a few years, publishing them in GitHub and on my website and I've been openly working on my Rust learning project on my blog and in meetup talks.
By building a body of work of different kind of projects and sharing them openly helps me pass the burden of responsibility to the reader. "Here's what I've built, what the code looks like and what I've learned along the line. You can decide if it's good enough."
It doesn't always work perfectly though. Because being active in sharing and talking about things does skew public perception quite a bit compared to those who don't. I've been offered Rust development jobs due to being rather active in the scene even though I wouldn't let myself write production code. This can bring its own impostor syndrome challenges too.
It gets easier as the portfolio grows
I've found that about now, I have quite enough of projects and code out there that I feel quite confident that I'm able to share a good and realistic view of my skills. If I want to showcase my documentation/technical writing skills, I primarily point towards the Advent of Code solutions. If I want to showcase my ability to learn something new, Rust project it is. And so on and so on. I have quite a few technical blog posts in this very blog that I can point to when it comes to specific individual things.
It still never takes it fully away.
I recently started a new job and while job hunting and discussing with a lot of companies, I was very worried about my skills and if I'm able to present myself in a realistic way to potential employers.
1.5 weeks into a new job, I'm happy now and have been doing quite well so far. But that's another story for another time.