My interview was three stages. Each stage was remote.
The first was a discussion with the hiring manager. There were some introductory questions to start with. Then there was a series of language specific questions, followed by a few technical questions. Nothing too challenging, especially on the language side.
The second stage was labelled pair programming, but was more like observed programming, done with a senior developer. They gave a standard programming question and a lot of flexibility in how to solve it. It was a solid experience and the interviewer was friendly.
The final stage was a 90 minute panel interview including two members of a team, the team lead, and the hiring manager. The questions varied. Several were behavioral questions, several were technical, some hypothetical. Some of the questions and duration were challenging, but not overly or unnecessarily so.
My experience throughout was positive. Everyone was professional, polite, and friendly. And in each interview, they stayed afterwards to answer additional questions I had about the team and the company. The process actually sold me more on the company as I interacted with them and as I learned more about the company. About 10 days after the final interview, I was notified that they would be extending an offer.