Fumbled up : Microsoft SDE 2
Summary
I interviewed for an SDE 2 position at Microsoft through a hiring drive. Despite putting in effort, I struggled with several coding challenges and system design questions across two technical rounds, ultimately leading to an unsuccessful outcome.
Full Experience
I applied for an SDE 2 position on the Microsoft career page and subsequently received an invitation for a hiring drive on November 28th.
Round 1
My first interviewer was an SDE-2 with 4 years of experience. This round primarily focused on data structures, algorithms, and operating system fundamentals.
- Two Sum in BST: I was asked to determine if two elements exist in a given BST such that their sum equals
k. My approach involved an inorder traversal followed by a two-pointer technique, which gave an O(n) time complexity and O(n) space complexity. The interviewer, however, was looking for a solution using a BST Iterator to achieve O(n) time and O(h) space complexity, wherehis the height of the BST. - Longest Repeating Character Replacement: The problem involved finding the length of the longest substring in a given uppercase English letter string
sthat could be transformed into a substring containing only one distinct character by changing at mostkcharacters. This is LeetCode 424. I struggled to fully code this, but with hints, I was able to outline the sliding window solution. - OS Fundamentals: The interviewer also delved into operating system concepts, asking about:
- TCP vs UDP
- Virtual Memory
- Process vs Threads
- What is Throughput, Bandwidth and Latency?
Round 2
The second interviewer was an SDE-2 with 9 years of experience. This round had a mix of questions related to my resume, system design concepts, and another LeetCode problem.
- Resume and System Design Discussion: We started with questions based on my resume, leading into discussions on:
- What is Async?
- Questions on OAuth, JWT Token.
- What is Docker, container, Image?
- Sidecar architecture.
- Types of containers.
- Pipelines.
- LeetCode 1309 – Decrypt String from Alphabet to Integer Mapping: I had a really hard time with this problem and fumbled up big time.
- Maximum Subarray Sum with Length at Most K: I was given an array
profits[]where positive values indicated profit and negative values indicated loss. The task was to find the maximum possible sum of a contiguous subarray whose length is less than or equal tok. Despite receiving hints, I couldn't come up with the correct solution for this problem.
Overall, I felt I fumbled in several key areas during the interview process.
Interview Questions (14)
Given a Binary Search Tree (BST) and an integer k, return true if there exist two elements in the BST such that their sum equals k, otherwise return false.
Explain the key differences between TCP (Transmission Control Protocol) and UDP (User Datagram Protocol).
What is virtual memory and how does it work?
Differentiate between a process and a thread.
Define Throughput, Bandwidth, and Latency in the context of computer networks.
Explain what asynchronous programming is and its benefits.
Discuss OAuth and JWT (JSON Web Token) tokens, explaining their purpose and how they are used.
Explain the concepts of Docker, containers, and images, and how they relate to each other.
Describe the Sidecar architecture pattern.
What are the different types of containers?
Explain the concept of pipelines in software development/DevOps.
Given an array profits[] of size n where profits[i] > 0 indicates a month had profit and profits[i] < 0 indicates a month had loss, find the maximum possible sum of a contiguous subarray whose length is less than or equal to k.