I realized later that it is a bit difficult to clear full stack developer interview when you have not worked on design and scalability of the application. Since I also wanted to learn scalability and design in the process, I gave multiple full-stack interviews as well.
So here, I will discuss how did I prepare for web development interview and full stack interviews separately.
Web developer interview:
Here are some of the resources, I referred:
React and Redux: Some of the companies ask basics of React and Redux. Stephen Grider‘s courses are very useful in that respect.
- Design patterns
Full stack developer Interview:
I observed that the meaning of Full stack developer in the industry is slightly mistaken. Most of the companies consider the Full stack developer as Backend developer who knows little bit frontend. Only a few companies give more focus on frontend than backend while looking for full stack developer. So, candidates need to be prepared for such interviews and should ask questions to HR about this before the interview.
So, I will discuss, how did I prepare for backend interviews though I am not expert in this field.
I found GitHub repository of John Washam while preparing the interview. And, it covers almost all the important resources to prepare for the interview. It’s very difficult to complete all the resources provided in this repository. I have majorly focused on design, algorithms, and data structure resource from this repository.
2.Preparation of Algorithm and data structure:
- I referred ‘Data Structures and Algorithms from Made Easy’ by Narasimha Karumanchi. This book covers almost all the important topics for interviews. Since I solved problems from different sources, all the important algorithms were very clear to me. I could write these algorithms very easily on paper.
- Online Judge: It’s very important to make sure that you run your code on multiple test cases and make sure that you’re covering all the corner cases. Solving problems on InterviewBit helps you solve problems in a constrained time environment. Also, the problem set is very curated so you only solve the kind of problems which would be asked in interviews.
- Practice on paper/whiteboard/google doc: It’s very important not to use IDE first. Since, companies use collabedit, google-doc or whiteboard in the interview, I practiced on paper or whiteboard or google-doc first then I coded on IDE to get the more confidence.
- Design problems: InterviewBit design problems are good to start. Apart from that, I followed my resources:
Round 1: In this round, my problem-solving abilities were tested. There were two medium difficulty level problems given by interviewer. We used collabedit to share the code. The interviewer asked me to optimize the code further and also asked me to handle the edge cases. I also explained the code while executing one of the test cases.
Round 2: This round was to check basic understanding of computer science. The interviewer asked me to explain the internal process that takes place when we enter a URL in the browser. They also asked me questions related to scalability, distributed architecture etc.
Round 4: A problem of Graph was asked in this round. The problem was an extension of dfs and finding the cycle in the graph.
Round 5: A design problem was asked in this round. And I was asked to write code in collabedit.
Few other tips:
Here are some other tips that might be useful:
- Asking right questions rather than assuming.
- Explaining the solution clearly.
- Spend some time to prepare about your projects. If you are explaining any problem that you solved, be ready for any cross questions.
- Don’t use debugger, use your mind instead 🙂