Taro Logo

Software Engineer Interview Experience

January 1, 2021
Positive ExperienceNo Offer

Process

I started with a 90-minute HackerRank coding test that had three questions. The recruiter informed me that the passing mark was 60 out of 100. However, the difficulty of the questions increased, and the third question was the hardest. I solved all of them; however, the runner code for the first question had an error, and I couldn't run it. When I reached out to the recruiter, she told me that I passed even without it and moved me to a four-hour virtual onsite.

The onsite interview included two coding rounds, one system design, and one behavioral round with the hiring manager.

The first interviewer didn't seem too interested and felt like a robot. She asked me to open a CoderPad URL and share my screen. Her first question was: “Given an array of unique non-negative integers, {A1,…,An}, and a positive integer, X, write a function that finds all pairs of numbers in the array that sum to X.”

My implementation was:

java public int method(int[] array, int sum) { int result = 0; if (array.length <= 1) { return 0; } for (int i = 0; i <= array.length; i++) { // Potential off-by-one error here for (int j = i + 1; j < array.length; j++) { // Corrected 'lenght' to 'length' if (array[i] + array[j] == sum) { result++; } } } return result; }

I solved this in 15-20 minutes. Initially, I forgot to add the second for-loop. When the interviewer asked how the second number was being checked, I added it. Her second question was: “Take a singly-linked list and reorder it in such a way that the first element points to the last element, the second element points to the second-to-last element, and so on.”

Since I only had 20 minutes left, I started designing the algorithm in pseudocode. After I had an algorithm, I began coding it, but we ran out of time.

The second coding interview was with another engineer on the team, and he seemed pretty friendly. He started by asking about my past experience and where I worked. I mentioned I previously worked at Expedia, and he asked about that. After about 10 minutes of conversation, he moved to a coding question and asked: “You are given an integer array nums sorted in ascending order (with distinct values) and an integer target. Suppose nums is rotated at some pivot unknown to you beforehand (i.e., [0,1,2,4,5,6,7] might become [4,5,6,7,0,1,2]).”

I initially started with a very basic brute-force implementation. He then asked if I could improve it by utilizing the fact that the array is sorted. I told him I could use binary search. Again, I started with pseudocode for the algorithm and was able to code it. I checked my code later in an IDE, and it worked. Below was my implementation:

java public int method(int[] nums, int target) { // Return if nums is null or its length is 0 if (nums == null || nums.length == 0) { return -1; } int pivot = nums.length - 1; while (pivot > 0 && nums[pivot - 1] < nums[pivot]) { pivot--; } if (pivot == 0) { return binarySearch(nums, 0, nums.length, target); } int start; int end; if (target == nums[pivot]) { return pivot; } else if (target >= nums[0] && target <= nums[pivot - 1]) { start = 0; end = pivot; } else { // Find target in the second part start = pivot; end = nums.length; } return binarySearch(nums, start, end, target); }

private static int binarySearch(int[] nums, int start, int end, int target) { int i = start; int j = end - 1; while (i <= j) { int mid = (i + j) / 2; if (target > nums[mid]) { i = mid + 1; } else if (target < nums[mid]) { j = mid - 1; } else { return mid; } } return -1; }

This took about 40 minutes to solve entirely. He asked a few questions about the algorithm and then asked if I had any questions.

Next, the hiring manager asked behavioral questions. This was mostly a conversational interview, and she seemed friendly too. Finally, it was system design, and I was asked to design a chat app. The interviewer was also very friendly and liked my implementation.

About two weeks later, the recruiter called and told me the team had decided to move forward with someone else. However, what she told me didn’t make sense. She said one interviewer mentioned I was struggling with the algorithm. This could have been the second question of the first round, but I wasn't struggling; I had the algorithm but not enough time to complete it. She also said the other person couldn't ask a second question, but this was incorrect, as the second interviewer specifically said he only had one question. I believe either they confused me with someone else or didn't relay the feedback properly. I saved my code and ran them in my IDE post-interview, and they worked.

Experience-wise, I enjoyed the process. The first interviewer wasn’t friendly at all, but the rest of them made the experience good. Good luck to you.

Questions

Given an array of unique non-negative integers, {A1,…,An}, and a positive integer, X, write a function that finds all pairs of numbers in the array that sum to X.

You are given an integer array nums, sorted in ascending order (with distinct values), and an integer target. Suppose that nums is rotated at some pivot unknown to you beforehand (i.e., [0,1,2,4,5,6,7] might become [4,5,6,7,0,1,2]).

Take a singly-linked list and reorder it in such a way that the first element points to the last element, the second element points to the second-to-last element, and so on.

Was this helpful?

Interview Statistics

The following metrics were computed from 79 interview experiences for the Expedia Group Software Engineer role in United States.

Success Rate

23%
Pass Rate

Expedia Group's interview process for their Software Engineer roles in the United States is very selective, failing most engineers who go through it.

Experience Rating

Positive49%
Neutral34%
Negative16%

Candidates reported having very good feelings for Expedia Group's Software Engineer interview process in United States.

Expedia Group Work Experiences