First stage is a phone call with the recruiter, where they'll ask you basic info like your education background, employment history, location, expected pay, etc.
The second stage is the technical interview, which is 1 hour long. They will mostly go through all the details on your resume and ask you questions based on it. They'll inquire about whether you have learned relevant technologies, what tech stacks you know, and what you learned in your previous employment. Then, they will ask you to code on the spot, similar to a LeetCode-style programming question, using an online compiler. You can choose what language you want to use, and they expect you to finish in 15 minutes. (I took almost 30 minutes to do the question, but the interviewer was very patient and even willing to schedule another session for me to complete my solution. I would say just be persistent and do your best. If the interviewer doesn't stop you even if you exceed the interview time, keep going.)
The third stage is an interview with the Director, which is a very casual talk mostly to see if you fit culturally with the company. It's supposed to be scheduled for 30 minutes, but mine only lasted 20 minutes, so don't be surprised if it's cut short. My advice: prepare questions for this round; it's a good opportunity to learn whatever you want to know about the company.
After the third and final stage, typically the recruiter will get back to you within a week if you passed, to ask for more documents to conduct a background check. The background check will typically take a week or two. After it's passed, a verbal offer is initiated. I received the written offer two working days after the verbal offer.