Microsoft SWE II, Frontend, Oct 2026
- Location
- Redmond area
- Posted
- 30 Oct 2026
Summary
I interviewed for a Software Engineer role at Microsoft in Redmond, completing a 4‑round interview loop that included a frontend system design, a project deep dive with coding, a second coding round, and a hiring manager session with SQL and DP problems.
How it went
Role: Software Engineer, IC3, Frontend-heavy Full Stack, Redmond area Timeline: About 2 weeks from recruiter kickoff to the final round Format: Recruiter call, then a 4-round loop (~60 min each) on HackerRank. The recruiter described it as 2 coding, 1 system/UX design, and 1 hiring manager round. Topics the recruiter listed: TypeScript/JavaScript, React architecture, accessibility, engineering fundamentals, and data-rich seller-facing UIs.
1. Frontend / UX system design (~60 min, whiteboard on HackerRank)
- Design an internal web app where employees view personal financial records (a summary view plus a long, searchable history). Tens of thousands of users, thousands of records each.
- What they asked about:
- Dashboard layout and what to show "at a glance," and why
- Table design: columns, search/filter, sort order, drill-down to details
- React architecture: server cache vs component state vs URL state, and derived vs stored data
- Client vs server pagination, and virtualization
- Partial failure: one of two APIs fails for some rows. How do you show it and let the user retry?
- Accessibility: keyboard flow, screen reader announcements for page-level and row-level errors, labels, toast behavior
- Prep:
- GreatFrontEnd front-end system design questions ("Design a data table," "Design a news feed")
- TanStack Query docs on server state
- WAI-ARIA live regions and the
aria-describedbypattern Promise.allSettledfor partial failures
2. Project deep dive + coding (~60 min)
- About 20 min on one project you owned end to end. Expect follow-ups on performance (large tables), API contracts with the backend, and the business outcome.
- About 20 min of coding: compute a total using a tiered/progressive rate table (think tax brackets or commission tiers). Tiers are given at runtime.
- Follow-ups covered complexity and how to optimize for repeated queries (precomputing cumulative values per tier, caching).
- Prep:
- LeetCode 2303 "Calculate Amount Paid in Taxes" (very close in spirit)
- Prefix sums plus binary search on sorted ranges
3. Coding round 2 (~60 min)
- Standard frontend question, similar to one on greatfrontend.
4. Hiring manager round (ran ~2.5 hrs)
- Background, why you're leaving, why Microsoft, and how your experience maps to the team's domain (trust in financial numbers shown to users).
- Expect coding here too. I was told it would be behavioral and team fit, but it had 2 technical questions:
- SQL: join a transactions table with a rates table that only has start dates, and total the values per day in one currency. The key is deriving each rate's effective end date with a window function.
- DP: a minimum-count variant of a classic "make an exact total from given sizes, return -1 if impossible" problem. Watch for integer overflow in your DP array.
- Prep:
- Essentially don't trust what the recruiter tells you I guess. Cause the Hiring Manager can whimsically act on whatever he wants to do.
- LeetCode 322 "Coin Change"
- SQL window functions
LEAD()/LAG()withPARTITION BY, plus CTEs - DataLemur / LeetCode SQL 50 for "effective date range" joins
Overall
- The design and coding rounds were well structured, on topic, and on time. Interviewers were friendly, and the recruiter was clear and helpful.
- The team is very frontend and UX focused (dashboards for business users, accessibility, large financial datasets). UX thinking and accessibility matter as much as the code.
- Tips:
- Brush up on SQL and classic DP even for a frontend role. Any round can turn technical - essentially at the discretion of the hiring manager.
- Think at scale and talk about operational edge cases, not just correctness.
- Look up your interviewers on LinkedIn, and ask the recruiter for a per-round skill breakdown.
Questions asked (4)
- 01
Frontend/UX system design for financial records dashboard
System Design · Medium
Design an internal web application where employees can view personal financial records. The app should provide a summary view and a long, searchable history. Assume tens of thousands of users, each with thousands of records. Discuss dashboard layout, table design (columns, search/filter, sorting, drill‑down), React architecture (server cache vs component state vs URL state, derived vs stored data), pagination strategy (client vs server, virtualization), handling partial API failures, and accessibility considerations such as keyboard flow and screen‑reader announcements.
- 02
Compute total with tiered/progressive rate table
Data Structures & Algorithms · Medium
Given a set of tiers that define progressive rates (similar to tax brackets), compute the total amount for a value. The tiers are provided at runtime as a list of ranges with associated rates. The solution must handle large numbers of queries efficiently, suggesting pre‑computing cumulative values per tier or caching results.
- 03
SQL join with effective date ranges using window functions
SQL · Hard
Join a `transactions` table with a `rates` table that only contains a `start_date` for each rate. For each transaction, determine the applicable rate by deriving the rate's effective end date using window functions, then calculate the total value per day in a single currency.
- 04
Minimum‑count variant of exact total (DP) problem
Data Structures & Algorithms · Medium
Given a set of sizes (e.g., coin denominations), determine the minimum number of items required to make an exact total. Return -1 if it is impossible. Watch out for integer overflow in the DP array.
How they prepared
Prepared the system design portion with GreatFrontEnd questions like "Design a data table" and "Design a news feed", reviewed TanStack Query documentation for server state management, and studied WAI‑ARIA live regions and `aria-describedby` patterns for accessibility. For the tiered‑rate coding problem I practiced LeetCode 2303 (tax calculation) and reviewed prefix‑sum plus binary‑search techniques. For the SQL and DP sections I refreshed window functions (`LEAD`, `LAG`) with CTEs, and solved LeetCode 322 (Coin Change) while paying attention to integer overflow in DP arrays.