They ask all data structure questions. The Google Tech Dev Guide is good enough for preparation. I cleared all the coding rounds but failed the theoretical technical. Here are two questions that I managed to copy.
The interview is on Google Docs, not an editor. You share your camera and screen while typing in the doc, and they have the doc open at the same time.
ACTUAL INTERVIEW QUESTIONS and my solution
def print_sequence(N): def backtrack(remaining, sequence): if remaining == 0: print(sequence) return
if remaining < 0:
return
sequence.append(1)
backtrack(remaining - 1, sequence)
sequence.pop()
sequence.append(2)
backtrack(remaining - 2, sequence)
sequence.pop()
backtrack(N, [])
print_sequence(3)
print_sequence(1)
print_sequence(0)
def count_active_users(ranges, timestamp): count = 0 for r in ranges: if r[0] <= timestamp <= r[1]: count = count + 1 return count
import bisect
def preprocess_ranges(ranges): events = {} for start, end in ranges: events[start] = events.get(start, 0) + 1 events[end + 1] = events.get(end + 1, 0) - 1
sorted_times = sorted(events.keys())
counts = [] current = 0 for t in sorted_times: current += events[t] counts.append(current)
return sorted_times, counts
def query_active_users(sorted_times, counts, timestamp):
idx = bisect.bisect_right(sorted_times, timestamp) - 1 if idx < 0: return 0 else: return counts[idx]
input_ranges = [[0, 5], [6, 8], [2, 9], [4, 10], [3, 5]] sorted_times, counts = preprocess_ranges(input_ranges)
print(f"Active users at timestamp 11: {query_active_users(sorted_times, counts, 11)}")
print(f"Active users at timestamp 3: {query_active_users(sorted_times, counts, 3)}")
def test_active_users(): ranges = [[0, 5], [6, 8], [2, 9], [4, 10], [3, 5]] sorted_times, counts = preprocess_ranges(ranges)
assert query_active_users(sorted_times, counts, 6) == 3 assert query_active_users(sorted_times, counts, 0) == 1 assert query_active_users(sorted_times, counts, 3) == 3 # Corrected based on explanation assert query_active_users(sorted_times, counts, 5) == 3 # Users at the end of range assert query_active_users(sorted_times, counts, 9) == 2 # Users at the end of range assert query_active_users(sorted_times, counts, 10) == 1 assert query_active_users(sorted_times, counts, 11) == 0
ranges_overlap = [[1, 10], [2, 9], [3, 8], [4, 7]] sorted_times_overlap, counts_overlap = preprocess_ranges(ranges_overlap) assert query_active_users(sorted_times_overlap, counts_overlap, 1) == 1 assert query_active_users(sorted_times_overlap, counts_overlap, 5) == 4 assert query_active_users(sorted_times_overlap, counts_overlap, 10) == 1 assert query_active_users(sorted_times_overlap, counts_overlap, 11) == 0
print("All test cases passed!")
test_active_users()
The following metrics were computed from 33 interview experiences for the Google Test Engineer role in United States.
Google's interview process for their Test Engineer roles in the United States is extremely selective, failing the vast majority of engineers.
Candidates reported having very good feelings for Google's Test Engineer interview process in United States.