Swiggy SDE II Frontend Interview Experience
Overview
This document outlines the interview process for a Software Development Engineer II (Frontend) position at Swiggy. The candidate applied through the company's career portal and navigated through multiple stages, including an online assessment, technical rounds, and a hiring manager interview. The evaluation focused on JavaScript proficiency, React expertise, system design knowledge, and problem-solving abilities specific to a large-scale application.
Interview Rounds
1. Online Assessment (OA)
The initial assessment was conducted on the HackerRank platform. It comprised questions on JavaScript (polyfill of promise.race), React (identifying and fixing performance bugs, implementing search and sorting), and multiple-choice questions. The candidate successfully implemented solutions, including optimizing performance through memoization for search and sorting functionalities.
2. First Technical Round
This round involved a third-party interviewer and focused heavily on JavaScript and React fundamentals. The interviewer probed the candidate's understanding of various concepts, including rendering techniques, React Router, Redux, TypeScript, and live coding skills. The candidate was tasked with consuming an API to fetch user IDs and implement a "show more" button to load additional user data. The candidate successfully delivered a solution within 30 minutes, albeit with minor bugs.
3. Second Round (Machine Coding with System Design)
This round was conducted by a Swiggy employee. The candidate was questioned on core React concepts, such as React's internal workings, hydration, the virtual DOM, the benefits of Fiber, avoiding re-renders in Context API usage, advantages of client-side and server-side rendering, side effect handling, common misconceptions about useEffect, Backend For Frontend (BFF) architecture, common design patterns in React, and performance optimization techniques. The candidate was also given a task to hit an API and render the results.
4. Third Round (Hiring Manager Round)
This round centered around discussions of previous projects, their architecture, and the software engineering lifecycle. The interviewer explored topics such as security, performance monitoring, bug identification and resolution (RCAs), accessibility, testing, DevOps pipelines, and coding best practices. A key question involved designing a typeahead search feature with extensibility in mind. While the candidate suggested configurable props like noOfresults, debounceDelay, label, onSearchHandler, and className, they were challenged on improving performance beyond debouncing, requirement gathering, and ensuring UI element flexibility. The interviewer emphasized the importance of caching, compound component patterns, and comprehensive requirement analysis from the Product Requirements Document (PRD) through to feature delivery.
Key Takeaways
Despite not receiving an offer, the candidate identified several critical areas for improvement:
- Deep Technical Understanding: Develop a comprehensive understanding of underlying technologies beyond surface-level knowledge.
- Communication Skills: Practice articulating technical concepts in a clear and engaging manner, including storytelling.
- Time Management: Practice solving problems under time constraints.
- Broad Knowledge Base: Cultivate a wider understanding of backend technologies and DevOps practices, aiming to become a well-rounded software engineer.
- Domain Knowledge: Acquire domain knowledge specific to the target company's industry (e.g., food delivery, quick commerce). This can help in making informed technical decisions from a cost and business perspective.
- Proactive Thinking: Think critically from PRD to delivery and take ownership of features.
Original Source
This experience was originally published on medium. Support the author by visiting the original post.
Read on medium