8+ Years of Experience isn’t the Definition of a Senior Software Engineer…
One of my favorite things to see in recent years in the Software Industry is how companies are no longer expecting Software Developers to have a specific degree, or even a degree at all.
I like this because to get into the industry, all that really matters is what an individual can do. It does not matter if an applicant has a Bachelors's or Master’s degree if they cannot solve a programming exercise. It doesn’t matter that they can explain what Big O Notation is for if they don’t understand how MVC works.
Full disclosure: I have a Computer Science Degree and in my time as a Software Engineer, I have never, outside of an interview, needed to calculate the Big O. Perhaps if you are a Site Reliability Engineer somewhere dealing with tens of thousands of requests a second, perhaps you would need to do that, but I guess the majority of us are not dealing with it.
All of the information people need to get into the industry and to grow can be found through a combination of online resources and experience with hands on writing software, which has caused this switch in expectations for a degree.
But I think the switch in expectations should not be finished yet, especially when looking for a Senior Developer. Being a Senior Software Engineer in a team means a lot more than just having a lot of experience… Obviously more is better, but a job description shouldn’t have “8+ years of experience” as the requirement to be named a Senior Engineer.
Someone can have 9 years and not have all the right skills while someone with only 5 years could have all they need.
I propose we replace that sort of hard number requirement with a few things which are more valuable to the team. On top of the normal things expected of a Software Engineer, here are the things which I want in Senior Engineers:
Good Coding Practices
This one is hopefully the most obvious and could even have not been included in this list because it’s such a “well of course” point, but it is often the basics that separates good engineers from great engineers.
Easy things such as naming variables and methods efficiently go a long way. Keeping…