The first step is to discuss with a recruiter to make sure that you will enjoy to work here. We discussed about the company culture, its main products, how I like to work, salary expectations, etc. Afterwards, there's a technical interview that I found rather unique. I did pair programming and TDD with the interviewer, but I was in the role of the navigator. You can discuss and help him write the code to pass pre-determined tests. Nothing too difficult, think easy-difficulty puzzles on LeetCode. Then I met my future team lead. He asked me some questions about how I approach problems, what kind of projects I've worked on before, what I value in a project, etc. Then I met my potential future teammates, product manager and team lead. It included another pair programming session, this time as the driver. This one felt more like a day-to-day regular user story, where we had to add a feature to an existing project. I ran out of time before the end but that didn't seem like a big deal. I found the pair programming approach interesting and I could tell right away that we'd get along. The recruiter reached back to me shortly after with an offer, he was really helpful and answered any questions I still had. Good luck!