亚麻new grad 西雅图过经

Current Status: New Grad(Dec 2019), BA in CS
Position Applied: Software Development Engineer 1 (2020 New Grad) @ Seattle

My Experience:

Undergraduate Research experience for 8-9 months, during Junior year
1 Software Engineering Internship at a small/medium company (<500 employees), my Junior summer
Same internship led to an Associate Software Engineer position throughout my senior year
Now, a Software Engineer at a larger (top 100: https://www.forbes.com/top-digital-companies/list/#tab:rank) Tech company since I’m only taking 1 class at my University

Current Timeline:

November 5th - Referral from friend @ Amazon
November 15th - Received OA 1 (Debugging)
November 16th - Finished OA 1
November 16th - Received OA 2 (2 Technical Questions and Personality)
November 16th - Finished OA 2
November 17th - Received OA 3 (Simulation and Logic)
November 17th - Finished OA 3
November 17th - Currently Waiting

Online Assessment (OA) - 3 Parts
I know that there are a lot of other posts out there discussing the OA’s, but they’re very non-chalant about it (i.e skip description of OA’s). I’ll talk about it here because someone else could be looking for them as well!

Part 1: Debugging Code
So, for the the first OA, it’s a basic debugging assessment. You are given 7 functions/methods and there’s a bug in there that isn’t producing the correct output. They aren’t hard to decipher, if you read the prompt and function title (it tells you what it’s doing). I was an idiot and just skimmed the first two so I wasted a lot of time trying to figure it out :frowning:

Example (NOT REAL FROM AMAZON):

void printAllEven(int num){
	print = 0;
	if(num % 2 == 0){
		while(print <= num)
			cout << print << " ";
		print+=2; // Here's the mistake, it needs to be indented to be a part of the loop

You get 7 of these and you’re just trying to find syntaxical error and/or if the function is MISSING a variable. Usually, you do NOT need to change more than 1/2 lines of code. If you’re doing more than 1/2 lines of code (maybe max 3??), you probably read the question/function wrong.

Part 2: Technical Questions and Personality
For part 2, it’s what most of you (or if you’ve never done an OA) have already experience. I got 2 medium questions, which were both on leetcode (sort of…they were different variations). The entire technical question is 70 minutes, so use your time wisely.

Q1: https://leetcode.com/problems/search-a-2d-matrix-ii/
So, while I did get this question, mine was asking for a different return value. In this leetcode example, it asks to return a boolean value, however, in my OA, it asked for specific coordinates. It’s basically the same thing, just wanted to give a heads up. Another great problem to practice was this: https://leetcode.com/problems/kth-smallest-element-in-a-sorted-matrix/. I had solved this one about 1-2 weeks before this OA, and it’s another good source to practice searching a 2D matrix. I spent about maybe roughly 15-20 minutes solving this one since I knew I had to implement a binary search.

Q2: https://leetcode.com/problems/copy-list-with-random-pointer/
Now, this one took the most time because I’ve never seen it and I was so confused at what they were saying in the Amazon prompt. But it’s basically the same exact question, where they give you a class Node to use and you’re just making a deep copy. I spent almost 40 minutes trying to solve this one, only to realize that I just needed to use a dictionary to store where the nodes were pointing next. Then, build a new list that pointed to the correct new direction.

After these two technicals were just a personality (I’m trying to find a better word to describe it) test. It’s one of those sliders thing where you’re given two prompts and you can only pick one to describe yourself MORE AS.

Example:

  • ML = More Likely

  • SL = Somewhat Likely

  	I keep my work extremely tidy                       I enjoy staying in school to keep learning 
  	ML                     SL                                      SL                           ML

Part 3: Simulation and Logic
For this section, the total allotted time was 2 and a half hours, so be prepared to sit through a very long process. I had a cup of coffee by my side and took a restroom break earlier. The simulation was about 1 hour and 15 minutes for me and then I spent 30 minutes on the logic portion.

Simulation:
During the simulation, you watch videos that simulates what the current problem you and your team are running into. You get “fake” emails that tells you that there is an error in the system, here are the logs, what do you think the error could be? There is 5 total modules with 5 different problems that you’re trying to do. I don’t think this simulation gives the exact experience, but it does give a insight into what might occur when different things are all happening at once. I would consider reading through: https://www.amazon.jobs/en/principles and https://medium.com/@scarletinked/are-you-the-leader-were-looking-for-interviewing-at-amazon-8301d787815d. The simulation is basically trying to see if you are incorporating these Leadership Principles into your decisions. I honestly felt like a drone during this simulation as I felt like I had to answer in their ways, even though there are different approaches to how to attack a problem. But I will end my rant here.

Logic:
I’m about 100% sure that all of you, domestic and international, have taken a standardized LOGIC portion where they test for your problem solving. In this section, you have 35 minutes to solve 25 questions. They are all multiple choice.

Example 1:
Transcribe the following message. Given the pattern that translate the first two, find the pattern and translate the given statement.

TENNIS:UDOMJR::CRICKET:???

Try solving it before reading my answer below.
For this one, if you draw out the alphabet in front of you, it’s pretty simple (that’s what I did on my iPad). T is to the left of U by 1. E is to the right of D by 1. N is to the left of O by 1. N is to the right of M by 1. Get this particular pattern?? CRICKET:DQJBLDU

Example 2:
A group of 6 friends: Glen, Sarah, Ana, Natalie, Monica, and Rita are going to a restaurant. They sit at a hexagonal table. Glen, Sarah, and Ana CANNOT sit across from each other.

Given: Rita sits in between Glen and Sarah. Where does Monica sit across from?

  • Sarah
  • Rita
  • Natalie
  • Not possible

So, if you just draw out a hexagonal table, you can easily solve this. She can sit next to Glen or to Sarah, since Ana cannot sit in front of Glen or Sarah. And since Glen isn’t one of the choices, she then sits across from Sarah.

So, the rest of the logic piece is just similar questions to these.

Preparation
So, far, on my leetcode, I’ve done about 70-80 problems (30 easy and the rest medium). I’ve done about 2-3 hards, but I don’t think they’re very useful since they require A LOT of thought process and/or domain knowledge of a specific algorithm. I’ve also read Cracking the Coding Interview and Elements of Programming Interviews . Besides that, I’ve read Leetcode discuss section almost every night religiously. I’ve read others experience about how to prepare and I’ve seen people doing 25 LC questions to over 200 LC questions. I really think it just depends on who you are. I honestly wish I could just give the recipe to studying, but it really just comes down to grinding it out and UNDERSTANDING what you’re doing. If you are struggling with BFS, then do every DFS problem and turn it into a BFS (and vice versa). If you’re struggling with stacks, study stacks. I also think picking an easy interviewing language is another factor. I ultimately learned Python because it was easy to use and I was already using it for my undergrad research, data science and machine learning class.

So, I’ve been studying for the last 2 months, usually 4-5 hours every saturday. Then, throughout the week, after work and school, I try to do at least 1 per night (but sometimes I’m too tired with work or homework). I am also VERY VERY fortunate to have an amazing group of friends, between 5-7 of us who are wanting to get into FAANG, so we get together to study every saturday and/or throughout the week on discord. If you can, I HIGHLY recommend finding a group because it not only motivates you, but you get to practice and see different approaches.

And lastly, I am NOT the smartest nor will I graduate in the top 50% of my class, but I think I just really enjoy solving problems. I know that it’ll get tiring, boring, and at times, you wonder why a company is basing their candidates on algorithms that they’ll never use at work (I have yet to use a single algorithm at my work). But, keep going, it’ll be worth it in the end! So far, I’ve applied to about 100+ jobs since mid-September. I’ve gotten OA’s from maybe…less than 20 of them? And only have 1 offer so far. So, keep going and keep practicing!! I BELIEVE!

I will continue to update this, if I get a final interview (praying to all the Gods out there). Good luck everybody <3