Just ended Google SWE VO two rounds of interviews, very happy to pass! The overall experience was great, both interviewers were friendly and the process was efficient. I specially compiled it into an interview experience to share with you. I hope it will be helpful to students who are preparing for interviews with Google or similar large companies.

First round
The interviewer was an Indian engineer. After introducing himself, the atmosphere was harmonious and there was no pressure. It started with a brief chat about the background, and then went directly to the technical inspection, focusing on the resource allocation algorithm, and examined the core knowledge points: how to deal with overlapping resource management, converting business problems into algorithmic problems, algorithm foundations, boundary processing capabilities, and code implementation quality.
Coding question: Car rental capacity planning
Problem description: Given all the car rental orders last year (each order includes a car pickup time and a car return time), find the minimum number of vehicles that meet all needs, and give an example of vehicle allocation.
Problem-solving ideas:
- It is essentially a classic maximum overlapping interval problem: the minimum number of vehicles required is equal to the maximum number of orders rented at the same time at any time.
- Specific implementation:
- Two events are generated for each order: pickup time (+1) and return time (-1).
- Sort all events by time, and prioritize vehicle return events at the same time (to ensure that the vehicle can be reused).
- Scan the event line and maintain the number of vehicles currently in use in real time. The peak value recorded is the minimum number of vehicles.
- Vehicle allocation plan: maintain a pool of available vehicles, allocate one from the pool when picking up a vehicle, and recycle it into the pool when returning a vehicle.
- Boundary processing: When the return time ≤ the pick-up time of the next order, the vehicle can be reused immediately.
- Time complexity: O(n log n) (mainly from sorting), space complexity: O(n).
Follow-up: Determine whether two car rental time periods overlap (classic interval overlap judgment, pay attention to boundary conditions).
The entire interview process went smoothly. The interviewer recognized my ideas and code quality, and the boundary cases were also handled well. The difficulty is moderate and it is a classic range/greedy type question from Google.
Second round
The interviewer this time was an American engineer who spoke very fluently. The communication experience was very good. It felt like discussing technical issues with colleagues. After a brief self-introduction, I first took Behavioral Questions and then entered Coding.
BQ part:
- Give an example of convincing team on technical solution.
- Describe a case of identifying and resolving technical risk.
I prepared answers based on the STAR structure based on my previous project experience. The interviewer listened very carefully and asked for a few details, and the overall communication was smooth.
Coding part(Two questions, done consecutively):
Coding 1: Find the continuous subarray with the largest product in the integer array (Maximum Product Subarray, similar to LeetCode 152)
Ideas:
- Because of the presence of negative numbers, the maximum product value may come from a segment of positive numbers or the result of multiplying two negative numbers.
- Maintain two variables: the current maximum product (curMax) and the current minimum product (curMin).
- When iterating through the array, three values are compared for each position:
- Current number itself
- Current maximum product × current number
- Current minimum product × current number
- Update the new curMax and curMin with these three values while tracking the maximum globally.
- Cleverly handle the situation of negative number flipping, the code is concise and efficient.
Coding 2: Convert the given binary search tree (BST) into a sorted circular doubly linked list (Convert BST to Sorted Circular Doubly Linked List, similar to LeetCode 426)
Problem-solving ideas:
- Use the in-order traversal feature of BST: the result of in-order traversal is naturally an ascending sequence.
- During inorder traversal, a pointer to the tail node of the current linked list is maintained.
- Every time a new node is visited, a bidirectional connection is established with the previous node (prev.right = curr, curr.left = prev).
- After the traversal is completed, connect the head and tail nodes of the linked list to form a loop (head.left = tail, tail.right = head).
- Completely convertible in place, no additional space required.
Follow-up:
- Add variables to track node positions during the traversal process while keeping the core logic unchanged.
- If the original tree pointer cannot be modified, how to achieve conversion?
- If you need to convert to a circular doubly linked list in descending order, which traversal method should be used? (Answer: Reverse in-order traversal, that is, right-root-left)
Both coding tasks are relatively classic. I had prepared similar questions in advance, so I wrote them more smoothly. The interviewer expressed satisfaction with the clarity of ideas and code implementation.
Some landing experience
The Google VO was able to pass so smoothly this time, which is really inseparable from programhelp’s assistance throughout the process. Whenever my thoughts are slightly stuck or I need to quickly confirm the follow-up direction, they will give me prompts and ideas in real time, and my thoughts will flow smoothly all of a sudden, which feels very natural. If you are also looking for VO from major companies such as Google and Meta, you can really try programhelp. Interview assistance . Real experts in North America will help you online manually, giving you ideas in real time, reminding you of boundaries, and helping you clarify your expressions. It’s much more reliable than AI!
Students in need can go and have a look. I wish everyone a smooth landing~