Internship Interview Experience
Internship Interview Experience
(Abhishek Mathur)
About Me:
My path of finding a summer internship was not that easy - I sat in more than 17
coding rounds of tier-1 software companies, faced 12 interviews in total, got
rejected in the first 10 of them. But I learnt tremendously from each experience
leading to smooth selections in the last 2 - OnePlus R&D and a Silicon Valley
based Stealth Startup, latter is where I decided to join.
I am creating this document to share my journey with all the ambitious students
out there, giving a sneak peak into the corporate world. I hope this helps and
guides you in your interview process.
Special Thanks:
Uber
● Coding Round
○ 3 coding questions (1 was array based bit manipulation, 2 were dp
based)
● Interview Round 1
○ Purely CP based (on codepair platform)
○ 1 question on a 2-D array traversal featuring obstacles (was quite
easy, kind of basic BFS)
○ 1 question on Minimum spanning tree
Alphagrep
● Coding Round
○ 3 coding questions (1 was greedy, 1 was math, 1 was DP)
○ 6 people were shortlisted
● Interview Round 1
○ Resume + 1 project in detail
○ 1 puzzle (number theory) which was common to all candidates.
○ Interviewer had a look at the coding round codes.
“It's fine to celebrate success but it is more important to heed the lessons of failure.”
-Bill Gates
○ Didn’t qualify for the next round (which was resume based and more
projects were discussed with the 2 shortlisted candidates).
● Final verdict - Not selected
MotorQ
● Coding Round
○ 2 moderate level coding questions (1 was greedy and 1 was math)
● Interview Round 1
○ Purely CP based.
○ 1 standard question - To find the median of two sorted arrays when
combined together and sorted. Standard solution with complexity
O(log(min(M,N))) is the only acceptable solution when this
problem is asked in interviews. Even O(logM.logN) shall not be
entertained.
● Interview Round 2
○ Purely CP based.
○ He asked me to code upper bound and lower bound functions i.e.
write binary search codes for each of them.
○ Next he asked a question based on Floyd’s algorithm (not Floyd
Warshall but a cycle finding algorithm), which I didn’t know.
○ Few people were shortlisted for the next round (not me), which was
the combined form of technical and HR round. Questions varied from
System Design to LRU in OS.
● Final verdict - Not selected
Google (Tanuj)
● Resume shortlisting
○ Google did not have a coding round. They shortlisted approximately
15 people based on their resumes out of ~100 people.
○ Main things they looked at in the resume (according to me) are -
CGPA, competitive coding profile and participation in google
kickstarts/codejam.
“I have not failed. I've just found 10,000 ways that won't work.” -Edison
● Two interview rounds happened for all the candidates. Third round
happened for some of the candidates for which Google thought they
needed more information. 2 people were selected after 2 rounds and one
after the 3 rounds.
● Interview Round 1
○ 2 very simple questions, one related to bit manipulation and other
graphs (vanilla dfs).
○ Interviewer focused on small optimizations in standard solutions. He
asked a lot of counter questions in vanilla dfs.
○ The 2nd question was very simple, but was phrased in a weird way.
○ It is okay if you do not know anything specific to language. For
example I did not know the difference between map and
unordered_map in C++, but I did know the concept of hashing.
● Interview Round 2
○ This was harder than the previous one (this is not the case for
everybody).
○ Both questions were related to binary trees.
○ I took a lot of time in the first question (20-30 minute as I remember),
it had a simpler solution but my solution was a little complicated.
○ I could not give a concrete logic of the second question in time.
Interviewer gave me a hint in the end to use the solution of the
previous question as a blackbox, and then it striked me and I gave
him the correct logic. I could not implement that in time.
● Final verdict - Selected :D
Microsoft
● Coding Round
○ 2 parts - 1 for SE role, 1 for ML role
○ SE
■ 3 easy questions were asked based on arrays, strings and
math.
■ Multiple sets were there.
“All you need in this life is ignorance and confidence, and then success is sure.” -Mark
Twain
○ ML
■ Multiple choice questions related to Probability and Statistical
Methods in AI were asked.
○ I was shortlisted for the SE profile.
● Group fly round
○ 2 questions were asked and were common to all people. 1 was
regarding binary search and 1 regarding lowest common ancestor. It
was kind of luck based because there were few people who solved
both questions correctly but didn’t qualify for the next round and vice
versa.
○ Around 60 people were shortlisted from this round
● Interview Round 1
○ CP
○ 1 question to implement the code to rotate the matrix spirally.
○ 1 question to implement functioning of head and tail commands.
● Interview Round 2
○ Resume + CP
○ Interviewer asked about my interests in Computer Science, to which
I replied ‘Machine Learning’. Then he discussed a few of my projects
in detail along with the related coursework.
○ 1 question based on strings was asked. Question was quite
controversial, and I discussed a lot with him to confirm what I
understood was right. The interviewer was not from a CP
background, what he wanted to judge here was if I am comfortable
with functions in C++ or not.
● Interview Round 3
○ CP
○ 1 question based on 2-D sorted matrix search was asked.
○ 1 question based on bit overflow.
● Final verdict - Not selected (Felt unlucky, results seemed quite random)
“Our greatest weakness lies in giving up. The most certain way to succeed is always to
try just one more time.” -Edison
Sprinklr
● Coding Round
○ 3 questions - 2 were based on greedy and strings
● Interview Round 1
○ Varied a lot from people to people
○ For me, it was mostly CP based, whereas for some, it was more like
a resume round.
○ Interviewer started with some key projects in the resume. He was
impressed by one of them as it was based on the topic he was
currently working on and discussed that in detail.
○ After that, 1 standard question was asked - To find the median of
two sorted arrays when combined together and sorted.
This was the second time this question was asked to me, but
due to my carelessness, I still didn’t know the solution this time
too. So, it's strongly advisable to note the questions after each
interview and revise them before going into the next.
○ 6 people (not me) were selected for the next round. Again the kind of
questions varied a lot from interviewer to interviewer. Finally 2
people were selected.
● Final verdict - Not selected
E&Y
● Coding + English Round
○ Multiple choice questions based on English (synonyms, antonyms,
comprehensions), Aptitude, Data structures and algorithms, basic
probability were asked.
○ Pen paper round - Writing skills - Topic: Email to HR querying about
a particular job position in about 150 words.
○ There were two roles - Applied Engineering and Artificial
Intelligence, out of which we had to opt for one, I opted for AI.
“Many of life's failures are people who did not realize how close they were to success
when they gave up.” -Edison
AppDynamics
● Coding Round
○ 1 advanced level and 2 moderate level coding questions (1 was DP,
1 was strings, 1 was implementation based brute force). 22 people
were shortlisted after this round.
● Interview Round 1
○ This round was mostly CP based including 2 standard questions,
one on DP and other on graphs. Starting with the basic introduction,
the interviewer went and discussed the resume briefly, moving on to
the questions. After discussing the idea to solve the problem, I was
asked to write code on a sheet of paper.
○ This round went for about 45 minutes.
● Interview Round 2
○ After a brief introduction, the interviewer started with a standard
question - designing and implementing efficient LRU cache
(customised). My approach to the problem was based on STL sets
and maps. It was evident that the answer expected was using doubly
linked lists, and the interviewer wasn’t aware of the properties of sets
and maps (disadvantage for me).
○ This round was a bit quick and took less than even 25 minutes to
end.
● These two rounds were common to almost all shortlisted candidates. Next,
2 candidates were called for the HR round and both got selected.
● Final verdict - Not selected
Salesforce
● Coding Round
○ 3 coding questions (2 were moderate level implementation based
and 1 was basic BFS)
● Interview Round 1
○ Resume + CP round
“Success comes from knowing that you did your best to become the best that you are
capable of becoming.” -John Wooden
○ The interviewer discussed the resume in detail, mainly focussing on
one of the projects, which he went into detail (discussed word2vec
and gloVe in depth - on which that project was based). This took
around 30 minutes. Next, he moved to a standard array problem.
○ Some time was left, so the interviewer asked some off-topic
behavioral and general questions. This round took exactly 45
minutes to finish, and overall went good.
● Interview Round 2
○ CP+Design
○ 1 question to design a game (not exactly a game) where a stream of
input is entered line by line (each line may have more than one
character), along with the last line getting deleted simultaneously.
Some customisations were applied to this to orient the question
towards CP.
○ Key components which the interviewer was looking for were (which I
discussed with him after the round):
■ Did I handle base cases and edge cases properly?
■ Can I write clean and modular code?
■ Problem solving skill
● Interview Round 3 (HR Round)
○ 8 people were called for this round, out of which 4 got selected.
○ This is where I first learnt the fact that if you have been asked “Tell
me about yourself”, never read out your resume.
○ The manager briefly went through the resume, and asked some
behavioral questions.
○ Quick round - Didn’t even take 15 mins to finish.
● Final verdict - Not selected
Kivi Capital
● Initial shortlisting was done based on the resume. 16 people were
shortlisted for the interview.
“Let me tell you the secret that has led me to my goal. My strength lies solely in my
tenacity.” -Louis Pasteur
● Interview Round 1 (Telephonic)
○ 2 CP based questions were asked. 1 was based on graphs
(moderate level) and 1 was based on DP (easy level).
○ I struggled to answer the DP question. The interviewer helped a bit
to reach the final solution. Since the round was telephonic, he asked
me to write the pseudo code on a piece of paper and explain the
steps.
● Interview Round 2 (Telephonic)
○ Projects were discussed in detail. It therefore becomes very
important that you are thorough and honest with your resume. This
round went well.
● HR Round (Telephonic)
○ 3 people were selected for this round. All of us had it simultaneously
with 3 different senior employees in the company. The interviewer
started with a basic introduction of the company and asked me some
generic questions (including behavioural).
● Final verdict - Not selected
OnePlus
● Coding Round
○ Around 50 questions based on C, Java, android OS.
○ 2 easy-moderate level coding questions, both based on arrays
● Interview Round 1
○ Interviewer went through the resume thoroughly and discussed
almost every project briefly. He was impressed by the ML project
and discussed that in detail.
○ Next, the interviewer discussed their current projects, and asked
some out-of-the-box questions based on image processing. The
discussion was positive for me, and he looked impressed by the
responses.
“In order to succeed you must fail, so that you know what not to do the next time.”
-Anthony J. D'Angelo
○ No CP related questions were asked in this round. However, it
varied, some people were asked basic questions based on merge
sort tree, sorting algos, etc.
● HR Round
○ General behavioural questions were asked in this round. HR asked
about my background and how I developed interest in CS. Some
more questions regarding the expected work environment and
culture were also asked.
● Final verdict - Selected :D
Stealth-mode Startup
● Resume shortlisting
● Interview Round 1
○ Resume round. Projects were discussed in brief.
○ Most of the discussion was based on the things which were related
to the company's work.
● Interview Round 2
○ 1 task - To build a basic REST API web app backend from scratch. I
was comfortable using Python, and we mutually agreed over it, so I
followed that.
○ 2 questions based on CP - 1 based on merge sort and other on
C++(STL) Sets.
● Final verdict - Selected :D (Currently working as an intern)
“It's not that I'm so smart, it's just that I stay with problems longer.” -Albert Einstein
Some general tips and tricks
● Whenever you are asked “Tell me about yourself”, tell the things that are not
mentioned on your resume. Personal opinion: Always start talking about your
background, your journey in the field of interest. Slowly move on to the things
relevant to the job, like if it’s related to machine learning, then explain how you
get introduced to ML, and how it attracted you toward itself. Your answer must
not be as short as a 10 seconds slogan, nor it should be long as 10 mins speech.
Somewhere around 3-5 minutes will work
● Do you have any questions for us? - Mostly every second interviewer will ask
you this question. You must have (or will) read from various sources, “Always ask
a question, this shows your interest in their company”. You must know that the
person sitting in front of you has also faced interviews, and must have
interviewed many too. So, be yourself, no need to ask unnecessary questions. If
you are comfortable (have no doubts), state clear to him/her about your thoughts
and show how crystal clear you are about this role.
● When you mention competitive programming as your interests, it may sometimes
become negative as the interviewer may not be a big fan of it. You’ll get to know
if he’s enjoying the verse or not. It’s advisable to divert away from CP in case
he/she doesn’t like it.
● Type of questions asked in the coding rounds are different from those asked in
the interviews. It is therefore very important that you practice the standard
interview problems. Even if you are proficient in competitive programming, I’ll
recommend to go through the standard problems at least once before sitting in
the interview.
● In case, you face rejection in any interview, jot down and analyse the mistakes
you made that day, and go through it before attending the next interview. It will
surely give you confidence and you won’t make the same mistakes ever.
● In almost every technical round where you are asked a problem, you’ll be asked
to code it down, that too on a piece of paper. Try to keep the code modular, and
if possible, label comments over each function. What matters the most is the
logic to solve that problem, but following this shall grant you some bonus points.
Thank you for giving this a read. I believe it will prove to be helpful. All the best!
"Rejection does not mean you aren't good enough. It just means the other person failed to
realize what you have to offer." -Mark Amend