Did the full loop a few weeks ago. Want to put actual info out there about the coding rounds because the existing posts are pretty vague.
For senior SWE, there's no separate async online assessment (OA). They go straight to live coding after the recruiter screen. You'll have two separate coding sessions, each 45-60 minutes, one interviewer each.
What the problems looked like:
Round 1: A medium-hard algorithm problem. Not obscure graph theory, more like: given some constraints on a system, write a function that processes inputs correctly under edge cases. It had a clean optimal solution but you had to work through it. I'd put it at leetcode medium-hard difficulty, leaning medium if you're used to practicing.
Round 2: More applied. Felt like a mini implementation task. Given a spec for a simplified version of something (I'm being deliberately vague), build a working module. This was less about finding the clever algorithm and more about writing clean, correct, maintainable code under time pressure.
Language: I used Python. Interviewers were fine with that. I've heard Go and Rust are also fine. They're not making you use a specific language.
What they actually evaluated:
They cared a lot about how I communicated my thinking. I spent the first few minutes restating the problem, confirming edge cases, and thinking out loud. Both interviewers were engaged in that process. Neither tried to rush me toward coding immediately.
One interviewer gave me a pretty clear hint when I was going down a suboptimal path. The kind of place where the interviewer is actually trying to help you succeed rather than watching you fail.
Difficulty verdict: Harder than average FAANG phone screens, lighter than the hardest leetcode hard problems. If you can do medium problems comfortably and have done a few hards, you'll be fine. Don't just grind easy problems and show up.