Before I get started, I’ll give you a bit of background into my experience so you might understand why I’m even qualified to answer this question. I have over 30 years experience in the tech industry, building websites and systems. In engineering I’ve worked as a trainee, graduate, junior, mid-level, and senior developer. I’ve gone on to be a team lead, tech lead, development manager and head of development. I’ve worked with hundreds of developers most of whom I’ve hired, and I’ve interviewed hundreds of people. I’ve had my own company before, and I now own Huyton Web Services.
I’d love to just give an answer to the question and when we hire a new senior, we can all refer to it, but, in reality, things are a little more difficult (as is the way) and as usual the answer is “it depends”. Before I explain, let me go into what you might expect from a Senior Developer.
What do we want?
Mid-level developer, Senior developer and Team lead all overlap in their duties, but in general terms a mid-level developer does most of the day-to-day coding, a senior will do the more difficult tickets/cards and help the mid-level understand some of the more difficult concepts. A Team lead will explain the more general system to the juniors and take some of the leadership/management duties from the Managers.
A Senior Developer:
- Can complete any ticket.
- Will be asked questions by the mid and junior developers.
- Will be respected by their peers.
- Can understand complex concepts.
- Understands the domain/system completely including code and infrastructure.
- Will code
- Has a priority to develop the system.
Unfortunately, Senior developers are held up in meetings, used for onboarding juniors, stuck creating tickets, completing peer reviews, etc., etc. and generally called upon for every business question because they understand the system. Although, this is all part of the development life cycle and part of their responsibilities, a senior developer’s main responsibility is to code and they should be doing this 60-75% of their time.
Types of Senior
In my experience there seems to be 3 types of Senior Developer, so lets describe these.
New Hire Senior
If you’re hiring, then this is undoubtedly the person you’ll hire, but chances are it won’t be the person you are looking for. This person has usually worked for a company for about a year as a junior, been promoted to a mid after about year and then, after some time, for their next pay rise they have been promoted to senior. However, they have looked around at wages other seniors are on and think they deserve more because they are senior (with 2-4 years experience).
This type of senior will know the system they work with, will be able to go to any line of code in that system and tell you what it does and why, but move them to any other system and they will have much less knowledge. They will likely have no idea about languages other than the one they work on and even then, will not have read more than what they need for the system they work on. They will likely know the environment they work in very well, but other than that will have little knowledge of other environments.
For example, a CV says Senior React Engineer or something similar and the agency might say they are a solid senior. The developer does great on the React test, in the interview for the questions on React and the developer answers everything flawlessly, then on asking about JS and TS and the developer does ok but has a few holes in their knowledge. If asked about design patterns, coding standards, even in their chosen language they will likely show a lot of missing knowledge.
If this developer was to be hired as a senior you would expect senior level, what you would get would be mid or junior and in worst case you would find your team becoming hostile towards the new hire as they cannot keep up with the team. The hostility could be exacerbated when the team understand they are probably on less wages then the new hire.
If you have a more junior team or a system that uses a specific tech, then this might be a good hire, but generally, this type of senior developer is not what you are looking for and you should either accept them as a mid-level until they are ready to be a senior in your company, keep them on a 6 month trial (remove them if they do not fit) or simply do not hire.
Superstar Senior
This is closer to the person you are looking for in a senior and more like what you would expect to find. They have 5-10+ years experience, have worked in a few roles with different types of code and languages, they might have worked as a system architect or DB admin or something outside code, but it wasn’t really for them, and they want to get back into code. This type of senior will have a good grasp of design patterns, will understand workflows and concepts outside code and relating to full systems, for example they will understand REST and have built their own API and consumers, they will understand the pros and cons of headless, might have built their own CMS and know the pitfalls and will know branching strategies and why we would use one over another.
This type of senior developer may have a couple of weaknesses that you might want to look out for. The first is burnout. If you hire a developer like this, they might try to do everything and end up not getting much done at all before they burn out. This is bad for the company and worse for the Developer. They may have already suffered burnout before and are trying to get back into coding. The second issue you will want to look for is arrogance. Some arrogance is expected as they are good at their job, but if they think themselves better than everyone else, they will not listen to others and will not be respected by their peers. There will be others that know more than they do and debate is to be encouraged, but a good team lead or manager will not let disagreements get out of hand.
Wise Senior
The wise Senior is the Developer that has been around for years, everybody knows them and they have helped everyone at one time or another. They know everything in the company that has anything to do with tech from the printer to the monitors to the cron jobs running the scripts that keep the reports running. This is the person that when the system goes down everyone looks to them to get it back. And they do. Without fuss or issue.
The usual problems with this type of senior is lack of any documentation, they already know it so won't document. They will also loath any change they have not brought in themselves. Management is impossible as they know they are untouchable because without them the system will not function. They can usually be the most arrogant person you could ever meet, but somehow everybody likes them and that is just ‘their way’.
You won’t usually hire this type of Senior Developer as they usually come with a business and will retire or “get into gardening” before moving to another company, but if you do hire one they may save the system on more than one occasion, but may also be the one to hold new tech back.
Finishing words
You’ll usually have one or more seniors per team that the other developers can rely on, so if you’re hiring one make sure the team can rely on them, if they can’t then it can destroy a team dynamic. A better option might be to promote a mid-level and higher a new junior or mid developer.
I’d love to know if you have hired any of these types, are one or know one. Let me know and if you have an idea for an Article, contact us and we’ll try to put it together.