The first round was the two HackerRank problems outlined below. Neither were terribly complicated, just make sure you read through the instructions completely.
The next round was talking with another mobile developer and his manager about my experiences, what systems/frameworks/languages I've worked with, how I would solve hypothetical problems they posed, and other usual tech-related questions. It also included the challenge below about building a mobile app that modified and displayed a string. For any future interviewers, iFit is very big on testing, and preferably testing-driven development.
The third round was talking with some HR folks to determine "good fit". It was the usual discussion about what kind of leadership roles I've had, or what kind of subordinate roles I've had, and how I worked with difficult customers or coworkers, and the other expected questions for that kind of thing.
Finally, I got to speak with Chase Brammer, their CTO, as the last round of interviews. He assured me that his tech interviewers had passed me with "flying colors", and this was just his opportunity to get to know me better, since he doesn't always get that chance in day-to-day business. The conversation was light on any tech questions, and he only really asked what I was looking for in pay, what kind of role I prefer, and what I expect from a company.
The conversation wrapped up with him asking me if he got me "something" the day after we talked, whether I could get him an answer in a week or so, and then we could talk about start dates. It was heavily implied that "something" would be an offer. Naturally, I agreed.
The following day I received an automated email from HR indicating that they appreciated my interest, but were looking for someone with more experience. I emailed back asking for clarification, and HR confirmed that they were "looking for someone with a bit more experience for this particular role".
In my experience, the hiring manager's manager does not normally indicate they will be making an offer to someone if that candidate has insufficient experience for the role. That's the kind of situation that gets culled out before even the second round of in-person interviews. Additionally, the CTO indicating that an offer would be made and then HR following up with an automated rejection - and no real explanation - seems remarkably poor form.
At least the whole process only took about two weeks.