Facebook wasted loads of my time before I even got onsite, with several shared-screen coding phone interviews spread over a month. Each time I would solve all the problems and get to working code but a week later they would ask me to do another interview.
I got reasons like "the interviewer quit without submitting his feedback" or "interviewer said he had hard time understanding your voice on the phone" (I'm a native english speaker and interviewer was not), or "interviewer lost his notes", etc.
Maybe my code just sucks and they were lying but I don't think so.
It took so long to get through that stage to the onsite that I felt like I'd already worked there.
My gf interviewed at google from 8am to 2:30pm (after 2 half-hour to hour-long phone screens).
Northrop Grumman had a (wasteful) 8 hour "college day" that was an hour of technical interviews, 4 hours of propaganda, and 2 hours of arbitrary fluff like team building games among the applicants.
The ~5 or so on-sites I've had apart from NG were 2-4 hours.
Told the last Google recruiter that contacted me "No, I've been through your interview process once years ago, I'm not subjecting myself to that again."
I got my current job after a brief phone screen and a one hour in-person interview. It came with a big pay increase and the smartest people I've worked with so far.
I'm not sure why so many companies insist on the days-long torture interviews (I've been through several), but I know they're not necessary to find good people.
A couple years ago I had TWO full-day interview sessions with a single company. That I had to take time off of my then-current job to attend. After a one-hour phone screen. Who ended up not hiring me anyway.
Unless the position was for serious fuck you money and I really needed it, there's no way in hell I would tolerate 2 full day interviews.
I'm also guilty for spending lots of after work days studying for jobs I really wanted and getting rejected but at least I didn't burn any of my precious vacation days.
I fell prey to the “sunk cost” fallacy - after the first full day when they asked me to come back, I thought: a) it would be a shame to “waste” that first full day of interviewing by saying no now and b) surely nobody would be a big enough asshole to ask me to take two full days off of work to interview with them only to reject me after the second day, so surely this second day is just a formality.
Apparently I was wrong.
And no, it was just a regular programming job, nothing special.
I have found that lightly pushing back on such requests makes them value you a little more. Doesn't matter too much since they should've valued you in the first place. I've had a couple processes expedited in this way, sometimes skipping a call here or there or changing a second onsite to a call.
I've done about 3 of these kinds of "interviews" in my career.. basically a small work for hire each. Didn't get the jobs.. but took great joy in checking in on each of these companies after 6 months to find they no longer existed.