1. Уметь самостоятельно решать сложные задачи (анализировать, подбирать оптимальные варианты решения) в рамках своей компетенции (какая то часть приложения над которой работает в данный момент)
2. исходя из п.1. Хорошо и отлично знать инструмент (ЯП, Framework)
3. Не делать дичь, типа запросов к БД в цикле, т.е. знать как паттерны, так и антипаттерны.
Senior - это уже опыт, знание и умение архитектуры, понимание требований бизнеса, и как их переложить на архитектуру и код.