I am sharing my Microsoft interview experience. I hope this helps others.
I have four years of experience and interviewed for a backend engineer (Java) position for a large system.
The recruiter contacted me on LinkedIn. We had a 30-minute call discussing technologies I've worked with. I was then invited to complete an online assessment.
Online Assessment:
I passed the Codility test and moved to the onsite interviews.
Onsite Interviews: Round 1: Designing a better API class based on an existing one, and a discussion on threading and CompletableFuture. Round 2: Three tree questions (variations of each other). Round 3: Serialization (binary, nary). Round 4: Coin change (with variations), and resume discussion.
All interviewers were nice and welcoming. There were four one-hour rounds. Each problem required compilation and execution. I also answered some behavioral questions. I was excited about transitioning from using the cloud to building components within it.
I felt I performed well in rounds 2 and 3. Round 1 wasn't my best, but my approach and thought process were sound. In round 4, I started with brute force but persevered until I found a solution.
Tips: Talk aloud throughout the interview, clarify requirements, and practice debugging without a debugger.
I received a congratulatory email after the interview, a verbal offer in days, and a formal offer in days. The entire process took days.