First you have a phone interview, it's more or less a screening where they talk to you about your past experience and any documents you included with the application. If they decide you're a good fit, an HR representative reaches out, schedules an in-person interview and provides you with a take home assignment due 2-3 days before the interview.
The assignment consists of a toy problem with open ended requirements designed for developer creativity (I would guess). The assignment is in the language that the team is posting for. In my case the team was looking for a C++ developer so my assignment was in C++.
Your in-person interview is two-fold. You meet with the team you'd be working with in the first half, and the second half is with an HR representative 1:1. The first section consists of a code review of the assignment you submitted. While the second half is more about the benefits offered, compensation, amenities, etc. The whole interview was exactly 3 hours as advertised, and after the interview you wait, as they only have one interview (this is explained in the phone screening).
Overall my experience was great. Even though I was a novice in C++ I was treated kindly, the feedback from the code was constructive and fair and everyone there seemed to genuinely love what they do. Ultimately I was told they would seek out somebody with more experience, thanked me for my interest in the position, and that was that.
As a note, I cannot confirm or deny whether they tell you what you could've done better. I just didn't ask them.