I was directly reached out to by a hiring manager on email, and was asked to schedule a tech phone screen. The question was pretty simple, and it was more of fixing an existing app by completing small tasks one after another. (no network code, pretty much changes in Views, ViewControllers, and ViewModel. For the preparation of phone screen, I basically focused on creating an app from scratch with some basic UI controls and Networking. Interviewer was very friendly and I made it to onsite.
For the onsite, first 2 rounds were creating an app from given template project. (you will find this question talked about a lot on Glassdoor). I was given 1 hr-40 mins to create this challenge. Even though I had practiced creating somewhat similar app beforehand, I could only finish 1 out of 5 ask (which is the main one, i.e working app). Rest all were small improvements that were optional. I think the focus on this round was simply speed, and I spend a lot of time creating a scalable MVVM architecture and collection view with programmatic UI (instead of storyboards, which would have been much faster).
3rd round was Behavioral, and I think the interviewer just wanted to rattle me. The questions started out easy and got intense after few mins. The interviewer seemed least impressed by my answers (or at least that's what his demeanor was). I would recommend being very thoughtful with your words, and prepare for a lot of scenario based questions and examples from your past.
last round was system design, and probably my best round. Question was focused on implementing one of the component on Instacart platform, and the scope was just Client + API + Database schema/Data models. Be prepared to take some decisions by your self rather than asking the interviewer, and write down as much as possible.
finally got 15 mins with a random developer from Instacart (not even from my team or org) for me to ask questions about anything. Didn't really understand the point of this round, Would have preferred this 15 mins with the hiring manager or someone from my team. Overall, it was a decent interview experience, difficulty level was easy in my opinion. I wasn't very sure about the offer since I could only finish 1 out of 5 asked tasks, and I don't think they focus was more on the architecture.
My recommendation:
1) compromise on your preferred way of doing things (use storyboards if that helps with the speed), choose simple UI controls (stack view instead of collection view), focus on scalability later on (put down comments rather than actually implementing it)
2) Prepare well with Behavioral in terms of multiple experiences from the past showing your strength, not just one or two.
3) Since the interviews are easy level, most of the candidates will meet the bar, so no room for screwing up any round.