Lucene and ES implement a shortcut for filters that are restrictive enough. Since it's already optimized for figuring out if something falls into your filter set, you first determine the size of that. You traverse the HNSW normally, then if you have traversed more nodes than your filter set's cardinality, you just switch to brute forcing your filter set distance comparisons. So worst case scenario is you do 2x your filter set size vector distance operations. Quite neat.
As a person who used to take interviews, I thought discussions were the best way to figure out if someone is competent.
I mean, when I ended up in a discussion with someone, I felt like I did great. I had a good time and it frequently led to an offer.
As someone who's now interviewing a person or more every week (during a hiring surge), I still don't know of a better way to interview someone, but I'm not convinced this is great. A lot of people, who are unquestionably smart, coming into the interview after long careers in big companies, have a lot of trouble expressing themselves (especially if it's not in their native language), let alone selling themselves.
They come in trying to find the correct answer for each question, even if it's open ended questions to trigger discussion. And when asked for a concrete answer to something, they will instead fumble around, only touch upon the answer, and talk about something that distracted them.
We still frequently hire people who interview like that, but it takes a lot of thinking and extrapolating.