My journey to FAANG as a career switcher
Disclaimer: the opinion from this post is solely my own and not reflective of the views of my past and current employers
Around 2021, I was burnt out and dissatisfied from my previous job as an Actuarial Analyst (think an accountant, mostly found in insurance companies whom specialises in statistics of insured events like car crashes, the actual job is about as exciting as the description). I was disengaged with work completely and I knew something has to change. Fast forward to 2024, I have been working in Prime Video as a Software Development Engineer for roughly a year and a half. If someone were to tell me that I will be working in a FAANG. I would have laughed at their face for the absurdity of their suggestion. I do not have a traditional Computer Science degree background, and am not one of those really clever people who have been programming since 10. Looking back now, if I can do it, I believe most people can too. I will condense the things that I have done which helped me in getting to the job that I am in right now.
The path
My journey started out in roughly the following order:
Quit my old job → joined coding bootcamp → joined a high growth start up for around 9 months → 3 months leetcode grind → joined Amazon as an SDE I
First off, I want to recognise the fact that I was in a very privileged position when I started this journey, I did not have any debt to my name and I had around £25,000 saved up through not spending too much more than what I earn and putting the rest of my money in vanguard. I had no dependent which made saving my initial pot of money much easier. At about the time when I quit my job and decided to join a coding bootcamp, I have worked out that I can survive rent and daily expenses for a pretty long time if it comes to that. That gave me more confidence to fully lean into my decision to learn coding full time. Had I not saved up the initial capital, I would probably have been a lot more hesitant about making this career switch.
Lesson no 1: Save up some capital for buffer to allow yourself to be completely focused on learning
When I was doing the coding bootcamp, I realised that most of my peers were not really thinking about applying to jobs yet. They were so consumed by learning the material of the bootcamp. That applying to jobs became an after thought (And who can really blame them?). However, if you take a step back and look at the bigger picture, the entire reason for joining the bootcamp in the first place is to get a job.
What I did at around week 4 - week 5 of my coding bootcamp was to create a tech CV from my previous CV template, I have tweaked different sections such that my CV highlights all my tech experience from my bootcamp, university and any tiny bit of coding that I have done in my previous job. Once that is done, the rest becomes easy. I just keep applying to open roles. When my CV is not getting responses, I tweak it. I started getting HR phone screens, and eventually I got to coding rounds. I apply to anything where my experience has more than a 50% match to their job descriptions. By applying to jobs early, I get to know what is the bottleneck that is stopping me from getting my job. Be it my CV, my interviewing skills or my coding ability. I can then move fast and iterate on my previous experience.
Eventually, I got a job on the same day as the end date of my bootcamp.
Lesson no 2: Apply to jobs as soon as possible, even when you’re not ready
My first job was a junior full stack development role in an E-commerce start up. I started learning a bunch of technologies and what it means to work as a software engineer in a professional setting shipping code into production, fixing customer issues and working in an agile team setting.
I quickly started to gain a reputation of being the junior who can get things done, and collected some “war stories” I can use as data points during interview and for padding up my CV. At around the same time, I was caught in a financial situation which meant that I either had to drastically increase my salary, or I will have to leave London and go to Malaysia with my partner. At the time I did not think that entering big tech was at all possible for someone like me, so I have already negotiated a remote work arrangement with my employer to allow me to work asynchronously from Malaysia as a contractor.
It wasn’t until I met some friends working for FAANG through a mutual friend’s birthday party when I learnt that the only difference between me, and a junior engineer working in FAANG is that the junior engineer who passed the FAANG hiring bar has done a bunch of leetcode practices. The day to day of a software engineer working in a product team in FAANG is not that different to a non FAANG engineer. But the salary difference was staggering. I wanted to give it a try and see if I can increase my salary so that me and my partner doesn’t have to move back to Malaysia. If I failed, I know I have tried.
Had I not serendipitously bumped into these other people in FAANG, I would never have considered applying. That single unplanned interaction at a birthday party probably changed my career trajectory more than anything else I have done in the last 2 years combined.
Lesson no 3: Network with people within your industry to gather information, talking to strangers, you never know what you might learn!
For the next 3 months after the birthday party, I leetcoded almost daily. you can see my stats here. I have followed the Grind 75 list which are 75 leetcode questions which are curated to help people get the most out of leetcode by learning the most common patterns. I did almost one question per day, and I often submit my answers as I did my leetcode practice with Ruby, which is the language I’m most familiar with, but lacks leetcode answers.
By the time I got to my Amazon interview, I have probably done around 71 Leetcode questions ranging between easy and hard. I was confident that I can do most tree and graph problems with under 20 minutes. I have found that Grind 75 was very helpful in giving me the spatial repetition for learning data structure and algorithm patterns through different format of questions.
I have also proactively reached out to friends who are software engineers and asked them for interview practice. When I do my interview practice alone, I often speak out my train of thoughts to mimic the actual interview as closely as possible.
The actual Amazon interview was 4 hours long, back to back with 4 interviewers. By that time I have already done so many interview practices that arriving at an answer from a leetcode prompt has become second nature to me.
I have spoken to a lot of software engineers with an aversion to Leetcode. But if someone tells me that the only thing I needed to do to double my salary is to do 75 leetcode questions, I think I know what I’ll do.
Lesson no 4: Practice Leetcode early and often, use spatial repetition to reinforce your leetcode learning
That brings me finally to today, I have worked in Amazon for around one and a half years now. My growth trajectory has honestly been tremendous for the past year. I was able to earn enough to allow me and my partner to continue to live in London. I have designed and implemented full features and developed green field softwares from scratch. Apart from the obvious monetary benefit, I have also grown a lot as a software engineer. I believe that my going through all the milk round and getting into a FAANG isn’t the destination, but just the start of my career journey, and I am excited to get to my next stage and continue my career growth.
If you enjoy reading this post, please consider subscribing and sharing this substack to a friend! This helps me more than you can imagine.