How I bombed coding interviews?
A Cautionary Tale of Coding Interview Woes — Part 1
Yes, I flunked multiple coding interviews. Here’s why!
I needed a role switch for various reasons. I knew the market is bad, but wanted to give a try. It was stressful, because I did not have a proper guidance on where I should start.
The mistakes I did-
- Started applying for jobs without proper guidance and preparation.
- Kept revising already known basics unaware of the current updates.
- In fact, I attended a few technical discussions and assumed I did well.
- I got rejected with a feedback that I am not updated! :O
- In spite of continuously working on latest tech-stack, I was only aware of certain things which we were using in our project.
I have always (still!) been nervous when I hear about online assessments/live-coding interviews. I even avoided those companies few times in the past as I was not confident enough to face them. I had spent most of my time in the past 8 years just delivering enhancements, fixing bugs, chasing deadlines etc. Hardly had anytime to practice basic coding skills. I had even forgotten how to initialize an array in C#, while C# being my major expertise! Quite embarrassing isn’t it?
I agree all of us use Google in everyday coding life, but forgetting even basic flow is a clear sign of burn out.
Coding interview experiences (Few of Many)—
First coding interview after ages —
- I got a call from one of the well-known companies(DraftKings, Inc).
- The skillset totally matched my expertise and I was eager to take up the interview process.
- I bought sometime from the recruiter as she said the first round will be a live-coding.
- I even pushed it to another 2 weeks fearing I can’t do it.
- And yes, I did not do it! I stumbled to come up with logic even though the logic was simple.
- I was able to communicate my thought process but could not finish even the pseudo-code on time.
- I could do only 2 out 4!
Expected result:
The email said — Unfortunately you did not pass (No, I did not pass because of lack of practice I said to myself! :| )
Learnings from this interview —
- I have the habit of asking interviewers a brief feedback at the end. Some give it and some don’t but nothing stops me from asking.
- Likewise, I asked this interviewer on what he thinks I should improve on.
- He told me I chose a complicated syntax to write the logic. In spite of knowing how to solve the problem, I ended up time wasting time looking out for the syntaxes! I could have simply used multiple for loops to solve it. :(
What did I learn?
— Practice, practice and more practice.
— Always come up with a brute-force way to solve any problem.
— Using simple loops doesn’t make you looked down upon as a developer.
— Lock your solution using simple loops if you are unaware of the patterns(in case of a leetcode/algorithm type questions).
— Unit test it. Both positive and negative cases. This will help you come up with edge cases.
— Then think about optimizing it.
Second coding interview: A Step Forward
- I did take the learnings from first one but still did not have much gap between these two.
- Another live-coding with a big industry(Geico).
- I joined a technical training coaching (Gigame: I will write about them) to take few sessions on data structures algorithms, other backend programming stuff.
- I had not learnt all the basics here still but had practiced coding in JavaScript for a while.
- The interview day was here.
- I was given a prompt ,spent 5 minutes to understand the problem and came up with an idea.
- Though my thought process was right, I had no idea on what data I should put in my data structure which is the basic step.
- The interviewer gave me hints and I could pick it from there.
- I wrote few positive cases and edge cases but had no time to run the code.
- As always I asked for the feedback - The interviewer said I do know the solution but need to practice finishing programs within the time-frame.
- Failed again! But on the positive note, I am few steps ahead from the first interview which made me happy :)
What did I learn?
— I was happy to confidently code in a new language.
— Though I could come up with a solution, I still lacked the understanding of the basic data structure.
— While it’s important to understand the problem, allocate some time to implement and test your code. Even a partially working solution can demonstrate your thought process and coding ability.
I applied consistently for many companies, simultaneously prepared as well.In spite of market being bad, I was able to successfully get many interview calls and I spent time on many take home assessments. I may or may not have heard back from them, but consistently taking these tests were a good practice for me and eventually I passed few coding interviews. In fact, was able to finish soon as well!
Thanks for reading :)
What steps did I take to finally achieve the result?
Click for Part -2 here! :)