About a few months ago I was looking out for a job when I got the opportunity to be interviewed at Amazon. As I started my research online (or googling as others would say), I found less articles for frontend interviews and that too for virtual processes were close to none. So, after the interview process was over, I thought of writing down an article of my own experience at Amazon.
Hoping that a lot of people will be benefitted by this!
Even if you are not a frontend/UI developer, do have a look as a lot of processes are common for both frontend and backend engineers.
This will be a detailed article going in depth of the entire process from start to end. I will be covering the entire virtual process, online tools, interview rounds (including questions summary) and their timelines as well as will be attaching the relevant docs provided by Amazon. So without further waiting, let's start.
Brief Summary about me
(at the time of interview process)
- Total Experience: 4 years
- Relevant frontend experience: 3 years
- Core Expertise: Javascript (ReactJs + Redux and other relevant libraries in React ecosystem), HTML, CSS, NodeJs
- Companies worked till now: Practo and Goomo
Role - Frontend Engineer II (FE2)
The Role I interviewed for was for a Frontend Engineer II (FE2)
role (JD attached at bottom). Now, Amazon do have multiple categories of roles even in frontend development. There is one Web Development Engineer (WDE) role and other type is Frontend Engineer (FE) role. As per the interviewers, FE role is more senior in terms of responsibilities and work compared to WDE. So even for same level (e.g. FE2, WDE2); FE2 will have more responsibilities and salary than WDE2.
Process
Do note that Amazon is a very big firm and sometimes, it takes a lot of time to get the process done. Process was relatively longer for me. From applying till the final selection/rejection it took about 3 months.
Shortlisting
My profile went through third party recruitment firm CareerNet Technologies. Kiran from Careernet and their team helped a lot in the overall process. I used to get constant and timely updates from them. All the info related to interviews, shortlisting was conveyed properly. My resume was submitted in early week of March 2020 and took a few weeks to get shortlisted for next rounds.
Number of rounds:
There were 6 rounds in total (including one screening round). All the rounds were done virtually. Most of the rounds were scheduled 1 hour rounds (but few got extended to 2 hours in my case).
Arrangements/Logistics for Virtual Interview
So, the way interviews are happening now will be very different from how they used to happen onsite (pre-covid era). The rounds happened over video call (except for screening which was over chat). I used to get mails few days before the interview. It contained the link for the chat, the online editor as well as white board tool. The mail also contained various other links for me to read and get to know about the company, interview tips and preparation docs etc. The links for documents have been added at bottom.
- For white boards, there was invision link shared where both interviewer and interviewee can draw the diagrams etc (Do get used to it as it might slow you down). Though the tool is intuitive to use, it needs a lot of practice to draw things. (Excalidraw is also another similar tool which you can use to practice)
- Then there was a tool where you can write code as the interview proceeds. The link was something like: https://livecode.amazon.jobs/session/xxxx-xxxx-xxxxxxxxx-xxxx. Note: There is no functionality to run the code. It was some sort of plain text editor. So, you just have to go with the gut feeling of code being correct/incorrect.
- For video calling, the tool was Chime (similar to Google meet or Hangouts).
Timelines
I started to look for a job in mid February 2020 and had started to apply for Amazon via referral as well as third party recruitment firms.
Here is also a timeline of the various rounds. As far as I know, this can vary for individuals depending upon the requirements. The interviews happened as per my convenience and even some interviews happened on Saturdays as my week days were occupied with my work. So, amazon was very much flexible with it.
Date | |
---|---|
Resume submitted | 1st week of March 2020 |
Screening Round | 17th April 2020 |
Round 1 | 12th June 2020 |
Round 2 | 12th June 2020* |
Round 3 | 13th June 2020 |
Round 4 | 15th June 2020 |
Round 5 | 18th June 2020 |
Round 6 | 18th June 2020 |
Result | 23rd June 2020 |
*This round was interrupted and postponed due to internet issues. So it wasn’t evaluated.
I wasn’t expecting the process to take so long. So, somewhere around screening, I had already joined another firm. But, when the interview call came, I just thought of giving interviews so as to get an experience which will help me in future.
Interview Rounds
There were about 6 interview rounds (including screening round). The pattern was very standard with the only exception being that this was more related to frontend perspective. The questions were mostly restricted to html/css/javascript and the basic principles. No framework specific questions were asked.
Briefly summing up the interview rounds:
- Screening: Was asked to write code (html/css/javascript) for a navigation menu bar following all good practices and conventions. Then a lot of counter questions on the solution I presented. This round was a chat only round. There was an online editor where I can write code and a chat window where we can type and interact with the interviewer. No audio/video feedback was there.
- Round 1: This round was a mix of DS/Algorithm and UI. Was asked to design a search bar (using trie like data structure) with good caching mechanism (browser side caching). And then there were some other questions related to arrays in Javascript.
- Round 2: It was pure Data Structure and Algorithm round. A question to find the lowest common ancestor for 2 nodes in a tree was asked (read more here). Discussed multiple approaches with the interviewer. And then was asked to present a working solution with best time and space complexity covering edge cases. However, this round was interrupted in the middle due to some internet issues and a new round was scheduled for the same.
- Round 3: It was more of a culture fit/leadership principles round. A lot of questions of the pattern “Tell me about a time when you did this/that” were asked.
- Round 4: I was asked to design the Amazon search page. Users should be able to search and see results. Mostly targeted how will UI components be designed, what will be the API design, What kind of data structure to be used. How optimization/caching etc can be done and a lot more grilling around this. This round went to about 2 hours. This round involved a lot of white board drawing (and due to time constraint, interviewer asked me to submit a flowchart diagram of my solution post interview).
- Round 5: Was asked to write optimized solution for problems such as:
- Given an array, find all pairs of numbers which sum to n with best time and space complexity.
- Write javascript code to deeply clone an object.
- Create a circle of radius 200px with some text in the center.
- Round 6: This was a mixed questions round. It involved 2-3 questions like “Tell me about time when conflict between you and your team mates arose and how you resolved”. Then there was a algorithm related question on finding the correct order of execution for a set of libraries where some libraries have dependency on other libraries and I was supposed to write the code for the same.
In almost all rounds, the solution expected was to be perfect covering all the edge cases and with best practices. A lot of discussion happened on why certain approaches were better or why this has been done or how can you improve this. This is why it sometimes becomes difficult to crack the interview.
Result
My profile wasn’t shortlisted. This was the mail sent by their HR team.
Post this mail, it took about 10 days for HR to get me the detailed feedback. It was mainly the Data Structure and Algorithms implementation where they felt I need to work a bit more and HR asked me to reapply after some months (the usual stuff 😀).
Also, an interesting point to note here is that during the course of interview Amazon also tries to move the profile between various other job profiles they have if the candidate is not suitable for current applied position which is a pretty good thing on their part. So, they themselves will recommend other positions and will change the course of interviews.
Some useful links:
- Job Description - Front End Engineer II
- About Amazon
- Amazon Candidate Preparation Document
- Interview Tips - Tech
Summary
Overall it was a nice interview experience. Got to learn a lot of things.
Note: I haven’t included a very detailed description of all the interview questions as the article was getting really long. But do let me know in the comments and I will write a separate article on that. Additionally, I have dumped all the interview questions (even from other companies as well) in this Github Repository. Do check that out as well and contribute by practising and submitting your solutions :-).
Please share it amongst your colleagues, friends and others who might get benefitted from it.
Thanks!
Top comments (5)
What is browser-side caching? the cache headers are set on the server!?
Round 5:
As a frontend dev, why do you want to consume CPU and compute on client-side? JD for frontend, round 4 full-stack? LOL.
DS and Algo optimizations are something that has to be done on backend and when you compute these things in the frontend you will end up with a bad, slow frontend.
So sorry you couldn't crack this.
If user types any keyword in search bar, they wanted to know if (and how) the result can be stored on the browser and re-used if same keyword is typed again.
Also, if some keyword is subset of another (
sunday
is subset ofsun
), can the API structure be designed in such a way that, if user searches forsun
and gets result and then searched forsunday
; can the result forsunday
be extracted out of result fromsun
(which might already be stored somewhere).They wanted to discuss the possible approaches, strategy etc for the same.
It was more of standard DS and Algo question and solution. I think, they wanted to check my understanding of DS and Algo.
Most of bigger companies have this kind of rounds. Questions on graph algo like find islands in sea, BFS, DFS etc were asked in many companies.
I am aware that they have these questions but honestly, this is something they need to have a better way to assess their candidates. DS and Algo should never be a factor to reject a frontend candidate!
I do not see backend interviews where they ask nth-child, positioning, flex, grid, etc.
Thank you for sharing this experience with us. And, this your repo looks very promising to practice.
very insightful..thanks sunil