Sadly, if you know what a design pattern is and can name two then you are head and shoulders above 95% of developers.
Source: Been interviewing supposedly senior level candidates for the last three weeks.
The term "senior developer" is an unfortunate one because it can mean a really good, skilled and experienced developer. But it usually means 20 years of experience (1yr exp * 20) or they've just been around so long that the "senior" part refers to age.
When I interview candidates, I look for a good foundation for what they will be working with like do they know the difference between class and struct and the implications of using them (day 1 kind of stuff).
Then I ask them about how they would go about solving a problem they were unfamiliar with. Google-foo is a skill that must be learned and honed. I don't care if you can spit off all sorts of acronyms, I want to know if you are capable of using common sense to solve a problem.
Last but not least, how do they stay up-to-date and relevant. Not looking for the 8 to 5 developers and not interested in those cutting-edge guys either.
Must have good understanding of the basics, principals and skills in problem solving. Telling a block of code that you have a masters in CS will NOT make the bug go away.