Interviews were online and consist of 3+ steps.
HR call:
Quick 30 minutes screening call. Usual HR questions.
Technical interview:
Interview is with at least one engineer and your potential line manager. First, you introduce your CV focusing on the selling points for the job.
Then they ask you questions about Java, JVM, multithreading, databases, followed by a live coding exercise on your computer. Have your IDE ready and access to GitHub. The coding exercise tests OOP in Java and is leet-code style.
Afterwards, they ask you system design questions by presenting an architecture diagram of a system implementing some simplified business use-case. They want to test how fast you understand new business concepts. For technical questions, be prepared to talk about distributed computing, API and messaging, scalability, fault-tolerance, consistency, security, etc… Difficulty is incremental and they want to test how deep is your knowledge.
Management interview:
If you pass the technical interview, you have an interview with several members of management. Usual domain knowledge and behavior questions. Be prepared to mention you work well in a chaotic and ambiguous environment. They really want to hear this.
If they still have some doubt, you will go to an extra round with other managers.
Overall at all steps the interviewers seemed disinterested and just wanted to be done with the process. Later I learned it’s because HR or management schedule interviews for employees only 3 days in advance so your CV is scanned by the interviewer only 30 minutes in advance. Having now been on the other side of hiring, I can also attest that it’s not always the candidate with both the best technical and human qualities who’s hired.