Amazon SDE Intern (On-campus interview experience)
By Aditya Karia – https://medium.com/@adityakaria
Introducing myself, I am a third year B.Tech student pursuing my major in Information Technology at National Institute of Technology (NITK), Surathkal.
Like many prominent colleges across the country, we had companies visiting our campus to pick students for FTE and internship positions at the beginning of the semester and I got offered an SDE intern position at Amazon during the same. Here, I will be sharing my experience through the course of the internship interviews season and also about how Demux helped me achieve this.
Coming to the structure of the selection process, we had just 2 rounds for Interns, the first being an online test, followed by an interview.
The online round was conducted on the “AMCAT Aspiring minds” platform and was scheduled for a total duration of a maximum of 90 minutes. It was split into three sections, namely:
- Given small snippets of code or functions (in any language of my preference, I had to find the bugs/logical errors/syntax errors in the code that prevented it from returning the expected output. Input and expected output were provided.)
- The questions were not too difficult and having some practice of reading code accurately and quickly helps.
2. Aptitude Questions:
- Here, the questions asked were mainly based on probability, mathematical puzzles, age-related problems, work and time problems etc.
- They were challenging and had a tight time bound, so being quick was essential.
- A tip for such questions would be to not waste too much time on a single difficult question, but instead try to solve more questions and come back to the difficult ones if you have time left.
3. Coding Questions
- We had 50 minutes to solve two questions in a language of our preference (I picked C++)
- The questions were different for different candidates and from the word of mouth, they were mainly based on concepts of DFS/BFS, Binary Search, Job Scheduling, HashMaps etc.
- I got one question on finding an element in a 2D array when the columns were sorted but the rows were not (there was a long story behind the question which was largely to make figuring the solution difficult)
- Another question was based on having a 2D matrix where a person wants to reach a point A=(x,y) from B=(0,0), but had obstacles placed in the matrix. We had to return if it is possible to reach the point A from B avoiding all obstacles and if yes, return the minimum possible length of the path. It was fairly simple using modified BFS/DFS once I trimmed out the unnecessary details in the story revolving around the question.
The online round was not very difficult, but had a tight time constraint for all sections, thus we had to be quick to solve anything.
The shortlist came out around 2 days post the online test, and we were called for interviews. Before that, one of the company representatives interacted with us, and tried to clear all doubts we had about the company beforehand. He also shared some very interesting experiences of his, but that of-course, is beyond the intention of this article.
There was a long wait before the interviews commenced. My interviewer first asked me how I was doing and asked me to talk a bit about myself. He was very sweet and the questions initially were mostly to make me comfortable. I talked about my background, about what domains I have worked on, my experience with corporates, projects, hobbies, etc. I felt I had made a strong first impression, and he confirmed that with a positive comment.
Then, in the technical section, these were the questions asked:
- Which are the common data structures I have used? Explain hash-maps in detail.
- Explain threads, processes, deadlock, semaphores and mutex.
- Explain the different graph traversals and the differences between them
- Some questions on basic OOPS concepts
- Write down the C++ code for any tree traversal in paper
- Basic C++ syntax and implementation questions
- Design an OOPS based system for making a web app to display details about the whole interview process (He was expecting an in-detail format drawn on paper with UML diagrams)
- Convert the above OOPS System to a DBMS database. How would you modify pointers to fit a RDBMS?
- Find the (n-k)’th node in a Binary Search tree, given k<=n
I had answered all questions well and without many hints and was happy with way the interview ran its course.
One thing I noticed was that the interviewer was trying to extract some keywords (mostly, technical terms) from me, and when he did, he was happy that I knew my theory well and could solve problems on it.
The results were announce after around 5 hours on their Telegram channel, and I was so glad to see my name there 🙂
To wrap up, it was a great selection process experience with Amazon, and the representatives were very nice. My interviewer was very supportive and spent almost an hour interviewing me.
For any aspiring candidates reading this, having a strong foundation about DSA, OS and OOPS (what is taught in our curriculum is mostly enough) and having continuous practice in coding in them (without using smart IDEs) should suffice. It helps to practice coding on paper beforehand.
They also try to look for genuineness in your work, the projects you have done and specially the ones mentioned on your resume. Try to be honest with the interviewer and stay positive. (I went into my interviewer’s room with the biggest smile ever and that set the atmosphere well!)
The Demux experience
Talking about Demux, it was an extremely enriching experience learning from the brilliant minds behind this initiative, as they spent a lot of time trying to teach us well. Also they were always available and ready to help
I remember having a resume review with Varun sir at 3:30 AM one day because I needed some help urgently, and he was most happy to review and suggest!
For me, Demux helped me revise some basic concepts that I had forgotten from the courses in college, and also get practice solving some challenging questions on these concepts. Plus, we often had coding contests among the student members.
I sincerely thank the Demux team for all the efforts they have taken, and wish them the best for the future!
(For more information on Demux, click here)
Some general tips for anyone appearing for internship interviews:
- Initial rejections may hurt, but don’t give up.
- Luck plays a big role, so just hope it plays in your favour too!
- Some of the online round platforms are not very convenient to use. Practice well enough to debug code without being given compilation logs or test cases. Many don’t display anything other than whether your submission is “successful” or not.
- It’s more about the number of test cases you pass in a question, than the quality/efficiency/complexity of code you write (in online rounds)
- Practice pen & paper coding during the summer. It’s not the same as coding in an IDE!
- Treat the interviews like technical discussions with your seniors, not as a test.
- Take adequate rest and food, stay healthy during the interview season.
- Learn from your mistakes in previous tests, and stay focused.
Coming back to the internship, I’m still waiting for my official offer letter, but I can’t wait to start the internship and see what’s in store!