First round is a typical screening round, talked about experiences and salary expectations.
Second Round is an interview with the hiring manager but turns out it was not the hiring manager that interviewed me but another lead technical support engineer, apparently the hiring manager was busy, but nevertheless the session went quite well with some insightful discussion into the company and the role.
After this I was invited to the 3rd round, which was supposed to be the technical round. Received an email from the recruiter to submit my availability, which I submitted accordingly (for Thursday the following week). Received another email asking if I could manage the session earlier on the week (Monday), which I AGREED to do. However later on I received the confirmation email for the interview session on my ORIGINAL date, which I felt weird. Emailed back asking for confirmation which I didn't received a reply (understandable since this is late Friday).
Emailed again on the following Monday asking for confirmation (the interview is supposed to happen today which is the early date that is proposed). Received the reply which confirms the interview session to be on my original date (which is Thursday) with no explanation given for the proposed earlier session (I specifically clarified about this), weird but fine I thought.
A day before the interview, I received an email stating they've filled the position and will no longer be proceeding with my application. It's a shame this had to end this way. If there's a more ideal candidate, I rather be rejected after the hiring manager stage since I've tried my best, than be given a hope of advancing further only to be told off before the session. Such a shame... but I guess they have the decency to not waste more of my time.