Google Web Solutions Engineer | L3
Summary
I recently interviewed with Google for the Web Solutions Engineer L3 role and am sharing my experience to help others. The interview process included coding, system design, web technologies, SQL, and behavioral questions across four rounds.
Full Experience
Round 1
I was asked to code a CSV Parser from scratch. Method signature looked like this - parse_csv(const string &input). We were supposed to return the contents of this CSV in an appropriate data structure of our choice. Focus was on code readability, and edge cases - quotes within quotes, nested commas, etc.
Round 2
There are N aliens in a galaxy far away. These aliens are living on some number of planets. We are also given an array friends, that contains list of pairs of friends living on the same planet. We are asked to find the number of ways two aliens can be sent to Earth such that both of them belong to different planets.
He then asked me about some web tech questions and CS fundamentals like virtual memory and how CPU handles multiple tasks at a time.
Round 3
You are given an integer array nums, such that each index i has a parent nums[i] in a tree. We are supposed to figure out if this array represents a valid tree or not.
This was followed by some questions on Web Tech - HTTP status codes, How to debug an API, how to optimize a slow website.
Round 4
This was an unusual round specific to this role. It was taken by the HM in which for the first 40 minutes, he asked me some SQL problems based on joins, aggregation, etc. He also expected me to know ranking functions which I wasn't aware of.
He then asked me to come up with a new feature for Google Maps in which we will show businesses the user would find interesting. I was supposed to come up with the Google platforms which could be used to do this and/or what features would be useful to make this recommendation.
He then asked me some behavioural questions on multiple deadlines and how I would manage them.
Interview Questions (5)
CSV Parser Implementation
I was asked to code a CSV Parser from scratch. Method signature looked like this - parse_csv(const string &input). We were supposed to return the contents of this CSV in an appropriate data structure of our choice. Focus was on code readability, and edge cases - quotes within quotes, nested commas, etc.
Aliens on Different Planets
There are N aliens in a galaxy far away. These aliens are living on some number of planets. We are also given an array friends, that contains list of pairs of friends living on the same planet. We are asked to find the number of ways two aliens can be sent to Earth such that both of them belong to different planets.
Validate Tree from Parent Array
You are given an integer array nums, such that each index i has a parent nums[i] in a tree. We are supposed to figure out if this array represents a valid tree or not.
Google Maps Business Recommendation Feature Design
He then asked me to come up with a new feature for Google Maps in which we will show businesses the user would find interesting. I was supposed to come up with the Google platforms which could be used to do this and/or what features would be useful to make this recommendation.
Managing Multiple Deadlines
He then asked me some behavioural questions on multiple deadlines and how I would manage them.