My Journey of Securing a PPO at Microsoft

Prerna Mittal
5 min readJul 23, 2024

--

The transition from an intern to an upcoming full-time software engineer by securing a Pre-Placement Offer (PPO) at Microsoft was an exciting experience filled with challenges, learning, and growth. In this blog, I will walk you through the entire process, from interview rounds to receiving the full-time offer, highlighting key experiences and strategies that helped me succeed.

Interview calls are based on Manager feedback, and team policy (mine was to conduct 2 exit interviews).

The Interview Process

Tech Round (1 hour)
The tech round is usually conducted by a software engineer and focuses on assessing coding skills and problem-solving abilities. During my tech round, I was asked to:

  1. Create a Linked List: I implemented a basic linked list in my preferred programming language ie. C++
  2. Insert Elements and Reverse the List: After creating the list, I wrote functions to insert elements and reverse the list. (Leetcode Easy)
  3. Test Cases: The interviewer ran a few test cases on the coding platform to ensure my code worked correctly.
  4. Follow-Up Question: I was then asked to reverse the linked list in groups of K elements and then run test cases. (Leetcode Hard)

Tip: Start by discussing your approach to solving the problem, and then communicate your thought process at each step while coding. This will help when you get stuck somewhere.

After the coding exercises, the interviewer asked questions related to my project experience, such as:

  • What was the project?
  • What changes did you observe in yourself from college to the company?
  • What new things did you learn?
  • How did you resolve blockers in the project (e.g., logging, debugging)?
  • Other project-specific questions

The next day, I received an invite for AA round just 2 hours before the scheduled time.

AA (As Appropriate) Round (~1 hr 30 mins)
The AA round, typically conducted by a high-level manager, depends heavily on the interviewer, feedback from previous interviews and the resume. My AA round was taken by a principal software engineering manager from another team. This round included:

  1. Personal and Project Introduction: I introduced myself and gave an overview of my project.
  2. Deep Project Questions: The interviewer asked detailed questions to test my understanding of the project and the tools I was using. This requires a deep understanding of the background and problem statement of your project, along with the solution and its impact.
  3. Computer Science Fundamentals: Questions on core topics like operating systems, computer architecture, and compiler design were asked.
  4. Technical Question: I solved a simple string-matching problem, ran a few test cases, and handled a follow-up question.

By the end of this round, I had a good understanding of their team, and I realized that my project could be beneficial for them, too.

Internship Experience and Key Strategies

Several factors during my internship played a crucial role in securing a PPO:

Understanding Background

  • Customer Issues: I reviewed some customer issues to understand problem statements, solutions, and root causes better.
  • I understood the architecture, design, workflow, etc, of the tool that I’m proposing a solution.

Feedback and Instructions

  • Listening and Noting Down: I carefully listened to all feedback and instructions from my team and noted them down during meetings. I also added code suggestions as comments directly in my code.

Daily Team Interaction

  • Regular Sync-Ups: I maintained daily communication with the teams in Bangalore and Noida, sharing updates and seeking guidance whenever needed.
  • Checkpoint Meetings: Weekly meetings with my manager helped set project goals, discuss milestones, and plan the next steps.

Progress Reporting

  • Weekly Reports: I created and shared weekly progress reports with my team, detailing project updates, challenges, learnings, and next steps. Make sure you’re showing what you’re working on to your team continuously, whether resolving a bug, working on a feature, learning something, etc.

Task Management

  • Azure DevOps: I managed my tasks using the Azure DevOps portal, updating their status, following agile development practices, attending stand-up meetings and participating in coding sprints.

Code Reviews

  • Active Participation: I participated in multiple code reviews, created pull requests (PRs), and resolved comments, often during daily sync-up meetings.

Documentation

  • Comprehensive Documentation: I maintained detailed documentation for my project, including design docs, how-to-run guides, testing documents, and various diagrams like sequence and architecture diagrams.

Networking

  • Engaging with Engineers: I talked to many software engineers to understand their perspectives, resolve challenges, and learn interesting things about Microsoft.

Preparation for Interviews

  • Technical Preparation: Prepare for interviews by studying operating systems, DBMS, computer networks, data structures and algorithms, system design, and OOP concepts. This can be done beforehand as there won’t be much time available for preparation after the internship starts.

Hands-On Learning

  • Tech Stack Mastery: When learning new technologies, I referred to documentation and engaged in hands-on coding to ramp up quickly.

After around a week of the internship’s end, I received the results from the campus placement cell, confirming my selection as a full-time software engineer at Microsoft. The structured approach to feedback, consistent communication, thorough preparation, and continuous hands-on learning were pivotal to my success.

Feel free to read about my internship experience in detail through this blog:

I hope my story inspires and helps future interns in their journey towards full-time roles. I am eagerly looking forward to starting my journey at Microsoft next year and sharing more about my upcoming experiences! Stay tuned for more updates.

--

--

Prerna Mittal

Upcoming SWE @Microsoft | Ex-Intern @Microsoft, Cadence | Samsung PRISM Intern | NXP WIT Scholar'22 | UIUC+ Research Intern | Beta MLSA | GATE CS qualified