Someone who is...
- consistently trying to help other developers improve through mentorship, community involvement or teaching opportunities
- has the foresight to predict edge cases and trade-offs for solutions to technical problems
- has experienced many failures and is able to recover from them quickly when they arise
- can clearly articulate their knowledge and explain technical concepts in multiple ways
- has confidence in admitting what they don't know and the ability to ask questions when they need help
- has familiarity with common patterns of programming, application architecture and structure so they can easily navigate new technical environments and tools
- knows how and when to refactor code without burning things to the ground (or knowing when to just burn things to the ground)