3 Steps:
1). A take home assignment, This was the 2nd time I applied to the position, thankfully the take home wasn't too different from my previous attempt 12 months earlier and so submitting mostly included me incorporating feedback from last time. Try to design the app as if you were making a commercial piece of software, with separation of logic into separate files (even if small or simple), unit tests, etc. From the beginning, however, is a time consuming exercise, with probably 2-4 hours of effort for an experienced person, 6-10 if you're figuring things out on the fly. It can feel frustrating to mess this step up, as feedback feels somewhat arbitrary and definitely based on things not listed in the project discription. Try to go above and beyond.
2). 1 hr short technical discussion. You will discuss your take-home project and make some small modifcations to it to demonstrate your coding skills / way of thinking. Cordial and very basic.
2.5) Short recruiter call, describing step 3.
3). Grueling 6 hour panel with many parts, from coding, to data modeling (less database, more design pattern / OOP related), to architecture design. I highly recommend you install, use, and study (reverse engineer) the app, as nearly every part of this interview relates back to redesigning parts of the app on a smaller scale. Be sure to talk through your thought process. If you are shy, practice talking as you work. Ask clarifying questions. You will check-in with managers at the beginning and end of this interview, and will most likely know if you have received an offer at the end of the day.
In the end, I felt that the process of applying to Fetch Rewards is mostly "fair", but a heavy time investment if you're applying to lots of jobs. Kind of an anti-thesis to the AI-powered, ATS hellscape we currently live in. Not going to be for those who believe in the "shotgun approach" of sending your resume to every listing out there, as you need to fully commit your time to applying or I expect it will not pan out.