目前是 Sophomore, BS CS School in Bay Area
地点是 San Jose, CA
Interview process:
OA1:
debugging and logical questions (straightforward but time goes by really fast so manage it well!) OA2*:
amazon fulfillment center, find two boxes whose weight is less or equal to maximum weight
Classic combinatorial optimization, a variant to the knapsack problem.
amazon data center, round-robin style access, find average waiting time of all clients
This problem was very hard in the sense that there were a lot of things one needs to keep track of when crafting a solution. You need a crystal clear understanding of the problem and plan your solution meticulously.
*Rumors say that if you did exceptionally well in OA2 they will skip the last round of interview and give you an offer
1-on-1 video interview [45min]:
Behavioral:
Introduce yourself Tell me about a project you’ve worked on with a tight time frame and how you got it done on time General software engineering knowledge: What is the difference between an array and linked list? What is a foreign key in database? What is TCP? How is reliable data transmission implemented?
Technical:
1 Find the nth Fibonacci number
I bombed this question because I tried to recall an optimal bottom-up solution but was blanking out on the details of it. After being stuck for about 10 minutes I had to go back to the basic recursive solution, talked about optimization with memoization but ran out of time to actually implement it. I was sure that this left a bad impression; it showed the interviewer that I was unorganized and hasty by trying to jump to code without thinking through my solution first.
2 Check if a string is palindrome
Straightforward. Make sure you can go beyond the solution using something like reverse()
Tips: 不要假装知道你实际上不懂的东西. Never, ever try to come up with an optimal solution upfront without being 100% sure how it works and how to explain it. Start by talking about a naive solution and build it up elegantly to better solutions.