Microsoft Windows 365 Software Engineer II Interview Experience

Microsoft Windows 365 / AVD Software Engineer II in three rounds: a stack calculator, best-fit Cloud PC host placement, and a pooled-desktop connection broker.

MicrosoftSoftware Engineer IIUpdated Oct 8, 20262 min read

Interview Experience | Windows 365 / Cloud PC | πŸ”₯πŸ”₯ | Microsoft

2026 (Sep) Software Engineer II @ Microsoft β€” Redmond, WA β€” Virtual β€” 3 rounds | 😐 Neutral | Medium-Hard

Windows 365 / Azure Virtual Desktop team: a phone screen plus two virtual onsite rounds.

Round 1 β€” Phone Screen

Basic Calculator II: a string with only non-negative integers and + - * /, no parentheses, return the value. I wrote it in Python with a stack of terms, combining with the top of the stack right away on * or /. Running "14-3/2" by hand, I noticed that -3/2 gives -2 in Python, so I changed it to round toward zero. The follow-up was adding parentheses. I only described pushing onto the stack when you hit (, and time ran out halfway through the code.

Round 2 β€” Coding

The problem was wrapped in Cloud PCs. There is a set of hosts, each with a different number of free vCPUs. A Cloud PC that needs k vCPUs goes to the host that has enough room and the least left over, and hosts also have to support release. Python has no TreeMap, so the interviewer let me assume a SortedList of (free, host_id) and use bisect to find the first host that fits. Every update has to remove and then reinsert. The first time I left out the remove, and only caught it when the same host showed up twice while running an example.

Follow-up: add memory as a second dimension. I only said to sort by vCPU and scan forward checking memory. The interviewer asked whether the worst case goes back to O(n), and I didn't come up with anything better.

Round 3 β€” System Design

Design connection assignment for a pooled host pool: a user clicks connect, and a broker picks one session host from the pool.

I started with breadth-first and depth-first assignment and when you would use each. The interviewer then pushed on three things: a user who disconnects and reconnects has to land back on the same host (look up the user's existing session before assigning); a host being patched goes into drain mode and takes no new connections; and two brokers can give the last free slot to two people at the same time (update the session count with an etag-conditioned write, and move to the next host if it fails). The last question was a host whose heartbeat looks fine but whose connections keep failing. I only got as far as taking it out based on failure rate, and didn't finish on thresholds or on pulling healthy hosts by mistake.