I had 5 interviews. 2 generic Initial ones, and 2 hands-on: simple leet code, and system design (which i was asked to prepare for with a drawn architecture of my previous job) and personality questionnaire. Only afterwards after recieving 2 praising email about their impressions of me, they asked for my salary expectations. With no further negotiations, they replied a week later to tell me they have "shifted" their view for the role. This feels like a big waste of time for both parties, the interview process is somewhat longer than most firms, and the company isn't a startup, and to swing last minute decisions with no bargaining over salary or expectations at all seems very unprofessional.