As a Software Engineer specializing in frontend development, it has been my dream to work in a Fortune 500 company, contributing my skills and ideas to achieve the company’s varied objectives. I found myself very close to achieving this with Microsoft. In this blog I would like to share with you my Software Engineering applications and interview journey.
It began with a recommendation from Abigail Mesrenyame Dogbe (Lead, PyLadies Ghana) for me to register when applications for the Software Engineering role at various Microsoft locations across the globe was opened. I did just that, but unfortunately could not get through to my chosen locations which really put a damper on things for me. When I thought that was it, the University Recruiter reached out to recommend that I reapply if still interested, but to the only location remaining, which was the Washington Campus. And I did.
I honestly was not optimistic about making the cut, so imagine my surprise when I received an email inviting me to the first-round interview and a coding test. The interview was a phone call and the test solely online. I had 65 minutes to complete 3 coding-type questions. They were more like problem-solving questions that required in depth knowledge and thought on how Object-oriented programming works, thus was advised to use an Object-oriented programming language. The timer cannot be paused when the test is started and before we get ahead of ourselves and try to play cheater by thinking “this is nothing because the internet knows everything”. This test had a plagiarism checker as indicated in the invitation email thus don’t think about compiling a copied solution from the internet because you would have wasted quality time. However difficult the questions were, I made a point to tackle them to the best of my knowledge. The phone call was however more friendly [no sweating involved -giggles].
The interviewer ensured I found the session as a conversation instead of a strict interview. The questions asked were determined to bring out your coding skills and experience with working with people. A few of the questions I was asked were: what I could say about a project that was both exciting and challenging that I happen to have worked on and what made them so. A difficult team member I have had and how I ended up being able to work with them. How I would explain recursion to a 6-year-old. And many others including a problem-solving question I was given 2 minutes to answer. This was not however based on a programming concept but logic. Time went by quickly as the interview took me back in time to recall projects I have worked on and what experience I had with each of them.
Done with the first-round interview, then came the agonizing waiting time for the results, which was to be within 2-3 weeks maximum as indicated by the interviewer. Within these couple of weeks my Visa and work authorization eligibility was evaluated which was mandatory to be considered for the Final round of interviews. This process involved filling of questionnaires and document checks. This process was super smooth: fill in, upload, submit and you are done. You even get your dashboard to track uploads and review. But eye on the price people. We are still waiting for the results of the first-round of interviews. [giggles].
Exactly 2 weeks and a few days after I received an invitation to the final round of interviews in an email [Yaaaay]. This excited and thoroughly scared me at the same time. Yes! scare because the Final round requirements did not give enough time to imbibe all you needed to know. But I had Abigail, Aseda and Kwadwo to help with tutorials, counsel and support. With this trio combined I got the courage to face my interviews. All interviewees were taken through a preparatory call on Microsoft Teams to detail what we should expect as we prepare and even as we walk into the interview building on the said date and time.
This final round of interviews involved meeting 3-4 interviewers, one at a time for 45 minutes each. White board coding solutions to technical problems narrated to you in any Object-Oriented Programming language and explaining your answer or speaking through your solution process whichever approach you choose. Each interviewer checked for something unique, but all looked out for your coding skills and your command on data structures and algorithms. Communication skills were also looked at as we met the recruiters who have been interacting with us from the beginning of the journey. These sessions were educative, very challenging and inspiring as we got to hear the experience of some of the top Software Engineers and Project Managers at Microsoft.
But unfortunately, I did not land an offer from the Recruiters this time. I had a great learning, travelling, and networking experience. As high command on data structures and algorithms are required. I have pledged to take a Leetcode interview problem a day and Geeks for Geeks bootcamps from time to time to keep the skills sharp. You know what they say about when preparation meets opportunity [yes success]. As Nelson Mandela said, “we never lose we either win or learn”. So onward we move to achieve and anticipate more wins and learn in the process.
To end this narrative of my journey I would like to share some of the advices I received and some of my interview preparatory materials. Are you still here? Check below.
• Cracking the Coding Interview
Coding Interview Tips:
• Know every little detail on your CV and be able to prove them.
• Practice is extremely important. Take time to practice coding on a whiteboard or in a blank word document and if possible, find friends to conduct mock interviews with you.
• When you are asked to provide a solution to a problem, first define and frame the problem as you see it.
• If you don't understand anything- ask for help or clarification do not make assumptions.
• If you however need to assume something - verbally check if it is a correct assumption
• Describe how you want to tackle solving each part of the question.
• Always let your interviewer know what you are thinking as they will be as interested in your thought process as your solution. Also, if you're stuck, they may provide hints if they know what you're doing.
• Give the problem your best shot. If you don’t know how to solve it, try a couple of different approaches to breaking down the problem. If that still doesn’t work, you may ask your interviewer for a hint
• After writing it, work through your code using examples to validate correctness. Remember to consider edge cases and how you would test it.
• Listen - don't miss a hint if your interviewer is trying to assist you!
• Lastly, be sure to test your code before saying you are done.
Thank you for going through journey narrative with me and hope you found it helpful to your preparatory process. Cheers to more wins.