Sharing my story and process for others who would come after me.
A year ago, I got an invite to interview at Google. Although I was uncertain whether I would get in or not, I decided to “enjoy the process”.
I’d like to share that process with you, starting from my pre-interview to interviewing to post-interviewing with one of the mega-tech companies in the world, Google.
My path to Google was one that started unintentionally during my university days. Let’s go back in time for a bit to the beginning of my programming career:
A few years ago, during my pre-university days, I developed interest in Software Development. I’d decided to try out a course on Coursera. This course further increased my fascination after I successfully built a mini pingpong game using python. I marvelled at the power of the algorithms. The calculations, the motion of the pads, the balls rebounding on the pads at a tangent, all of which I had programmed.
From there, I started learning more and more about algorithms, problem solving. It turned into a hobby of sorts. I solved a lot of questions on Hackerrank. I didn’t pay much attention to what I was doing as it was all just a hobby, I really didn’t think much of the trajectory it was projecting my life.
In 2018, during my internship at Genesys Tech Hub where I was having fun learning about Software Development using Nodejs, I was invited for a tech meet-up by a friend. It turned out not to be a talk meet-up, but rather an algorithm competition. Well, although we were late, I decided to attempt. I mean, why not? and guess what?
I took the second place, despite being late and the only female contestant. It was both a shocking and proud moment for me and everyone there. This gave me the much needed motivation and boost to keep on practicing my algorithms some more.
Consequently, I participated in some more competitions, winning some, losing most 😅 .
One of those competitions I partook in was the “CodeJam to I/O for Women” competition, in which the top 150 on the scoreboard will receive a ticket and reimbursement to offset travel expenses to Google I/O 2020.
It was a tough competition. 2.5 hours of trying to crack the questions before some other 1000 people. At some point, I knew I wasn’t solving to get to the top 150. I was simply solving because I wanted to try and figure out the solutions to those problems. Sadly, not one problem was solved by me 😭 .
I was really sad and wanted to quit. But thank Heavens for my friend (I have great friends) who motivated to keep on doing what I love.
A few months later, I got an email from a recruiter at Google!
It was exciting and unexpected. My recruiter had seen my email from the Google I/O competition attempt, checked out my LinkedIn profile and had thought I might be a great fit for Google (and she was right, I am! Lol).
We scheduled a preliminary call where she explained the interview process, the role I would be interviewing for and what was required. She’d mentioned there would be a technical phone interview which was the first stage (easy-medium questions), followed by 4 other onsite technical interviews (medium-hard questions) and 1 behavioural session. Knowing I was not fully prepared for a technical interview as a Software Engineer at Google, I informed her that I was not ready and asked if I could reach out to her later on, after I felt prepared (or at least a bit). She was cool with it and sent me some preparation materials and I got to work.
Do not rush the process.
It was crazy. I would stay up till 3am taking courses on the basics of Data Structures and Algorithms (links below), doing each and every assignment associated with it and reading algorithm books.
I incorporated algorithms challenges specifically targeted at Google into my schedule, solving at least 2 per day on Leetcode . In addition to that, I scheduled practice interview sessions on Pramp each day to familiarize myself with interview scenarios.
A few months later, after I felt that I'd learnt enough, I reached out to her (my recruiter) and asked for an interview to be scheduled.
The phone interview was scheduled.
The first stage of the technical interviewing process. Filled with courage and encouragement from my family, friends and social media peeps, I went in to wow and wow I did.
The interview started with the interviewer’s introduction and calming opening speech, you know, the one where you are encouraged to relax and view the interview as a conversation between you and a teammate. Then I introduced myself, much more calmer and confident.
Then the question came, and filled with glee at my realisation that I could figure out the solution, I proceeded to solve the question, speaking my mind and explaining my every step to the interviewer as though I were helping a teammate resolve a bug that I knew it’s resolution.
Treat the interview as if you were interacting with a teammate.
After the interview, we talked a bit about Life at Google and I asked all the questions I had. I asked for feedback on my performance, which I learnt would only be delivered to me by my recruiter.
I waited patiently for feedback.
A week later… ding dong … my recruiter contacted me with great news that I passed this stage. Yipppeee!!
More preparation for me then!!!!
Due to my phone interview being so late in the year, the onsite interview had to be pushed to the next year. Admittedly, this should've given me more time to prepare, but because it was the holiday season, I barely utilised the extra time.
Before the holiday began and after my announcement on LinkedIn , which led to an increased visibility, I was contacted by a recruiter to interview for Bloomberg. I scheduled this immediately and I knew I was prepared because I had spent the last 6 months prepping for Google. The phone interview was really smooth and I got feedback 2 hours later that I had passed, this was quite shocking as I’d read it usually takes up to a week for feedback.
The onsite interviews were also quite smooth and the interviewers were nice too. Suffice to say that I got accepted into Bloomberg. I held out on accepting the Bloomberg offer as I wanted to complete my Google interview.
I had also resumed work at Huawei so I had less time to prepare for the Google onsite. However, I made sure to practice at least 2 hours each day, 10pm - 12am.
I was contacted by my recruiter to schedule my onsite interview. I was really nervous cause I felt a bit rusty from not practicing enough. My motivation came from a friend who reminded me that I had aced the Bloomberg interview and that Google should be no different.
I had 5 sets of interviews ahead of me.
Technical Interview 1 - This was a typical medium Leetcode problem. It went really well. I easily understood and was able to find a solution to the problem.
Technical Interview 2 - Same as one
Technical Interview 3 & 4 - These were quite difficult. I almost wasn’t sure I’d done well enough to get. Sure I got the solution but I knew there was still room for optimisation.
Behavioural Interview - This was my best interview so far. It felt like a discussion where the interviewer was trying to know about me and my experiences.
Show your personality to your interviews so that they are also rooting for you to join the company.
The wait for the results felt like I was planking. The days went by so slowly. On the 7th day, I got a call from my recruiter to inform me that I’d gotten in. Hurray…. I was now a Noogler.
I have since then proceeded to choose a team, go through the Hiring Committee and sign my offer letter.
I officially started work on the 12th April, 2021.
Looking forward to all the amazing things I help build at Google.
Making the Web a better place, one code at a time.
I’ve met a lot of interesting people during my practice. People who have invariably made my skills better, some of whom have introduced me to their recruiters, given me premium access to coding websites and taught me advanced techniques for problem solving.
Let’s all just agree that I indeed, enjoyed the process.
Here are some of the resources I used for practicing:
- Cracking the Coding Interview by Gayle Laakmann McDowell - Indeed a wonderful read. It also has a github link where the problem sets are solved for all languages.
- Introduction to Algorithms I - Princeton University, Coursera. This taught me the inner details of data structures and problem. Con is that, it is based on Java
- Introduction to Algorithms II - Princeton University, Coursera
- Operating Systems and Hardware - New York University, Edx. This helped with understand system design topics.
- Leetcode - For algorithms practice
- Hackerrank - Same as leetcode
- Pramp - For interview sessions
- And of course, Google search 😆
- Do not rush the process. I recognized that I wasn't ready for Google and took some time to prepare.
- Understand the basic Computer science concepts. Data Structures and Algorithms. How to approach problems.
- During the interviews:
- Approach it like you were solving with a teammate.
- Ask lots of clarifying questions. Don't assume anything.
- Listen to your interviewers for their hints and use those hints. Asking for help does not reduce your chances.
- Practice a lot!!
- Attempt competitions. as much as you can.