Company Introduction
Google’s process is one of the most transparent among major tech companies. It’s lengthy and can be stressful, but you rarely get ghosted or rejected for unclear reasons.
Application & Recruiter Outreach
· Early February
I submitted three applications for Software Engineer, Early Career, via the Google Careers portal.
· Initial Outcome
All three were rejected after about a week. I’d previously applied via referral for other roles and was similarly rejected before any interviews.
· Surprise Outreach
Three days after those rejections, an external recruiter contacted me to discuss my background and aspirations. After a five‑minute conversation, she felt I was a strong fit and scheduled my phone screen once I confirmed my preferred language and availability.
Interview Process
Round 1:Phone Screen
· Preparation
I asked for three weeks to prepare; Google scheduled the screen in two. I re‑reviewed the Neetcode 250 list and did mock interviews with two friends (one Google engineer, one Amazon engineer).
· Questions
1. Introductions and background questions
2. One “easy–medium” algorithmic problem (string manipulation plus basic data structures)
Here, my approach is to use two pointers, moving from the beginning and end toward the middle. If the characters at both ends are not equal, try deleting one character on the left or right, then check if the remaining part is a palindrome. If either method can make it a palindrome, return True.
3. One “medium” follow‑up adding an extra data‑structure requirement
Round 2:Technical 1
· Question:
A 2D dynamic‑programming problem on a matrix with constraints. I recognized the DP pattern and used tabulation.
My approach is to compress the two-dimensional state array into a stack and use data structures (such as balanced trees and monotonic queues) to accelerate state transitions. I also use recursion and caching to avoid redundant calculations.
Round 3:Technical 2
· Question
An unbounded‑knapsack‑style DP hidden behind a creative problem statement.
My approach is to consider the array being used, which can reduce the space complexity, requiring only two rows to solve the problem. The optimized method is actually the same as the original dynamic programming array method, except that the dp is changed to one row, and each time the current array is initialized with a curRow, after updating the current array, the dp is rewritten as the current array, and the next row is updated.
· Follow up:
design questions about operational optimization
Round 4:Googliness (Behavioral)
· Questions:
- Tell me about a time you had to handle a project that was late
- Tell me about how you work with difficult people/stakeholders I did not prepare any case studies in advance for the interview. I used the STAR method on the spot to share real stories about my past experiences and the lessons I learned from them.
Round 5:Technical 3
· Question:A variation on KMP
My idea is to find the common prefix and suffix of the matching strings, and the position pointed to by j is after the common prefix and suffix found.
· Follow up:Asked to optimize
Here I discussed the double pointer method, but there was a problem with the code. I immediately discovered the edge case, but by then I had already been asked to stop coding.
Later Situation & Suggestions
The recruitment consultant reported that the feedback from the fifth round of interviews was mixed, and there was a risk of being rejected by HC. HC then added another round of technical interviews, and I requested an extra week to review data structures and algorithms.
It is important to have a solid foundation of basic knowledge. Core data structures and algorithms (DSA) and system design skills are sufficient to handle the interview process. When preparing, try to practice using high-quality resources, such as Neetcode 250.
Whether you are a beginner or an experienced developer, finding the right learning resources is crucial. Let ProgramHelp help you achieve a better professional future.
Top comments (0)