Overall positive experience, with some minor nuances.
The process consists of:
1. Recruiter call (30 mins - regular stuff)
2. Screening interview (1 hour - 1 LeetCode medium task + quick design of one of the Asana features). I've passed, but the recruiter told me that something wasn't ideal in terms of communication. When I read the feedback itself, I didn't find anything serious, just some common communication stuff that can happen to anyone, especially during the online call, but what can be said that the interviewer was very scrupulous and was pretty much analysing every word of mine :)
3. Interview panel:
- Systems interview: some task for bash/cli commands that later turned into a fairly quick system design discussion + classic system design task. Interviewers were nice and I think I did well overall
- Coding interview: 90 mins of coding alone. This is the part I didn't manage to handle well, since I started from the wrong side (wanted to iterate over the approach later). Once the time passed, interviewers re-join and you're discussing your solution/potential improvements. The interviewer was somewhat a little cheeky and annoying, I'd say. Solved 3.5/5 of the features and explained how the ideal solution would look like.
- HM interview: typical behavioral interview, liked the guy conducting the round.
- Design interview: not sure if the "design" is the right word for this, since it consists of another typical LeetCode medium question + OOP-like design of one famous game. The interviewer was super polite and nice.
Overall the interview wasn't the easiest one, while I wouldn't say it was hard - just somewhat specific. There was also a guide provided by the recruiter, which explains what you should prepare and actually turned out to be quite helpful. I wouldn't say I failed the interview panel (it was good overall), apparently it wasn't enough to meet the bar for that particular role :)