I was recently asked by the editors at The Muse to contribute some thoughts on what makes a software engineer “senior” versus “junior” or “mid-level”. This is really hard because it’s a subjective and relative title. One thing that I do believe is that the title “senior engineer” has little to do with number of years of experience, but a lot to do with the quality of those years of experience. I ended up coming up with 7 characteristics of senior engineers: 1. They Have Strong Debugging Skills 2. They Know When Not to Do Something 3. They Mentor Others 4. They Review Code Meticulously 5. They Can Communicate Complex Technical Ideas 6. They Specialize 7. They Admit What They Don’t Know To read more including full explanations of the above list, check out the article on The Muse. If you have additions to the list, feel free to let me hear them on Twitter.