0% found this document useful (0 votes)
425 views7 pages

Interview Prep Guide by Abhishek Gangan

This document provides resources and tips for interview preparation. It covers the main technical areas assessed in interviews such as programming skills, data structures and algorithms, computer science fundamentals, design principles, and behavioral questions. Sections include recommendations for online courses, books, coding practice websites, video channels, and tips for different question types and levels of experience. The document is intended to be a living guide that is updated over time to help candidates prepare for interviews.

Uploaded by

Killer Arv
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
425 views7 pages

Interview Prep Guide by Abhishek Gangan

This document provides resources and tips for interview preparation. It covers the main technical areas assessed in interviews such as programming skills, data structures and algorithms, computer science fundamentals, design principles, and behavioral questions. Sections include recommendations for online courses, books, coding practice websites, video channels, and tips for different question types and levels of experience. The document is intended to be a living guide that is updated over time to help candidates prepare for interviews.

Uploaded by

Killer Arv
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 7

Interview Prep Guide by Abhishek Gangan

Connect with me on LinkedIn

Section 0: Introduction

Hello! I am Abhishek Gangan - currently a Software Development Engineer at Amazon. I


compiled this document for the sole purpose of helping fellow engineers turn into better
engineers. Here, I share all the useful resources that greatly helped me with my interview
preparations.
While I share these useful resources with you all, I would also urge everyone to do their
own research too, according to their own specific requirements.
This document is going to be a forever ‘work in progress’, and I plan to keep refining it
from time and again. So.. Welcome to this amazing journey. Keep learning and I hope this
helps! My best wishes!

Here’s a list of competencies that are generally tested in the interviews at most companies for
technical/SDE roles:
1. Proficiency in one programming language (Generally Java, C++, Python)
2. Problem Solving / Data Structures & Algorithms (DSA)
3. Computer Science Fundamentals
4. Low Level Design
5. High Level Design (System Design)
6. Candidate’s Experience / Company Values / Cultural Fit / Behavioral Fit

Section 1: Proficiency in One Programming Language: Java


1. Learn all the Java Fundamentals from Javatpoint
2. Similar resources can be found for other languages of your choice.
(Remember: The programming fundamentals are important, not the language.)
3. Refer the section of ‘Useful Youtube Channels’ towards the end of this document for
more content to learn from.
Section 2: Problem Solving / Data Structures & Algorithms (DSA)
1. Introduction to Data Structures by William Fiset
2. I found leetcode to be user-friendly for problem solving and has good community
support. There are two very interesting lists of problems that I recommend to begin with:
a. Leetcode List: Top Interview Questions
b. Leetcode List: Top 100 Liked
3. Leetcode problems that got me hired by Kenny Talks Code (After Kenny decided to shut
down his channel, this is what I could arrange: List of the problems from Reddit)
4. Roadmap to FAANG (Very good list of problems to solve): Video by Striver & List by
Striver
5. Cracking the Coding Interview by G. L. McDowell: Book | Github
6. Dynamic Programming by Aditya Verma [Hindi]
7. TechDose Youtube Channel for great help with the leetcode problems
8. Practice is the key for this section. After solving problems, check if your solution was
optimal/best in terms of time/space complexity. If not, study the optimal problem and
really try to understand why such an approach was better for that particular problem.
Apply these learnings in upcoming problems.

Other General Tips:


1. General Difficulty Level of Problems Asked:
a. FAANGs or Start-Ups or Product Based: Generally Leetcode Medium to Hard
b. Banks or Service Based Companies: Generally Leetcode Easy to Medium
2. If you’re short on time, struggle with one problem for not more than 30 minutes. Post
that, consider checking the ‘discuss’ section. Most voted discussions are a very helpful
resource to learn new things. One can prepare well from there. Keep solving problems
from various topics consistently, keep learning new concepts and apply the newly
learned concepts if they appear in other problems. It’s good to keep notes of your
learnings, as long as the process of keeping notes is not too much of an overhead.
3. Generally in a 1-hour interview round, the interviewer can ask 1 or 2 DSA problems. The
candidate is expected to solve each problem with a complete discussion around various
approaches, their complexities, and write the complete code for the decided approach in
around 25 to 30 minutes. (There are exceptions. For example: When your interviewer
explicitly mentions that you two will be solving one particular problem for the next 45
minutes. In such cases, the problems are generally more complex in nature. It’s better to
estimate the times on the spot as per the agenda shared by the interviewer at the
beginning and the individual problem’s difficulty.) So, practice accordingly.
4. Keep communicating with the interviewer continuously and do not assume anything. The
assumptions may range from making assumptions for the base/edge cases or nature of
data, to assuming that the interviewer is aware of every single algorithm, language
nuances, or technique that you are using. It’s always better to humbly ask, “I’m using ‘so
so' technique to achieve ‘this this’. Do you want me to explain to you what that is?”
Section 3: Computer Science Fundamentals
1. This can cover topics like:
a. Operating Systems Fundamentals: GFG Last Minute Notes: OS
b. Computer Network Fundamentals: GFG Last Minute Notes: CN
c. Internet Concepts: Interesting Videos by LearnCode.Academy: Part 1 & Part 2
d. DBMS Concepts
i. SQL Tutorials and Playground: W3Schools
ii. GFG Last Minute Notes: DBMS
iii. GFG Commonly Asked: Set 1 | Set 2 | SQL Set 1 | SQL Set 2
iv. InterviewBit SQL Questions
v. Most Asked Queries Compilation by Art of Testing
e. Knowledge about various Architectural Styles
2. This section is open-ended and requires most preparation. The more horizontals and
verticals that the candidate covers, the better.

Section 4: Low Level Design


Consistent learning and practice is the key for this section.
1. Machine Coding Round Overview by Work@Tech: Introduction | Practice Problems
2. SOLID Principles
a. Good Overview by In28Minutes
b. Wonderful Deep Dive by IAmTimCorey
3. Design Patterns
a. Overview by Telusko
b. Overview by In28Minutes
c. Top 5 Design Patterns by Traversy Media
4. Udit Agarwal Youtube Channel
5. Low Level Design Playlist by Soumyajit Bhattacharyay

Section 5: High Level Design (System Design)


This round is generally NOT taken for the candidates with less than 2 years of experience, but
every CS enthusiast is expected to have the aspirations of building highly scalable, available,
resilient and fault-tolerant systems. So, System Design should get every engineer excited.
1. System Design Playlist by Gaurav Sen
2. Java Brains (Koushik): Brain Bytes Playlist | Java Brains YT for Amazing Content
3. Success in Tech Youtube Channel
Section 6: Candidate’s Experience / Company Values / Cultural Fit / Behavioral Fit
This probably is the most underrated and overlooked corner of the interview preparation, and I
encourage candidates to take this more seriously. As per the values and principles of the
companies, the candidate should come ‘prepared’ with situations/decisions from his/her past
experience which demonstrate their alignment with those values.

Useful resources:
1. List of questions to test candidate’s alignment with Amazon Leadership Principles
2. How to answer behavioral questions by InterviewGenie
(This is tailored for Amazon, but applies everywhere)
3. CareerVidz Youtube Channel
4. Sonal Bahl Youtube Channel

How to answer some common questions:


1. How to introduce yourself by Think School
2. Tell me about Yourself by Sonal Bahl
3. What are your weaknesses by Sonal Bahl
4. What are your salary expectations by Sonal Bahl
5. How to make Interviewers see you as the right FIT for the Job by Sonal Bahl
6. What to do when you cannot answer an interview question by CareerVidz
7. Sample behavioral questions and answers by CareerVidz
8. Answering behavioral questions live demo by CareerVidz
9. How to negotiate a higher salary by Sonal Bahl
10. How to stand out in a job interview by Sonal Bahl
Section 7: Miscellaneous

1. Past Interview Experiences of Other Candidates:


Read the past interview experiences of people who recently interviewed at the company
on GeeksForGeeks Company Interview Corner or Leetcode Interview Experiences

2. Questions for the Interviewer:


Prepare at least two questions to ask to the interviewer at the end of your discussion.
Sample Questions:
a. Revisit any of the questions from the interview itself that you couldn’t answer
b. What kind of work shall I be doing?
c. What kind of projects is the team working on?
d. How long have you been with <company>? What's your regular week like? In
short, what would you describe life at <company> is like?
e. What is that one thing that you see in people that makes them really successful
in this position?
f. What are the low hanging fruits in this role? Something that I can do/achieve
within the first 3 months after joining.
g. (To the Hiring Manager) What is your leadership/management style like?
h. Based on what we have talked about today, is there anything that leaves you
with hesitancy with hiring me for this position? (slightly risky, but the only
intention of asking this question is to clear any doubts regarding your candidacy
for the role and provide more data points to make your candidacy stronger, only if
needed)
i. Who do you think is the biggest competitor to <company>? What are the
measures being undertaken to overcome the competition and come out as a
winner, not once but consistently? And third, what does <company> expect from
its employees to contribute towards that?
3. Resume Tips:
Candidates should research more about what a good resume should contain as per the
role and their background. There are plenty of useful videos posted by good Indian SDE
youtubers. (Resume Tips by Anuj Bhaiya)

a. Some popular resume templates:


i. Jake's Resume
ii. Software Engineer Resume
iii. Resume Template by Anubhav
iv. Deedy CV
v. Modified Deedy Resume

b. Some general resume tips:


i. Ensure that the resume is readable by software
Trick: Try to copy the content from your resume file, and see if you can
paste it elsewhere without any loss/inconsistencies in the content.
ii. Minimise the white spaces
iii. Make it more professional. Don't use many colors. Keep it professional
with just black and white (Blue, if at all needed. For e.g. in case of
hyperlinks/headings)
iv. Add only promising content which is relevant to the role like internships,
projects, achievements (hackathons, competitions), any publications, any
case studies, research work, etc.
v. Include clickable links to your online tech profiles, code repositories,
publications, projects, websites, open-source contributions
vi. Get rid of anything that's not relevant
vii. Divide the 'skills' section into categories like languages, frameworks,
databases, miscellaneous, etc.
viii. Order all the sections based on what's more important, and based on
reverse chronology within a section
ix. Format things properly. Make it look beautiful.
x. Most Important: Ensure that your resume includes important keywords.
This could be anything like mention of a key technology that your job
description lists as a requirement. Make important keywords bold so that
the recruiter won't miss it while screening. (I have heard that the recruiter
generally screens one resume in only 10 to 20 seconds. So, do
everything to stand out!)
4. Useful Youtube Channels:

Java Brains | Gaurav Sen | Kenny Talks Code | FreeCodeCamp | Tech Dose | Telusko |
In28Minutes | Success in Tech | Naveen AutomationLabs | Udit Agarwal | Techsith |
Ranjith Ramachandran | Kubucation | Clément Mihailescu | Soumyajit Bhattacharyay |
Anuj Bhaiya | Striver

Section 8: End

For all the resources shared in this document, all rights are reserved by the individual owners.
In case of any further queries which are not covered here, reach out to me on my LinkedIn.

You might also like