地点: Seattle, WA
Rounds: 1 Phone Screen, 4 onsite + lunch
YOE: 2.5 years
Degree : BS in CS
Date: July 11, 2019
店面一小时
Some general web knowledge questions, followed by some coding in an online shared editor. Don’t remember all the questions, as it was a while ago.
- Tell me about a project you worked on?
- Why would a website minify their source code?
- What is the difference between MyObject.foo and MyObject.prototype.foo?
- A series of CSS selector questions that built off the last (like what does .my-div select? Okay now what does .my-div p select? etc)
- Create a basic Car object with functions accelerate and deccelerate. Now create two cars with separate starting speeds and perform this set of speed changes on them.
- Write HTML, CSS, and JS to perform the following:
- There is a button on a page with text inside that says ‘Clicked {#} times’ with the number changing each time the button has been clicked.
- Follow up: Now each time the button is clicked, spawn a new button with its own counter, and the same functionality.
I was invited for an onsite interview and scheduled to come in about a month after my screen.
Onsite
Interview 1 [Hiring Manager] - 1 Hour
100% Behavioral
- Tell me about a time you had a tight deadline?
- Tell me about a time you went about the status quo?
- Tell me about a time you had a disagreement with a coworker?
Possibly one or two more I can’t remember
Interview 2 [Bar Raiser] - 1 Hour
50% Behavioral 50% Technical
- Why Amazon?
- Tell me about a time you had a tight deadline?
- Tell me about a time you had a disagreement with a coworker?
I had informed them I had been asked this questions in the previous round, but we continued with the questions anyways.
- Assume you are given two APIs
List<Person> getFriends(Person);
andList<Order> getOrders(Person);
. Design a feature like Amazon’s recommendation system, except fill it with orders of a person’s friends.- Now what if multiple people ordered the same thing, and we want to return the orders from most purchased to least purchased?
- Now what if someone purchased multiple of the same item and we only want one copy of that counted?
- Now what if we want to extend this to friends of friends?
1 Hour Lunch with potential teammate
- Went to some restaurant just off campus, talked about anything, doesn’t count towards the hiring decision.
Interview 3 - 1 Hour
100% Technical
The interviewer showed me some simple design that was created in a webpage, and stated ‘Assume you are given an API that uses an AJAX call to return a list of labels. Using HTML/CSS/JS format them as seen on the screen.’
- Now I want to add a button within each cell to remove a label from the screen
- Now I want to be able sort the labels, how would I do that? How is this effected by the removing of the labels?
- You now notice that what is being returned from the AJAX call is not the same as before, what steps do you take to solve the problem?
I asked if I could use React, and she seemed okay with it, as long as I could explain what I would have to do if I wasn’t using React. I ended up using a somewhat blend between normal JS and React, as it seemed she did not entirely understand the React code. Similarly, it seemed as if the interviewer was typing everything I had written on the whiteboard word-for-word.
Interview 4 - 1 Hour
100% Technical
The interviewer provided a sheet of paper that had some JSON data on it, and a small diagram of what the data should look like. I was asked to recreate the diagram and fill it with the JSON data as applicable. The diagram showed a table, and the interviewer said that it should be recreated as such.
Similar to the last one, I asked if I could use React. This interviewer seemed more open, and so I continued as such and he asked any questions about something he was uncertain about. Because I used a framework, it took a lot more writing probably than if I had used plain JS, and the interviewer said this was common for people who use frameworks when answering the question. I was unable to completely finish, but he had asked me if I had to go back and do it again would I have used a framework again and what things I might have done differently.
Decision - Reject [Behavioral]
I heard back from the interviewer in under a week with the decision.
Thoughts and Suggestions
- It was very tough to find any interview experiences for FEE roles, and the preparation packet provided by the recruiters was incredibly broad. It felt as though I was studying for an SDE role plus a web development role. I definitely spent a lot more time than was probably necessary on Data Structures and Algorithms questions, as these did not seem to be the focus of the interviews. If I was to be in the situation again, I would have spent less time on DS and Algo style questions and more on web tech questions (though DS and Algo might be important as well, all teams are different).
- All the interviewers were very nice and if I was struggling were willing to provide suggestions. At one point during one of the Web questions I was analyzing what I had written and hadn’t said anything and the interviewer asked what I was thinking/what my concerns were and helped me through them. During my last interview, I had not used HTML table elements in a while and when I told this to my interviewer he provided me some of the information I needed for this.
- Definitely have strong examples for the Leadership Principles questions and think about possible followups they might ask. For example, when asked about tight deadlines, one follow up was about ‘how did I prioritize?’. If you have a weak, or even semi-solid answer to the initial question, this can fall apart later in the follow ups as they will continue to dive in on whatever example you provide. In my opinion, these rounds were way more mentally exhausting than the coding questions.
- For the Web questions, I’d definitely recommend staying away from framework code, as they weren’t well versed in it and writing most of the boilerplate on a whiteboard took a lot of time. They definitely seemed like they would have been okay with using libraries such as jQuery, and it probably would have been easier that way if I was more familiar with it than I am.
- I felt like I got a little unlucky with the behavioral questions, as I was asked the same questions and they were ones I haven’t had to deal with as much in my professional experience. I had stumbled on some dumb things (how to turn a dictionary of counts to a sorted array in JS) in the Bar Raiser tech question, and writing HTML/CSS from memory on a whiteboard was challenging, but the recruiter said that I did very well in the technical portion and the team would be excited to invite me back for an onsite in 6-12 months after some personal growth.