My Microsoft On-Campus Internship Interview Experience
Summary
I cleared Microsoft's on‑campus internship interview process—online assessment and two technical rounds—and received an offer.
Full Experience
My Microsoft Internship Interview Experience
Sharing how my Microsoft on-campus internship process went, OA to offer. Nothing fancy, just how it actually happened.
Background
Microsoft came on-campus, we registered, and after resume + CGPA-based shortlisting, around 200 of us got through to the OA.
OA
75 minutes, two questions — basic and intermediate, different for everyone. Mine:
- Basic: Given an array, cost = sum of (curr − prev)² over consecutive elements, 0-indexed starting from index 1. You get one move — insert any value anywhere in the array — to minimize the cost after that move.
- Intermediate: Asteroid Collision.
Solved both in 16 minutes. Interview invites came 3 days later.
Round 1
Right before the round, my laptop's mic and speaker stopped working. I didn't have earphones with me, so after trying to fix it and then borrowing a pair from a friend, I joined about 20–25 minutes late.
I apologized, and since we'd already lost time, the interviewer went straight into the question — LeetCode 79 (Word Search), a fairly standard one.
I asked a clarifying question, explained my approach, then coded it, checking in along the way. It ran fine, I walked through an edge case, and then got some tough follow-up questions which I managed to answer. Everything — coding, explanation, follow-ups — was done in 25 minutes. Feedback at the end was positive.
Got the Round 2 link about 20 minutes later, scheduled 45 minutes out, so I went back to my hostel for headphones and returned.
Round 2
This interviewer was a Principal Engineer. After introductions, he asked about my area of interest and I ended up talking about one of my projects for about 10 minutes.
Then he gave a problem with very little detail: a list of tuples, where each tuple says the first racer finishes before the second. Then three questions:
- Is the data valid?
- Is the data complete?
- Who finishes first and last?
He asked me to restate the problem myself before starting. My approach was a bit different from the usual way, and after reviewing my code he said, "Don't talk while you code, I'll just review it after."
I solved questions 1 and 3 and explained my reasoning. On question 2, with about 15 minutes left, I kept jumping between different approaches — all correct, but not optimal — and missed the simpler idea I should've seen. He told me to just stay quiet for a bit and think instead of talking it out. After about two minutes I got it, explained why it worked, and then went through the implementation.
He'd mentioned from the start that the round was about thought process, not implementation. At the end he said he'd pass feedback to HR, and when I asked what I could improve, he said: when you're stuck under pressure, stop talking and focus on thinking instead of explaining — and that looking for edge cases was a good habit to keep up.
Result
Got the offer the next day.
One extra detail: our campus had actually been told Microsoft wasn't visiting that year since their slot was full, but they came anyway. And despite the mic/speaker issue costing me 20+ minutes in Round 1, it still worked out.
(refined wording using AI)
Interview Questions (4)
Array Cost Minimization with One Insertion
Given an array of integers, define the cost as the sum of the squares of the differences between each pair of consecutive elements, i.e., cost = Σ (arr[i] - arr[i‑1])² for i ≥ 1. You are allowed to perform exactly one move: insert any integer value at any position in the array (including at the ends). After the insertion, the cost is recomputed using the new consecutive pairs. Find the insertion value and position that minimize the resulting cost.
Asteroid Collision
You are given an array of integers representing asteroids moving along a one‑dimensional line. Positive numbers move to the right, negative numbers move to the left. When two asteroids moving in opposite directions meet, the smaller (in absolute value) one explodes; if they are equal, both explode. The process continues until no more collisions occur. Return the state of the asteroids after all collisions.
(Exact problem statement as on LeetCode 735.)
Word Search (LeetCode 79)
Given a 2‑D board of characters and a word, determine if the word exists in the grid. The word can be constructed from letters of sequentially adjacent cells, where adjacent cells are horizontally or vertically neighboring. The same cell may not be used more than once.
Input Example
board = [
['A','B','C','E'],
['S','F','C','S'],
['A','D','E','E']
]
word = "ABCCED"
Output: true
Racer Ordering from Pairwise Finish Information
You are given a list of tuples (a, b) where each tuple denotes that racer a finishes before racer b in a race. Based on this information, answer three questions:
- Is the data valid? – i.e., does the set of relations contain any cycles that would make the ordering impossible?
- Is the data complete? – i.e., does the set of relations define a total order among all racers (every pair of racers is comparable)?
- Who finishes first and last? – Identify the racer that is guaranteed to be first and the racer that is guaranteed to be last according to the given relations.
You may assume racer identifiers are unique integers or strings.