📱Swiggy iOS interview experience

Pranav Singh
4 min readJan 21, 2024

--

I have 7 months of iOS experience and in last week I had some series of interviews with Swiggy for the Associate iOS Developer role. Thought of sharing the experience here 😃

Discovered the job opening in a LinkedIn post and applied via referral with the iOS Engineer Manager, and got an interview call within a few days.

Round 1 : Machine Coding Round (1.5 hr)

Interview started with basic introduction sharing followed by a task. The task was clear: construct a weather app featuring a sorted list of cities on the first screen. Clicking on a city should reveal detailed weather info on a second screen. The catch? Implement a ‘favourite’ button on the second screen, with a mirrored version on the first screen(with all city names), all synchronised. Provided a weather API and city names array, constraints included no external frameworks, robust error handling, and a focus on favourite logic within a challenging one-hour timeframe.

I took approx 1 hr 10 min to complete this task but was unable to complete the favourite logic( have implemented the callback of it but UI changes was left to finish).

Asked questions were related to the code that I have written, which includes -

How I could have Implemented the uncompleted task.

Why I have used self in the closure, and what is weak and unowned self.

Why have I used a forced unwrap operator at one place, what are other ways to handle it.

How I’ll do error handling

How can I implement caching here.

Why I used the main thread for UI changes.

Why I have used callback to handle the favourite click change logic.

What is application lifecycle

With a rewarding two-hour session, I earned the ticket to the next round.

Round 2 : DS - Algo + iOS Round (1.5 hr)

Round 2 unfolded with an introduction to my responsibilities at current role, tech stack, architectural pattern I follow, iOS journey etc.

Asked questions were related to swift fundamentals, which includes -

Distinction between Structs and Classes.

Are Arrays, Sets and String classified as classes or structs?

Define the type of Optionals along with their cases.

Implement a method to check whether any optional is nil or not, something like someOptionalProperty.isNil().

Enhance the optimization of the Optional extension code I have written.

Does Objective-C support optionals, and how does it handle errors?

Mention some significant Swift features that contribute to its excellence.

Examine the various methods to facilitate data passage between ViewModel and ViewController.

Choose the optimal data passing method for a given scenario, providing reasoning.

Write code to pass data between ViewModel and ViewController using delegates.

Write code to print the first ’n’ Fibonacci numbers and optimize it for linear time complexity.

In major part of the this round, we talked about SwiftUI features and navigated through the migration challenges from Swift to SwiftUI. The outcome of this discussion was positive.

Round 3 : Managerial Round (1 hr)

In this final technical round, my interviewer(who was the same person I got referral from ), facilitated a technical discussion incorporating a single DSA question.

Asked questions were related to my experience at the current company , which includes -

What are some important contributions/tasks that I have done in my current role.

Which is the most challenging task, solving approach and its learning .

Many questions were related to one of the tasks which was about notification permission in the app and to show a custom popup based on some internal logic.

They asked about the life-cycle of UINotification, order of the methods, user permission scenarios, app state changes, and selecting the appropriate viewLifecycle method with justifications.

What are singleton and its drawbacks?

What are access specifiers and the differences among them.

Addressing a coding challenge — rearranging an array of positive and negative elements to place negatives on the left and positives on the right, optimized till linear time complexity.

Details about my current CTC.

Reasons behind the decision to join Swiggy.

What motivate you in life (for just anything…)

I was NOT SELECTED in this interview round, and some of the reasons could be -

  • Although I answered nearly everything, I didn’t make a significant impact on the engineering manager.
  • In a few instances, my responses seemed unclear and not aligned with the interviewer’s expectations.
  • The heightened competition among applicants has raised the quality bar, as discussed here 🔗.
  • My communication skills, particularly for a remote-first company, may not meet the expected standards (as I’m not particularly strong in this area).
  • One of the concepts I presented regarding the notification task was incomplete.
  • My current CTC is 1.5x of what they were offering, they might have anticipated being ignored (which I wouldn’t have done).

The overall interview experience was good, accompanied by valuable lessons. With a total of 7 months of iOS development experience, I found satisfaction in my performance. While it might not be the best decision but the motivation behind this interview was the opportunity to transition to the latest tech-stack employed by the company.

💛 THIS IS MY FIRST MEDIUM BLOG , HUGE THANKS FOR READING 🥹 💛

--

--