How I got into Microsoft as a Software Engineer

Introduction

Cover Image by Matthew Manuel | Unsplash
Cover Image by Matthew Manuel | Unsplash

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 🙂

Disclaimer
I went through the recruitment process three years ago, and there's a high chance that your experience may differ slightly. For example, your final set of interviews might be over video instead of in-person.

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

Tip
Create a concise 1-page resume that properly outlines your work experience, projects, and extracurriculars. Make sure it demonstrates that you have a strong background in creating/maintaining software and a good understanding of data structures and algorithms. This article was the most impactful for me at the time: How to write a killer Software Engineering resumé

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:

Tip
Prepare to answer some behavioural/situation interview questions. For example:
  • Tell us about yourself
  • Why should the company pick you?
  • Why did you pick Microsoft?
  • Why the Software Engineer role in particular?
Refer online for samples, like: 8 Behavioral Interview Questions Asked by Top Tech Companies

Took online coding test on Codility — Sep 02, 2019

Email showing codility invite

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.
Tip
Try some sample online coding tests to see what they feel like: HackerRank and LeetCode.

Turned up for in-person interviews — Dec 04, 2019

email for in-person interview

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:

Tip
Learn problem-solving with Data Structures and Algorithms: This is the most crucial point that I can't emphasize enough. I suggest taking a course or two if you have no background, and recommend the CRACKING the CODING INTERVIEW and something like Problem Solving with Algorithms and Data Structures using Python

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.

offer-email

And the rest is history.

Conclusion

I hope this provided some value to you. All the best! 🙂

Tip
There are lots of tips and advice on software engineering interviews: youtube channels, blog posts, etc., which do a great job in helping you prep. I suggest you check out those resources via web search. I'd recommend checking out Ivy Barley's Twitter for more info on preparing for interviews; she's doing great work there.