Interviewing at Six Silicon Valley Giants in Six Days: Day 4 @ Amazon
A contemporaneous account of my 2018 interview gauntlet
The Morning Of
Day 5 is upon me!
First, I have to switch to my third hotel of the trip (and it’s not even the last) and hope they let me check-in early. It’s a 20 minute drive from here, so I suppose I’ll grab some coffee, maybe breakfast, and Lyft over there. I have an interview with Amazon today, but that too is a 20 minute drive from the next hotel. I don’t remember if Amazon left it up to me to book something or asked me where I wanted to stay or what, but I proactively requested that they extend Facebook’s stay so I didn’t have to go through five hotels.
Heading into this trip, I fully expected Amazon’s interview to be far and away the easiest of the six companies (purely based on how people talk about them online). However, with how well Monday and Tuesday went, I feel like it may end up being a bit harder than those. On top of today’s interview, I also expect to get some sort of initial offer from LinkedIn today, assuming they don’t require references first, and I expect Yelp to “move forward” in the process and get references from me. Apple probably won’t get back to me until Monday.
I’m pretty much stress-free right now. I still have three hours before my interview, but I’m used to it at this point and there’s enough good news and built-up confidence that I don’t think too much about “but what if this goes terribly?!”. Here’s the itinerary for today:
10:30am-11:15am: behavioral+algorithm interview
11:15am-12:00pm: hiring manager team fit interview
12:00pm-1:15pm: feedback-free lunch
1:15pm-2:00pm: behavioral+algorithm+mobile design interview
2:00pm-3:00pm: behavioral+algorithm interview
3:00pm-3:45pm: mobile design interview
Anyway, I’ll write some more after the interview. Peace!
Well. I think the interview went very well, far better than any of my first three. However, I don’t think I’ll accept any offer they may send, regardless of compensation. It’s probably easy to say that because Amazon is not known for high comp packages. Because I’m looking for technical growth and learning opportunities primarily, I just don’t think this would be a good fit for me, plus the vibe of the office turned me off. Anyway, to the interview:
10:30am-11:15am: Behavioral+algorithm interview
Every interview started with a large volume of behavioral questions drawing on previous experiences at work. None of the behavioral interviews I had today went poorly so I won’t really talk about them any more than I have already. We jumped straight into a language-agnostic coding question and I thought it went well. The interviewer did seem to criticize my use of Objective-C instead of another language, but I’m totally in the ObjC mode right now and I’m not about to pull out the C++ for one interview.
My general strategy when I hear a problem is to solve it naively, explain it’s a naive approach, then explain how I’d optimize it. I do that so I don’t try to optimize something before fully implementing it; sometimes optimizing leads to less intuitive code, so I’d rather prove I know what’s going on first, then make it better.
Unfortunately, my interviewer told me that my approach was unusual, and when I offered to optimize it (and I explained how I would), he said I didn’t need to, yet recorded what I’d written as my official response. I think if I were more excited by the company I would have protested a bit, but I didn’t say anything. He then tweaked the problem, I erased what I’d done, implemented the optimal solution, and that was that.
11:15am-12:00pm: Hiring manager team fit interview
This was essentially an extended version of the behavioral interviews I ended up having throughout the day. Nothing notable; as I said, I won’t spend a bunch of time talking about these, as they’re highly personal. If I were to give a nugget of advice: make sure you remember how all of your projects at work went and make sure you have lots of projects to draw stories from.
I had a nice conversation with an employee outside of my interview loop and we talked about career stuff. Where he’d worked, how he likes the industry, how he likes mobile programming. I checked my phone during one bathroom break at lunch and saw Yelp wants to move forward with an offer, meaning I now have two offers to consider. Still no numbers from either, though.
1:15pm-2:00pm: Behavioral+algorithm+mobile design interview
This interview was fine. Lots of behavioral stuff again, a pretty routine and easy-to-digest algorithm problem, and then a high-level design question. We then built on it as he added more constraints. It wasn’t particularly mobile-focused, but he had me stub out some methods in Objective-C. He seemed happy with it and we ended quite a bit early.
2:00pm-3:00pm: Behavioral+algorithm interview
I interviewed with someone remotely for this hour. I talked to him on speakerphone (there was no video) and we used a CoderPad-style website for my responses. I didn’t ask why I was being interviewed remotely; normally I would assume it’s because someone was OOO or temporarily in another office or it’s their most senior developer, but this guy was on a different team entirely in a different city.
The question posed in this interview definitely took me the longest of any question I’ve had this week. The question was extremely — and intentionally — vague, so it took me a good bit to get all of the problem’s constraints out of my interviewer. Once I did, I iterated closer to an answer. I made use of methods I hadn’t implemented (so, for example, I would say “I’m going to call this method which will do xyz to my array, so I can do abc”) to speed things up and he was fine with that. He had me implement a few of those methods and a few he was fine with not being implemented.
After that, he added another constraint to the problem, which ended up adding, like, one line of code, so it sounded scarier than it actually was. I asked a handful of culture questions (another tip: pace yourself with asking these questions, and make sure there’s a lot you want to know about the company heading into the interview day) and that was that.
3:00pm-3:45pm: Mobile design interview
I actually thought I was done at this point due to a typo on the itinerary that was emailed to me. Oops. Two more interviewers walked in, did some behavioral questioning, and moved on to a mobile design question. This was somewhat similar to the design question I’d solved earlier in the day and also similar to mobile design questions at both LinkedIn and Yelp. The lead interviewer just added more and more constraints until time was up, I asked a few questions, and I was escorted out.
I’d be pretty surprised if I didn’t get an offer based on how the interviews went. If they didn’t feel I was a good culture fit I could see a rejection. I tend to be pretty self-critical and think much less of my performance than would otherwise be fair, but I was definitely confident about this one. I didn’t ask how long it would be until I heard back because I’m not all that worried about the response.
I have Facebook tomorrow, which was the interview I was most excited for heading into the trip. Almost just as exciting: after that, it’s the weekend! 🎉