Swiggy iOS Interview Experience — SDE1
I recently had the opportunity to interview for the position of iOS Software Development Engineer (SDE1) at Swiggy. Here, I’m sharing my detailed experience, insights, and key takeaways from the process. Hopefully, it helps those preparing for similar roles!
Round 1: Machine Coding Round (24 hours)
The first round was a take-home assignment that required building a Swiggy Clone for the Food Tab. The assignment was evaluated based on:
- Code structure
- Design patterns
- Use of appropriate iOS frameworks
- Clean and maintainable code
I submitted my solution within 24 hours, and it got shortlisted. This paved the way for the next round.
Round 2: Problem Solving + Basic iOS (1 hour)
This round was divided into two segments:
DSA Problem:
- Implement a last-in-first-out (LIFO) stack using only two queues. The implemented stack needed to support all the functions of a normal stack (‘push’, ‘top’, ‘pop’, and ‘empty’).
- Problem link
iOS Fundamentals:
- Discussed access specifiers.
- Memory leaks and how to avoid them.
- Detailed discussion on ARC (Automatic Reference Counting).
- Comparison of classes and structs in Swift.
- GCD vs. Operation Queue and their use cases.
- DispatchQueue.main.sync vs DispatchQueue.main.async.
- Explanation of Dispatch Barrier and Semaphores.
- Strategies to avoid race conditions.
- Serial vs Concurrent Queue
I cleared this round and advanced to the next one.
Round 3: UI Design + iOS Assessment (1.5 hrs)
This round began with a basic introduction and then progressed into:
Detailed Assignment Review:
- I provided a detailed explanation of the approach I took for the assignment submitted in Round 1.
- Discussed the patterns and architecture I used in the solution.
Additional Functionality:
- I was given an hour to add specific functionality to my submission from Round 1.
- After completing the task, I explained my approach and how I implemented the changes efficiently.
Successfully cleared this round.
Round 4: Managerial + HR Round (1 hr)
This was a more comprehensive discussion that covered various aspects:
Role & Responsibilities:
- Explained my current role and responsibilities.
- Discussed the most challenging task I had undertaken in the last six months, along with my approach to solving it.
Technical Discussion:
- FPS (Frames Per Second) and its significance. An in-depth discussion followed.
- CPU vs. GPU
- Common UI loading issues in TableView and how to resolve them.
- Tools to check app optimization needs and methods to enhance performance.
- Designing Instagram Reels and related challenges.
- Constraints using XIB, Storyboard, and Programmatic approaches.
- Enum usage and best practices.
- Combine Framework. Why do we use this?
- Latest WWDC updates to iOS and Swift 6
- Content hugging & resistance
Behavioural Questions:
- Details about my current CTC.
- Why I wanted to join Swiggy?
- My motivation for pursuing iOS development and how I started my journey in the field.
Final Thoughts
Although I didn’t make it to the final offer, the process was a significant learning experience. It gave me a deeper understanding of my strengths and areas to work on.
For anyone preparing for similar roles, my advice would be:
- Focus on mastering iOS fundamentals.
- Practice coding regularly, particularly with platform-specific problems.
- Always be prepared to discuss and defend your thought process.
Best of luck to everyone preparing for their dream roles!