How I got into Microsoft as a Software Engineer
Introduction

I applied for the Software Engineering (SWE) role at Microsoft when I was in my final year at Ashesi University, studying Computer Science. I shot my shot in Aug 2019 and got the offer by Dec, before the year ended. In this blog post, I'll share what the experience was like for me since an increasing number of people continue to ask. Hopefully, this gives you insight into my process and helps in yours 🙂
My Recruitment Process
Applied for the job posting for university graduates — Aug 12, 2019
My friend and long-time mentor, Kwabena Boohene, DM'd me about this opportunity, and following his prompt, I sent in my application. The link was similar to this job opening: Software Engineering: Full Time Opportunities for University Graduates, United States in Redmond, Washington, United States | Engineering at Microsoft

Attended phone call interview — Aug 15, 2019
Shortly after I applied, a recruiter got back to me to arrange a phone interview. On that phone call, the recruiter asked some standard behavioural interview questions and some technical questions:
- Explain recursion like I'm five.
- The Nine-Coin Problem
- Tell us about yourself
- Why should the company pick you?
- Why did you pick Microsoft?
- Why the Software Engineer role in particular?
Took online coding test on Codility — Sep 02, 2019

After the pre-screening phone call, I got a link to take an online coding test on Codility. I had 65 minutes to solve three problems with increasing difficulty in any language of my choosing.
To be honest, I don't remember exactly what the questions were. But inferring from the solution code I wrote, the problems were something like:
- Days After: Given a day of the week (e.g. Fri) and a number of days after, return which day that falls on. For example, 3 days from "Wed" is "Sat", 20 days from "Wed" is "Tue."
- Insert a: Given a string, insert as many "a"s as possible such that you don't have three "a"s following each other, and determine the number of insertions you can make. For example; "bbb" → "aabaabaab" - 6 insertions, "ba" → "aabaa" - 3 insertions.
- Max Value: Given a number in string form, insert the digit '5' at a position that produces the maximum number value (negative numbers require extra tricks). For example, 25 → 525, 600 → 5600, -999 → -5999, and -397 → -3597.
Turned up for in-person interviews — Dec 04, 2019

After I got past the coding test, I got an email that I had made it to the next stage. This next stage involved the well-known SWE whiteboard interview. For most of the day, I had four back-to-back interviews with different senior engineers from Microsoft (15 min break in-between).
Each interview involved standard situational/behavioural questions and technical algorithms problems to solve. Some interviews felt great where I felt a connection with the interviewer, while others felt…meh.
The coding challenges were reasonable:
- Problem 1: Concatenate strings with a limited buffer
- Problem 2: Evaluate a postfix expression (string): https://www.geeksforgeeks.org/stack-set-4-evaluation-postfix-expression/
- Problem 3: Determine if an input (string) is a palindrome: https://www.geeksforgeeks.org/python-program-check-string-palindrome-not/
- Problem 4: Design and implement spell-check for Microsoft Word
Also, it'll be great if you practice solving some problems with friends and colleagues. That made things fun.
Got the job offer — Dec 17, 2019
A few weeks after, I got a call from a recruiter and got the good news. I guess I did alright in the interviews, hehe.

And the rest is history.
Conclusion
I hope this provided some value to you. All the best! 🙂