- STEP is Google's internship for early undergraduates (typically 1st/2nd year). The SWE internship targets students closer to graduation (typically pre-final year of B.Tech, and master's/PhD students).
- Commonly reported process in India: application → online coding challenge → two ~45-minute technical interviews → host matching → offer.
- Applications usually open months before the summer internship, often in the second half of the previous year. Check Google's careers site regularly and set alerts; eligibility and dates change each cycle.
- Interviews focus on data structures and algorithms with clear communication. STEP interviews are pitched at the level of a first- or second-year student; SWE intern interviews go deeper.
- Clearing interviews isn't the end: an offer usually depends on host matching with a team.
A Google internship is one of the most sought-after outcomes for Indian CSE students, and for good reason: it's a strong resume signal, the work is real, and it can lead to a return offer. It's also a process with its own specific shape: an early application window, an online challenge, two technical interviews, and a host-matching step that surprises many first-time applicants.
This guide explains the two main Google engineering internships open to students in India, who is eligible, the commonly reported timeline and process, a fully solved Google-style problem, and a ten-week preparation plan. Google adjusts its programs every year, so treat this as a map and check the current listings on Google Careers for exact rules.
STEP vs SWE Internship: Which One Is for You?
| Aspect | STEP internship | SWE internship |
|---|---|---|
| Full name | Student Training in Engineering Program | Software Engineering Intern |
| Target students | Early undergraduates, typically 1st or 2nd year of a bachelor's in CS or related | Typically pre-final-year bachelor's students, and master's/PhD students |
| Expected background | Basic programming and core data structures; no prior internship expected | Solid DSA, projects; prior internships help but aren't required |
| Interview difficulty | Easier to moderate; focuses on fundamentals and approach | Moderate to hard; similar style to new-grad interviews but scoped to an intern |
| Program design | Project work plus structured training and mentorship for early-career students | Project work as a member of an engineering team |
| Typical duration | Around 10–12 weeks in summer | Around 10–12 weeks in summer (some cycles have other terms) |
| Typical next step | Return as a SWE intern; strong signal for future applications | Possible return/full-time offer depending on performance and headcount |
If you're in first or second year, STEP is your target. If you're in pre-final year, you're applying for the SWE internship. Master's students apply for SWE internships as well, often with a broader range of teams available. Google may also run other student programs (research internships, specific university or diversity-focused programs) in some cycles; they'll appear on the same careers site.
Google Internship Eligibility in India
Every posting has an explicit "Minimum qualifications" section. Read it word by word, because applications that don't meet these are typically filtered automatically.
STEP: what to check
- Year of study and graduation window. Postings specify the graduation years they accept, which effectively limits the program to first- or second-year students in that cycle.
- Degree and field. Typically a bachelor's in Computer Science or a closely related technical field.
- Enrollment. Usually currently enrolled full-time in a degree program in India.
- Programming experience. Experience in at least one general-purpose language such as C++, Java or Python.
- Cycle-specific criteria. Some years have had additional eligibility criteria. Don't rely on last year's rules or a senior's memory; read the current posting.
SWE internship: what to check
- Currently pursuing a bachelor's, master's or PhD in CS or a related field, with the graduation year window stated in the posting.
- Experience in one or more general-purpose languages, and familiarity with data structures and algorithms.
- Ability to complete the internship in the stated period and location (and return to your degree program afterwards).
- Preferred qualifications often mention projects, internships, open-source or competitive programming, but these aren't hard filters.
Google Internship Application Timeline (Typical)
The timeline is the part students most often get wrong. Google's summer internship applications typically open well before the summer, often in the second half of the previous year, and some postings close once enough applications arrive. Use this as an approximate pattern only.
| Approximate period | What tends to happen |
|---|---|
| Mid to late year (e.g. August–October) | SWE intern and STEP postings for the next summer often appear; some on-campus processes run around this time at certain colleges |
| Following weeks | Online challenges sent to shortlisted applicants |
| Late year to early next year | Technical interviews, then host matching |
| Early next year | Offers after successful host matching (matching can take weeks) |
| Summer (around May–August) | Internship |
Practical rule: be application-ready (resume, transcript, DSA level) by the middle of the year before your target summer, and check Google's careers site weekly from July. Apply within days of a posting going live.
How to Apply for Google STEP and SWE Internships
- Create a Google Careers profile and set job alerts for "intern" roles in India (search "STEP Intern" and "Software Engineering Intern" with location India).
- Prepare a one-page resume. For STEP: education, 1–3 projects (course projects count), programming languages, any contests or clubs. For SWE: projects with results, previous internships, contest ratings, open-source. Our fresher resume guide has the bullet formula and template.
- Keep an unofficial transcript ready as a PDF in case the application asks for it.
- Apply through the official posting. Some campuses also have on-campus Google processes; if yours does, follow the placement cell's instructions too.
- Seek a referral from a Google engineer if you know one, ideally an alumnus. A referral typically ensures a recruiter reviews your application; it doesn't skip any interview. See how to get referrals at Google, Microsoft and Amazon.
- Answer any application questions (preferred languages, availability) accurately.
Google Internship Selection Process, Stage by Stage
Resume screen
Recruiters review applications against minimum qualifications and look for evidence of coding ability: projects, contests, prior internships.
Online challenge
Commonly reported for many Indian applicants: a timed online coding test, often around 2 problems in about an hour. Scored on hidden tests.
Technical interviews
Commonly two interviews of about 45 minutes each, usually over video with a shared code editor. DSA problems; you're expected to talk through your approach and write working code.
Host matching
Your profile goes to teams looking for interns. You may have short calls with potential hosts. A match leads to an offer.
The online challenge
The online challenge is the first real skill filter. Expect problems in the easy-medium to medium-hard range: arrays and strings, hashing, sorting with a twist, greedy, BFS/DFS on grids or graphs, and some DP. Each problem is scored on hidden test cases, so efficiency and edge cases matter. Our guide on clearing online coding assessments covers constraint reading, partial scores and time management.
The technical interviews
Google's interviews are known for emphasising problem-solving process over memorised answers. A typical 45-minute interview for an intern:
- ~2–5 minutes: introductions.
- ~35 minutes: one problem, sometimes with a follow-up that extends it (for example, "now what if the input doesn't fit in memory?" or "what if there are updates?"), or two smaller problems.
- ~5 minutes: your questions for the interviewer.
What interviewers commonly evaluate:
| Signal | What it looks like in practice |
|---|---|
| Problem understanding | Asking clarifying questions about input size, edge cases and expected output before coding |
| Approach | Starting with a simple solution, analysing it, then improving; explaining trade-offs |
| Coding | Clean, correct, readable code in a plain editor (no autocomplete or compiler in many cases) |
| Testing | Walking through an example and edge cases by hand; finding your own bugs |
| Communication | Thinking aloud, responding well to hints |
| Complexity analysis | Correct time and space complexity, without being prompted |
STEP interviewers calibrate to what a first- or second-year student should know. They care more about how you reason and respond to hints than about advanced algorithms. For SWE interns, expect the full range of standard topics, including graphs and DP. Communication matters enormously in both; read how to think out loud in coding interviews.
A Solved Google-Style Interview Question
This is the kind of problem that fits a 45-minute intern interview: a clear statement, a brute force that's easy to find, an optimal solution that requires a pattern, and a natural follow-up.
Problem. Given a string s and an integer k, return the length of the longest substring that contains at most k distinct characters.
How a strong candidate talks through it
- Clarify. "Is the string ASCII or Unicode? Can k be 0? Can the string be empty? Should I return the length or the substring?" (Assume: any characters, k ≥ 0, return length.)
- Brute force. "Check every substring and count distinct characters: O(n²) substrings, and with an incremental set per start index it's O(n²) overall. Fine for small n, too slow for 10⁵."
- Optimise. "If a window has more than k distinct characters, any larger window containing it does too. So I can use a sliding window: extend the right end, and when the distinct count exceeds k, shrink from the left. A hash map tracks counts."
- Complexity. "Each index enters and leaves the window at most once, so O(n) time. Space is O(min(n, alphabet size)), bounded by k + 1 keys in the map."
from collections import defaultdict
def longest_at_most_k(s, k):
freq = defaultdict(int)
left = best = 0
for right, ch in enumerate(s):
freq[ch] += 1
while len(freq) > k: # too many distinct: shrink
freq[s[left]] -= 1
if freq[s[left]] == 0:
del freq[s[left]]
left += 1
best = max(best, right - left + 1)
return best
int longestAtMostK(const string& s, int k) {
unordered_map<char, int> freq;
int left = 0, best = 0;
for (int right = 0; right < (int)s.size(); right++) {
freq[s[right]]++;
while ((int)freq.size() > k) {
if (--freq[s[left]] == 0) freq.erase(s[left]);
left++;
}
best = max(best, right - left + 1);
}
return best;
}
Dry run: s = "eceba", k = 2
| right | char | Window after shrinking | Distinct | best |
|---|---|---|---|---|
| 0 | e | "e" | 1 | 1 |
| 1 | c | "ec" | 2 | 2 |
| 2 | e | "ece" | 2 | 3 |
| 3 | b | "eceb" has 3 → drop e, c → "eb" | 2 | 3 |
| 4 | a | "eba" has 3 → drop e → "ba" | 2 | 3 |
Answer: 3 ("ece"). With k = 0, every character immediately triggers shrinking, so the window stays empty and the answer is 0, which is correct.
Likely follow-ups
- "Return the substring itself." Track the start index when you update
best. - "What if the string is a stream and you can't store it?" You still need the characters inside the current window, so store only the window (for example in a deque) rather than the whole stream.
- "Exactly k distinct?" Use atMost(k) − atMost(k − 1) for counting substrings, a classic trick worth knowing.
For more on this pattern, see sliding window problems explained.
Practice Question Themes for Google Internships
Rather than hunting for "leaked" questions (which Google actively retires), practise the themes that come up repeatedly in candidate reports. For each theme, a few representative practice problems:
| Theme | Representative practice problems | Priority (STEP / SWE) |
|---|---|---|
| Arrays, strings, hashing | Two Sum, Group Anagrams, Longest Substring Without Repeating Characters | High / High |
| Two pointers and sliding window | Container With Most Water, Minimum Window Substring | High / High |
| Sorting and binary search | Merge Intervals, Search in Rotated Sorted Array, binary search on answer | Medium / High |
| Stacks and queues | Valid Parentheses, Daily Temperatures (monotonic stack) | Medium / High |
| Trees | Max depth, level order traversal, LCA, validate BST | Medium / High |
| Graphs and grids | Number of Islands, Rotting Oranges, Course Schedule | Medium / High |
| Recursion and backtracking | Subsets, Permutations, Word Search | Medium / Medium |
| Dynamic programming | Climbing Stairs, Coin Change, Longest Increasing Subsequence, Edit Distance | Low–Medium / High |
| Heaps | Kth Largest Element, Merge k Sorted Lists, Top K Frequent | Low / Medium |
Our explainers for several of these are a good place to start: Number of Islands, Merge Intervals, and Coin Change.
A 10-Week Preparation Plan for Google Internships
This plan assumes 10–12 hours a week alongside college. STEP aspirants can stop after week 7 and spend the remaining time on mocks; SWE aspirants should do all ten weeks.
| Week | Topics | Output by end of week |
|---|---|---|
| 1 | Language fluency, complexity analysis, arrays and strings | 20 easy problems; able to state complexity of any loop structure |
| 2 | Hashing, two pointers | 15 problems, 5 of them medium |
| 3 | Sliding window, prefix sums, sorting | 15 problems; write sliding window template from memory |
| 4 | Binary search (including on answer), stacks, queues | 15 problems; first timed 2-problem set (60 minutes) |
| 5 | Recursion, backtracking, linked lists | 12 problems; explain recursion trees aloud |
| 6 | Binary trees and BSTs | 15 problems; iterative and recursive traversals |
| 7 | Graphs: BFS, DFS, grids, topological sort | 12 problems; two mock interviews with a friend |
| 8 | Heaps, intervals, greedy | 12 problems; second timed set |
| 9 | Dynamic programming: 1-D, 2-D, knapsack-style, strings | 12 problems; explain state and transition before coding |
| 10 | Mixed review, mocks, weak areas | 3 mocks in a plain editor without autocomplete; revisit every failed problem |
Practise like the real interview
- Solve in a plain text editor or a shared doc, not an IDE with autocomplete. Many candidates are surprised how much they rely on it.
- Explain out loud, even when practising alone. Record yourself occasionally.
- Always finish with a manual dry run and complexity analysis.
- Do at least 3–4 mock interviews with someone who'll interrupt and give hints, so taking hints gracefully becomes natural. See mock interview strategy.
Host Matching and the Offer
Host matching is the stage most specific to Google, and it causes the most anxiety. After you clear the interviews, your profile (resume, interview feedback, preferences) is shared with teams that have intern projects. A team interested in you may set up a short conversation, often called a host matching call.
How to handle a host matching call
- It's a two-way conversation, not another coding interview. The host wants to know whether you'd be a good fit for their project and whether you're excited about it.
- Prepare a crisp introduction of yourself and your projects. Our guide to answering "tell me about yourself" has samples for students.
- Ask about the project: what you'd build, the tech stack, what success looks like, how mentoring works.
- Show genuine interest and willingness to learn unfamiliar technologies. Interns often work in stacks they haven't used before.
Matching can take a while, and timing depends on how many projects and candidates are in the pool. Some candidates who clear interviews aren't matched in a given cycle, especially late in the season. If it's taking long, a polite check-in with your recruiter is fine.
Stipend and logistics
Google doesn't publish intern stipends. Based on student reports and public sources such as Glassdoor and AmbitionBox, Google's India intern stipends are among the highest in the market, often reported above ₹1 lakh per month, with exact figures varying by year and program. Treat these as approximate; the offer letter is what counts. Offers may also include relocation or travel support depending on the cycle and location.
If You Don't Get a Google Internship
Google internships are extremely competitive, and many strong students don't get one. That's not a verdict on your ability, and there are excellent paths forward.
- Apply again next cycle. STEP applicants can apply for the SWE internship later. Interview experience from one cycle makes the next one much easier.
- Get an internship elsewhere. A strong internship at a product startup or another large company makes your next Google application more competitive. See our internship guide for CSE students for the full landscape.
- Do open source. Programs like Google Summer of Code (an open-source program, not an internship at Google) give you public, reviewed work.
- Aim for new-grad roles. Many Google engineers in India joined as new grads or after a few years elsewhere. The Google India SDE interview guide covers that path.
Google's internship process rewards students who start early, apply the week postings open, and practise solving problems out loud in a plain editor. Do those three things consistently, and you'll give yourself a real shot from any college.
Frequently Asked Questions
Prepare for Google-Style Interviews
Prepflix's DSA programme and mock interviews train the clear-thinking, communicate-as-you-code style that Google internship interviewers look for.
Explore the Prepflix Course →