Matt Briggs gives some broad descriptions of the levels of developers.
A senior developer understands that everything in our field involves tradeoff, and will look for what that is for design patterns, libraries, frameworks, and processes.
Software development is all about compromises, and prioritising the right ones.