How I recovered from imposter syndrome after changing career to software engineering.
This is my personal account of suffering with imposter syndrome, but seeing it through and coming out the other end.
I meet a lot of people who suffer with destructive thoughts and feelings. It distresses me to hear people criticise themselves and be full of doubt, knowing how paralysing and limiting this can be.
I’d hate for anyone to give up and leave the profession (or not even enter it) because of a psychological barrier — I’m sure it must happen. So, I thought I’d jot down my journey. I hope it might help somebody 🙏
A brief career history
A long time ago, I did a dual honours degree in Computer Science and Electronic Music at Keele University.
I did well enough — got my 2:1, and then went out into the world. I went round the houses a bit, and had the following jobs (in chronological order):
- Working at an antique violin dealer (various responsibilities)
- Developer & Producer at a startup — working on streaming TV services
- Content Producer for a central government department
- Product Manager for a magazine publisher
- Managing User Experience Consultant at a digital agency
- Lead User Experience Architect at a major telecoms provider
- Various Service Design contracts
UX and Service Design was my passion for a good ten years. But, I felt like a change and realised that I had a burning desire to build things— and I could do that through software engineering.
The problem was, my degree was so long ago that my skills were out of date. So, I took a sabbatical and did a full-time software development bootcamp with Makers (which was incredible), and then tried to build things on the side whilst working in UX.
That didn’t work out too well (I just never managed to get traction), so after a couple of years, I took the plunge and fully transitioned to a software engineering role with Skyscanner.
Getting the job
It is NOT easy to get hired as an engineer at Skyscanner. For me, there were several stages:
- video interview with the talent team
- 7-day take-home technical task
- on-site technical and cultural interviews
I spent about 33 hours on the take home task (despite a full-time job and young child at home), and another 20 prepping for the on-site technical interview. I REALLY wanted the job.
I felt like I bombed the on-site technical interview as I’d prepared mainly for algorithms, and it was a system design question, but somehow I managed to stay drawing and talking at the whiteboard for 40 minutes!
To my surprise, at the tender age of 38, I was offered a place on the graduate scheme. I wondered if it had been an administrative error, but nonetheless, I accepted with glee!
Starting the job
I started in September 2018, alongside a fresh cohort of graduates, who were considerably younger than me, and definitely more (at least recently) experienced with programming. Bear in mind — I’d completed my bootcamp two years beforehand.
I was put into a team looking after Skyscanner’s experimentation tools, alongside another graduate from my cohort. This was great for me with my UX background, as I could immediately understand the importance and context of the tool.
The team was great, and they walked me through the architecture and tooling, and helped me get acquainted with everything. It was pretty overwhelming, as the last time I was a developer, I was hand-coding in Notepad (I shit you not) and FTP-ing files up to a server, and WOW HAVE THINGS CHANGED. The amount of tooling and libraries used at Skyscanner is incredible.
Anyway, it was great . I was learning a lot. But I made a lot of mistakes.
Mistake 1: Comparing myself to others
My fellow graduate (who was lovely — like everybody at Skyscanner) was far more technically proficient than I, and was contributing significantly from day one. And everyone else in my team (and in the company generally) appeared to me as some kind of genius who spoke a foreign language that everyone else understood.
I, on the other hand, was trying to get to grips with the various layers of the stack, and trying not to panic when it was my turn on the support rota (where you’re responsible for monitoring systems health and answering user support queries).
It’s a silly comparison because everyone else had been programming solidly for years — of course they were going to be more proficient. It didn’t mean that I wasn’t also capable — I was just less experienced. But it was hard to see it that way initially.
Mistake 2: Trying to be immediately valuable
I had come from being a senior and respected professional in my previous career. You could throw me a big, international mess, and I could sort it for you, with a smile! I was a go-to person, a source of expertise. Don’t get me wrong — I didn’t know everything about UX, but after ten years, you do have a lot of experience to draw on.
Here, by comparison, I felt useless and overwhelmed. I wanted Skyscanner to know it wasn’t a mistake to have hired me. So what did I do? I turned to the magical powers of UX:
- I ran a workshop on building sustainable closeness with users
- I planned (and got the team involved with) various types of user research
- I got involved with the Accessibility movement, helping to run empathy labs in several locations
- I introduced the team to user story mapping, for planning product releases
Initially, this was appreciated and without a doubt it helped us deliver better products. But it also bit me on the bum.
Mistake 3: Avoiding technical work
Because I was keeping myself so busy doing this other work, I wasn’t doing a lot of technical work, and when I was, I was tending to pick easier tickets. I did some good work, but it wasn’t consistent. Thus, I wasn’t getting significantly better.
Why was I avoiding it?
- so I wouldn’t be exposed as a fraud
- so I wouldn’t have to cope with my own feelings of inadequacy
- so I could still feel valuable to my squad
You don’t get better at programming without programming, so this was a major career scupperer.
Mistake 4: Having a super-negative inner voice
Sometimes, when I encountered a programming issue (as we all do, every day — that’s the job), my thoughts would spiral into catastrophe.
It went something like this:
- “Oh no, I’m not sure how to solve this”
- “I’m useless. I can’t do this.”
- “I’m a burden to my team”
- “Skyscanner made a mistake hiring me”
- “I should never have changed career”
This is of course, ridiculous — but it’s genuinely how I felt.
These kinds of thoughts are not conducive to solving complex problems.
Mistake 5: Having a super-negative external voice
Because of how I felt about myself, I would also project this externally. So before taking on a task, I would say, “Oh well, I’ll try”, or when contributing an opinion, I would preface with, “ I don’t know anything, but…”.
This kind of talk didn’t help anyone’s impression of me, no matter how good my work might have been.
It was all a big downwards spiral, and not at all how I’d hoped / planned this career change to go. I felt like a shrunken version of myself.
So, what did I do?
I am not one to roll over and give up. I loved this career. My brain suits software engineering. I knew it from the bootcamp. I thrived in that bootcamp. I knew I had to get over this barrier.
The first thing I did was reach out to the People team at work and ask for help. I was assigned a coach (a Data Scientist who is just about the cleverest and most humble person I’ve ever met), and through talking he helped me recognise my value, and also drew me this great graph about how it’s good to go slow at first — and really try to understand things — and that will help you accelerate later on.
Whilst talking to him, I had a brainwave that there were clear parallels in my catastrophic thinking and avoidant behaviour with my experience of anxiety and panic attacks.
I’m experienced at dealing with panic attacks, so I realised I could use the same cognitive-behavioural therapy techniques, i.e. recognise the triggers, recognise the thoughts, feelings and sensations, to try to combat it and exit the spiral.
So I started keeping a diary at work — particularly when things went wrong. I would write down:
- the situation — what the problem / trigger was
- what my thoughts and feelings were — including all the catastrophising
- and if I was up to it, potential next steps for solving the problem
The diary entries were almost miraculous because somehow by writing down all the thoughts and feelings, I could see how ridiculous and out of proportion they were.
I would then DECIDE to take the emotion out of the situation, and relax — even if it meant I had to physically walk away and take a break, sometimes over night. And I would come back — and, pretty much most of the time, I would SOLVE THE PROBLEM, often fairly quickly. It’s amazing what you can do when you’re not feeling hyper alert.
It turned out, I was rarely out of options, and even if I was, I could easily turn to a team member for help — which was fine — I wasn’t expected to have all the answers. The more I did this, the more I realised that I WAS capable — and simply needed to keep doing what I was doing.
I also started a personal retrospective of what I was working on — a log of what I’d learned, what I’d struggled with, and I rated myself out of 5 each sprint for my availability to the squad, my contribution to the squad, and my technical development — giving myself a red, amber, or green status for each so it was easy to scan and see progress over time.
This log was a good and a bad thing:
- On the good side, it helped keep me on track with working on the right kinds of things. It was also great when it came to performance review time — as I had a big record of everything I’d worked on and all the things I’d learned.
- On the bad side, sometimes I’d be overly harsh in my ratings, for example, rating myself red for availability or contribution because I had annual leave, or because I was struggling with homeschooling whilst working! In the last couple of months, I’ve moved away from the ratings — I said to my manager that, “I was done self-flagellating”, which he was pleased to hear!
I also worked for a few months with a life coach (for different, personal reasons). He helped me understand the importance of the inner voice — that it’s broadcasting to you all day, and that you’d better be careful about what it’s saying. “Is that helpful, true, and kind?” is something he would ask me when I’d made some throwaway trash talk remark about myself, as we all do I suspect.
- not compare myself to others — I’m on my own path
- not apologise before saying or doing anything
- lean into difficult technical problems
- ask lots of questions, without the fear of appearing foolish
- keep a close eye on my GitHub contributions — if I have a day without committing anything (which happens — sometimes you have a lot of meetings) — I think about why
- still care about UX and advocate for it, but keep this side minimal
- have confidence in myself
This team is also particularly healthy from a psychological viewpoint. There are lots of senior engineers in the team, and almost daily there are admissions of not knowing things or making mistakes. It’s totally accepted, and we all move forward more quickly from admitting it and learning together. It feels really good.
I’m not saying I’m FULLY cured from my imposter syndrome. I don’t think that’s possible or even desirable — I think it’s healthy to question yourself, and to want to do better. But I feel like I’ve gotten to a really mentally healthy stage of understanding:
- that while I may still have a lot to learn (and always will), I have already learnt loads and can contribute well already
- that I have all the tools necessary to succeed in this career — including a very supportive team and manager
- that you should be kind to yourself and believe in yourself — that inner voice is so important
I hope this article will help others in this situation realise that they’re not alone, and that you don’t have to suffer. It is possible to overcome these bad feelings and enjoy this wonderful, stimulating career.
If this article resonates with you, and you have your own stories or thoughts to share, I’d love to hear them!