{"resource":{"author":{"id":"3eh0kijZwMrHum8TkMqX","name":"Devtools Tech","username":"devtoolstech"},"content":{"link":"","difficulty":4,"domain":2,"type":1,"isInternal":true,"body":"Note: This interview experience was contributed by a user of [devtools.tech](https://devtools.tech) platform. You can contribute your interview experiences [here](https://forms.gle/FsFk4YBaWjbLRThb6) and interview questions [here](https://forms.gle/Kve2m3bKHRCtKDKq5).\r\n\r\n## Initial Screening\r\n\r\nIt was a call with the recruiter to check basic qualifications and see if the candidate was a good fit for the role. They focused on alignment with the company’s core values, such as collaboration, customer focus, and a results-driven mindset.\r\n\r\n## Round 1: DSA + JavaScript\r\n\r\nIt was a normal algorithmic round with a couple of questions:\r\n\r\n- I got a Leetcode question: Move Zeroes\r\n- There could be more than one DSA questions here. Other questions that I practiced were merging linked lists, counting elements in two arrays, min stack, and others.\r\n- This round also involved discussion around JavaScript concepts like closures, promises, scoping, and async programming.\r\n\r\n💡 Tip: Practice easy to medium level Leetcode and have strong JavaScript fundamentals.\r\n\r\n## Round 2: React + JavaScript Coding\r\n\r\n- I got one question of building a matching game ([Country Captial Game](https://devtools.tech/questions/s/build-country-capital-game-or-microsoft-frontend-interview-question-or-javascript-or-react-js---qid---yPb5g7MLCSf6j2F3qjqj?companies=microsoft&type=3)).\r\n- There was one more question about [implementing throttling method](https://devtools.tech/questions/s/implement-throttling-in-javascript-or-walmart-frontend-interview-question---qid---mLrwAyug9CgrVGbs6OYF?type=3)\r\n- There was discussion around React concepts like custom hooks, state management, virtual DOM, and best practices.\r\n\r\nOther questions that I practiced and were asked in Microsoft earlier:\r\n\r\n- [Event Emitter](https://devtools.tech/questions/s/how-to-implement-event-emitter-in-javascript-or-facebook-interview-question---qid---J4fNqXImp6QIdGMc7SPF?companies=microsoft)\r\n- [String Compression and Decompression](https://devtools.tech/questions/s/string-compression-and-decompression---qid---H4BQSlugnCg464F86rCi?companies=microsoft)\r\n- [Transfer List UI](https://devtools.tech/questions/s/how-to-build-a-transfer-list-ui-component---qid---JXmKtbLuIWiEgODu2MRJ?companies=microsoft)\r\n- [Promise Polyfill](https://devtools.tech/questions/s/implement-promise-polyfill-or-javascript-interview-question-or-promise-polyfills-or-frontend-problem-soving---qid---lmc7r4XC9tTmTwSy4lZm)\r\n- [Search Page with highlighting](https://devtools.tech/questions/s/search-page-with-highlighting---qid---J4OIHWaR6t0sOnCyk2ib?via=manasi-dt)\r\n\r\n[View complete list of questions from Microsoft here.](https://devtools.tech/questions/all?companies=microsoft)\r\n\r\n## Round 3: System Design\r\n\r\nI was asked to build a rating management system. I was able to come up with a solution. The discussion revolved around requirements, performance, security, and how to manage such system at scale.\r\n\r\nRecommended: [Frontend System Design Guide](https://devtools.tech/frontend-system-design)\r\n\r\n## Round 4: Hiring Manager Round\r\n\r\n- Discussion about past projects, what problems did I solve, challenges and how I resolved them.\r\n- Some behavioural questions\r\n\r\n","languages":[],"editorConfig":"undefined"},"stats":{"views":5412,"used":0,"likes":0},"description":"","published":true,"isActive":true,"tags":["javascript","ui","ux","devtools tech","coding","frontend interview","coding rounds","tutorial","frontend interview experience"],"slug":"microsoft-frontend-interview-experience---rid---XTc4tJoPszAFovxvJjRX","isPremium":false,"categories":[],"requires":[],"_id":"69831e01895fc3bf013c2a19","title":"Microsoft Frontend Interview Experience","resourceId":"XTc4tJoPszAFovxvJjRX","createdAt":1770200577756,"modifiedAt":1770309786265},"currentUser":null,"isOwner":false,"recommendations":{"questions":[{"_id":"69dc7f347aa3689d795a5f8d","content":{"languages":["javascript","typescript"],"difficulty":3},"tags":["javascript","ui","ux","devtools tech","coding","frontend","interview"],"slug":"number-to-words-converter---qid---HDauTCaVO4KLQuobnvQx","title":"Number to Words Converter","questionId":"HDauTCaVO4KLQuobnvQx"},{"_id":"5e8ce95cb2cdcd5697fea7bf","content":{"languages":["javascript"],"difficulty":1},"tags":["node.js","javascript","frontend","code","logic","variables","block scope","scoping","hoisting"],"title":"What is the output of the following code snippet? | JavaScript Output Based Question | JS Variables","questionId":"fKtjCwgbBqNJSPj4c6gX","slug":"what-is-the-output-of-the-following-code-snippet-or-javascript-output-based-question-or-js-variables---qid---fKtjCwgbBqNJSPj4c6gX"},{"_id":"5ef44a213cce8c36cd292531","content":{"difficulty":1,"languages":"javascript"},"tags":["javascript","frontend","node.js","arrow functions","javascript engines","frontend fundamentals","prototype chaining","advanced js"],"slug":"what-would-be-the-output-of-the-following-code-snippet-prototype-method-invocation---qid---ZTfiiKiAItdaRMFOcmLQ","title":"What would be the output of the following code snippet? (Prototype method invocation)","questionId":"ZTfiiKiAItdaRMFOcmLQ"},{"_id":"5eca301cbe633f3afec7c68f","content":{"languages":["javascript"],"difficulty":2},"tags":["node.js","javascript","promises","frontend","frontend fundamentals","js fundamentals","interview questions"],"slug":"what-would-be-the-output-of-the-following-code-snippet-or-promise-based-output-question-or-part-two---qid---mxk2aiuSwTNwpApt1L4c","title":"What would be the output of the following code snippet? | Promise Based Output Question | Part Two","questionId":"mxk2aiuSwTNwpApt1L4c"},{"_id":"6259736b1195627fe9f0be26","content":{"languages":["javascript","typescript"],"difficulty":2},"tags":["javascript","frontend","node.js","event emitter","facebook","advanced frontend","interview question","devtools tech","frontend masters","egghead"],"slug":"how-to-implement-event-emitter-in-javascript-or-facebook-interview-question---qid---J4fNqXImp6QIdGMc7SPF","title":"How to implement Event Emitter in JavaScript? | Facebook Interview Question","questionId":"J4fNqXImp6QIdGMc7SPF"}],"resources":[{"_id":"5f1dd537cbec5f7ffc0c2fa8","content":{"difficulty":2,"domain":3,"type":1,"isInternal":true},"tags":["node.js","mongodb","backend","database","db","tools","performance","mongo queries"],"slug":"speed-up-mongodb-search-queries---rid---1KlpHxujFKhN2HVJ3AQk","title":"Speed up MongoDB Search Queries","resourceId":"1KlpHxujFKhN2HVJ3AQk"},{"_id":"69234dfebf1a48f85e0d2584","content":{"difficulty":1,"domain":2,"type":2,"isInternal":false,"languages":[]},"tags":["javascript","large lists","virtualization","frontend","performance","web","frontend system design"],"slug":"how-to-render-large-lists-in-react---rid---TC8vdF4wbZwju6fkLIwO","title":"How to render LARGE lists in React?","resourceId":"TC8vdF4wbZwju6fkLIwO"},{"_id":"69a7c7b992f33c7d8aa04c41","content":{"difficulty":1,"domain":1,"type":2,"isInternal":false,"languages":[]},"tags":["javascript","ui","ux","devtools tech","coding","frontend","polyfill"],"slug":"implementing-javascript-promise-polyfill---rid---9ExnAPiGr8eioZLa9IeV","title":"Implementing JavaScript Promise Polyfill","resourceId":"9ExnAPiGr8eioZLa9IeV"},{"_id":"6a12f6954b3e6d922c54a4bb","content":{"difficulty":1,"domain":1,"type":1,"isInternal":true,"languages":[]},"tags":["javascript","ui","ux","devtools tech","prioritising critical images","web performance"],"slug":"prioritising-critical-images---rid---BlV5X4YylAW61dYwFmyG","title":"Prioritising Critical Images","resourceId":"BlV5X4YylAW61dYwFmyG"},{"_id":"631444c477f9961d5b7cfc27","content":{"difficulty":1,"domain":2,"type":2,"isInternal":false},"tags":["javascript","frontend","web performance"," devtools tech","advanced js","interview preparation","cls","tooling","web.dev","seo","optimise"],"slug":"how-to-improve-performance-of-your-website-or-cumulative-layout-shift-or-part-1---rid---iFdJmQ4rTsUUv72yhH59","title":"How to Improve Performance of Your Website!? | Cumulative Layout Shift | Part 1 ","resourceId":"iFdJmQ4rTsUUv72yhH59"}]}}