Вот, тут про Java, но сути не меняет.
Все равно человека собеседует человек, у которого имеется своё представление о том, кто такой Senior. Для кого-то это чел, который знает как оценить сложность алгоритма и который на листочке напишет сразу несколько способов сортировки. Для кого-то это чел, который ответит на вопрос вроде "В чем разница между synchronized, ReentrantLock и AtomicReference?"
Для меня градация приблизительно такая:
Junior Базовые знания core java (типы коллекций и разница между ними, остановка/запуск потоков, что такое generics, три "слона" ООП). По библиотекам вопросы чисто поверхностные.
Developer Всё что junior + хорошее знание библиотек, которые перечислены в резюме и которые мне нужны. Если написано, что человек знает XSLT, а мне это щас не надо и я знаю что в проекте это не нужно, то я и не спрашиваю. Ну и вопросы уже более глубокие, например как работает наследование в generics, как синхронизировать потоки, что быстрее: LinkeList или ArrayList и почему, класслоадеры и т.д., базовые паттерны типа синглтон, фасад, итератор и т.д.
Senior Developer
Всё что developer + рассадник вопросов "Почему". Здесь человек сознательно загоняется в тупик разными "почему, зачем, нафига" и смотрится его реакция. Здесь очень удобно использовать предыдущий опыт кандидата, обсудить его проекты. Например "Вот ваш мегапроект из резюме, стоит на Spring, WebServices и JPA. Зачем вам JPA? Какой JPA, чем один от другого отличается? Почему именно так, а не иначе? Как бы вы сделали по-другому/быстрее/удобней/красивее?" При этом ответы типа "Так сделали до меня" или "Просто так прикольно" автоматом идут в минус. Если человек не понимает, для чего нужно так или иначе в своей родной среде, то извините, это никак не Senior. Здесь важно умение аргументировано выбирать лучшее решение и доказывать, что именно так будет лучше, чем по-другому.