tldr: trust yourself, you’ve earned it. Lean into the community at your company, people have felt this before. Understand that people make mistakes.
How it started
I graduated from Rutgers with a degree in Chemical Engineering. I taught myself computer science after college and got a software engineering job at a mid-tier company. I spent two years studying for programming interviews. After failing a few times, I accepted a job at Meta and spent four years there where I was promoted after 1.5 years to E5.
The Job Offer
When I got the job offer at Meta, I kept thinking that they were going to change their minds. I was honestly expecting to get there on my first day and someone was going to run up to me, shake me out of this dream I’ve been in, and say “oh you actually thought you were smart enough to get a job here?”
Studying for this job for two years, pushing through rejections, and finally getting the offer was surreal. As I was studying, I started to idolize people who worked in Big Tech. They had the life that I had been working towards, the validation from Big Tech that there were one of the best. Once I finally got that life, it was super hard for me to accept. I was of course excited, but it all felt fake and like it could be taken away at any moment.
First 6 Months
When you get to Meta, you do not join a team right away. You first join an 8-week bootcamp where you meet all of the other software engineers who started with the company. When I got there, I felt like I was in a community of people who were also in awe that they were there. This was comforting to me when I started but as I learned more about them and heard them talk about the prestigious schools and places they were from, it really had me questioning how I was there.
After bootcamp, I met my team and the imposter syndrome really set it. I was the most junior person (E4) and I had a lot of responsibility right off the bat. My colleagues felt so much smarter than me and sounded so confident about what they were doing and talking about.
These first 6 months were super difficult and most of the time I was thinking that I did not deserve to be there. It pushed me to work extra hard but I also felt terrible the whole time. I was super nervous shipping anything and my lack of confidence showed. All of the Big Tech companies have very specific internal tools that you have to learn when you start and it took me a while to get comfortable with them. It was very daunting and intimidating. It messed with my head in a way I didn’t realize at first. Yes, I was at Meta, but every time I made a mistake it felt like I was fulfilling the prophecy that I had built up in my head of “Yeah, I knew I wasn’t supposed to be here”.
The Other Side
As I got used to the job, I built relationships with my team/manager, my confidence increased, and my imposter syndrome faded away. When I finally got out of it, I thought back and noticed how shaky I had been during my first 6 months. I had been doubting myself constantly. It took time, but my confidence did grow and I started asserting myself more, and standing by my work.
You Deserve to be There
Big tech programming interviews optimize for false negatives over false positives. They are designed to say no to good people as opposed to saying yes to bad people. The reasoning is that if they let someone in who isn’t going to perform, they are really expensive and hard to get rid of (the process can take a while). However, when you say no to a good person who maybe didn’t ace the interview, they can always come back after the cool-off period. These companies also get to be picky because they have such a large pool of people who could still fill that role.
If you can pass the technical interview, you deserve to be there.
The skills that these technical interviews are trying to gauge is your ability to problem solve, communicate and learn complicated topics quickly(like DSA), because those are the actual skills you will need on the job. If you passed the technical, behavioral, and sys design interviews, you’ve exhibited all of these qualities.
Every company has its own set of internal tools. Every company has its own way of working, it's own culture. Every company tracks different metrics and uses different languages. (Facebook literally created Hack). The point is that everyone, no matter how much experience they have, is thrown into a learning phase when they join a new big company. If it's your first time going through this, it can be incredibly daunting. Give your spell self space to learn, and trust that it will come together over time. You did just learn an incredibly difficult set of concepts just to pass the interview after all!
Through your studying and preparing for the job, you’ve exhibited the core skills required to be successful recognize everyone goes through a learning phase and trust that you will learn what you need in time.
You will make mistakes
No matter who you are, when you start a new job you will make mistakes. I personally took down Facebook live 3 times when I was at Meta. Be confident and take risks when you can(different codebases have different risk tolerances). My team and manager were always super understanding of any mistakes that I made and were able to help me push through.
Use all of your mistakes as learning experiences, and recognize that you are inevitably going to mess something up. This is normal!
Lean into the community at your company. Everyone (no matter who they are) has felt imposter syndrome before to some extent. We are all just humans at the end of the day. I didn’t realize for a while why I was feeling so down until I was out of it. If you can recognize early that you have imposter syndrome and try to reaffirm to yourself why you deserve to be here, you will grow your confidence even faster which will make the process of onboarding less painful!