Fighting Imposters Syndrome As A Software Engineer
6 min read
I've just passed the 3 month mark in my first role as an "official" software engineer. I say official, because prior to this, whilst I had done software development, it was straight out of bootcamp, for my own startup, where we made our own rules. My role then was very much that of a founder, with a whole myriad of responsibilities that come with it, of which "building the product" was just one.
The situation I now find myself in therefore, is that of working for someone else's company, for the first time in a long time, in a role I've never done before. I'm no longer setting the rules, and worst still, don't really even know what the rules are for my role, having never played this game before.
Going in, I felt like I knew just the bare minimum of what I needed to know to survive. I still couldn't believe I had landed the role and felt like I had gamed the system to get in and would soon be found out. I asked for a 2 week break before starting the job, mainly so I could just try to learn the skills I felt I lacked, to actually do my job.
This feeling didn't stop when I started. The whole period from deciding to apply for software roles, all the way through to getting job offers, accepting and then starting my job has been one of the most stressful periods I've been through, mostly fuelled by feelings of inadequacy and imposters syndrome.
Do I regret doing what I did, in the way I did it? No - because it definitely played a part in pushing me to work as hard as I could, to land the role I wanted. Could I have done it in a way that resulted in less negative stress and personal denigration? For sure. Which is why I'm writing this post.
The initial 3 weeks of starting my job was intense. I was working extremely long hours without breaks, ending at midnight, then finding myself unable to sleep due to anxiety and stress. There just seemed to be so much to do, learn and deliver on, and I gave myself ridiculous deadlines that I felt I had to hit to prove I was worthy of my job. It was unsustainable to say the least, and I realised that what I was trying to do didn't make sense - this role was either a good fit for me, for the stage I was currently at, or it wasn't. Why force it and try to kill myself in the process?
So I gave myself permission to take a step back and breathe. That's when I realised that this was just another case of imposters syndrome, in a different guise. This is unsurprising really, considering I'm embarking on an entirely new path that I've never gone down before. I believe that imposters syndrome can be a tool you use for your benefit, but only if you're mindful of its effects on you. It definitely helped push me to keep learning and progressing, but it was now starting to be unhelpful. No matter what I did, the feeling of overwhelm wasn't diminishing and my stress levels were through the roof. I wasn't exercising, sleeping well or socialising because it felt like I didn't have the time. I needed to reframe my thinking, and the thought I kept returning to was what I said above. If this wasn't the right role, then there really wasn't any point in stressing over it. Starting now.
I'm writing this post to serve as a reminder for me, because I'm sure at some point in the future, I'm going to be contending with the same types of feelings again. Another thing that helps me deal with imposters syndrome is to think back through all the things I have managed to achieve, as a concrete track record helps provide some objectivity in the war of confidence that wages on in my head. This post might also help someone else dealing with similar thoughts, so I thought I'd list some things that helped me see the bigger picture.
- External feedback from my colleagues.
- Being told by a colleague, who was one of my interviewers, to remember that I had gotten the job because I had been put through a rigorous hiring process and had already proven that I could code.
- Being told in my one month review that I had already proven that I could pick up new things, learn quickly and deliver.
- Writing production-ready code.
- I set myself a target of pushing my completed project live to production after 2.5 weeks and hit my target. This was something concrete that I could say I contributed to the company's objectives, no matter what happened.
- Getting to know my new engineering team members and being vulnerable.
- Taking the initiative under remote working conditions, to set up 121s with each and every team member. Getting to know them on a more personal level and opening up about my insecurities resulted in offers of support and help. Some also told me about their experiences of how they felt when starting, which helped me feel more understood and less alone.
- Not being afraid to ask questions, despite feeling like I should know the answers.
- Turns out that others had the same questions, including those considered senior engineers.
- Realising that technology systems have gotten so complex now, with so many moving parts, that almost no one knows how everything works. Things also change quickly (especially in a startup environment) and knowledge needs constant updating.
- Pushing myself to keep expanding my boundaries despite feeling horribly uncomfortable. I knew that now was the best time to ask the "basic" questions and try to figure out how the company / engineering team / our technology works. Trying to get exposure to as many things as possible allowed me to get context and first identify all the things I didn't know, before then setting out to plug the most important and pressing gaps.
- Each new task I managed to complete resulted in my confidence growing. I'm acutely aware that there are still loads of things I don't know, but the things I did know were growing in size too.
I'm not going to lie, the feeling of imposters syndrome hasn't gone away, but it does at least feel manageable now. I realised that the one big difference between myself and other more senior engineers is that whilst there are things that we both don't know, they feel comfortable with that knowing they'll manage to work it out. I feel uncomfortable because I feel either (i) that I should know it, or worst still (ii), that I won't be able to figure it out. I suspect the way to overcome this is just with practice and experience. The more I can prove to myself that I am capable of overcoming unknown problems, the more at ease I'll feel with the next one that comes along.