How I went from bombing to succeeding coding interviews?
A Cautionary Tale of Coding Interview Woes — Part 2
In part 1, I shared my initial struggles with coding interviews after a long period focused on project work. It was a humbling experience, but one that ignited a fire within me to learn and improve.
Focusing on continued learning, broader takeaways
Read Part-1 to get an insight :)
What were the next steps I took to succeed?
Master the basics:
- I focused on learning DSA fundamentals(I am still learning :)) — check my DSA Fundamentals list to learn more about them.
- Also spent time updating back-end, system design concepts.
Targeted practice:
- Practiced basic loops, conditional statements in the language I decided to give my coding interviews in.
- Used various platforms such as Gigame(1:1 sessions), Leetcode, YouTube, Medium, GeeksForGeeks etc to learn fundamentals and also to target specific skill gaps.
- Followed many tech-writers on LinkedIn to learn more.
Mock interviews:
- Participated in mock interviews with Gigame mentors, friends, pramp etc to practice explaining my thought process, using data structures effectively, and managing my time during coding challenges.
Small Wins, Big Progress:
- I focused on making small improvements in each interview. Celebrated my progress and learnt from mistakes.
Additional things:
- Practiced writing code on Whiteboard, notebook, turned off Github co-pilot etc
- Test Your Code: When possible, even if it’s just a simple test case, I ran my code to identify and fix any potential errors. Also dry-ran code on notebook as well.
The Journey Continues:
The applications kept flowing, and so did the rejections. But this time, each rejection provided valuable feedback that fueled my determination. Here’s a glimpse into a couple of these experiences:
- Coding Challenge Rejection: Aced the initial phone screening for a small-sized startup. The next step was a take-home coding challenge. I poured my heart into it, delivered a well-written solution with unit tests, but still received a rejection email. Disappointed, I reached out to the recruiter for feedback. They mentioned an edge case I hadn’t considered in my solution. While I didn’t get the job, it highlighted the importance of comprehensive testing and edge case handling.
- Live Coding Interview (Almost There!): This interview with a fast-growing tech company felt promising. The problem wasn’t overly complex, and I discussed my thought process clearly. I even managed to code a partially working solution within the timeframe. The feedback? They liked my approach and communication skills, but my solution wasn’t quite optimized. This was a major turning point. I realized the importance of not just solving the problem but also presenting an efficient and well-optimized solution. Guess what was the company? It was Google! :) I was so happy to finish initial hiring assessment! Also a good experience interviewing with them.
The Moment of Truth:
After months of dedicated preparation, I landed an interview with a company I genuinely admired. This time, I felt a different kind of nervous energy — a healthy mix of excitement and determination. The interview format was similar to my previous experiences — a phone screen, a take-home challenge, multiple system design rounds and finally a call with the director.
- Preparation Pays Off: I delivered a well-tested, optimized solution for a coding challenge and received positive feedback, landing me the on-site interview.
- Success is Sweet: The on-site interview felt like a culmination of all my efforts. I tackled the the system-design interview very well. I could debate on the approaches and trade off very well. I also prepared for the director round learning company’s culture, the impacts I can make etc thus impressing her. The outcome? An offer! I also passed all rounds of interviews with two other companies and finally chose to go with the one that better fit with my goals :)
Thanks for reading :)
Click for Part-3(final one) here!