There are three common developer qualification levels — junior, middle and senior. If you’re new to managing and hiring development teams you might be wondering what makes developer senior or junior. What level of job expertise or certifications should you expect? How do you decide how qualified should be next team member you will hire? How do you make sure that you are hiring a senior developer?
A junior developer is someone who is just starting their career. He needs constant help and guidance both on the technical side and understanding the business logic and requirements. Junior developer might struggle with the programming language itself and the toolset he has to work with. He will make a lot of mistakes that have to be reviewed and corrected, or they will become an issue later.
They are just out of school and usually have less than about a year of experience. You can assign tasks that more experienced team members will be less enthusiastic about to junior devs and they’ll be happy about it because they’re craving for experience. They think they know a lot because they read a lot about software development and have side projects, but usually, their choices are too naive because they haven’t worked on a project end to end. The good thing is they are always looking for new libraries and technology so they can add some fresh ideas and diversity to the team.
Typically you wouldn’t hire a junior developer if you don’t know what you are doing and don’t have a middle or senior developer looking after him. They have problems working with requirements and sometimes do things their way just because they think it’s right. They are also terrible at debugging issues so don’t expect them to fix bugs quickly if someone is not helping them.
A middle-level developer has some experience already. He has worked with the language on paid projects for several years and has done enough work to understand the reasoning under business requirements. He can work independently and productively and can handle most of the typical tasks on his own and reach out for help when needed. He still has problems with new types of jobs he never worked on or new technology, but given enough time can work through them with the help of senior developers.
Most of the developers are middle or intermediate level. A developer can stay intermediate for their whole life, but generally, it’s someone who has less than ten years of experience. Middle-level developers are doing exceptionally well on maintenance tasks and pieces of work where they can focus on the specific area, but they will have trouble overseeing the system as a whole. They can troubleshoot issues and debug problems very well but still, need the help of senior devs from time to time.
Middle developers are a good choice when you don’t have tasks that require a lot of research and designing solutions from scratch. They take requirements literally and usually won’t tell you if a specific requirement has problems and will take a lot of effort to implement. They have seen results of typical design problems and are trying to avoid them, but they still don’t recognize common patterns in systems where problems are occurring and will have trouble pinpointing them.
A senior developer has even more experience. There’s no exact number of years someone has to work to become senior and no specific certification for that. Senior developers worked long enough to be able to research complex problems and design their solutions to them. Good senior developers try to use existing solutions though because they know that the best code is the one that hasn’t been written. They can mentor junior team members and help middle devs with occasional blockers they encounter.
A senior developer is usually an expert in a chosen stack. He can work on problems no one knows how to solve. He can take the responsibility to make design decisions. Most of the issues he encounters was already occurring during his career, so he knows where to look at. Senior developer knows how to deliver a working product and how to meet a deadline. He can cut corners and tell you when something should be done the right way to avoid problems in the future. Compared to junior developers they are much more conservative when choosing the technologies to work with, so working with junior devs is beneficial for both.
If you have enough budget for a senior dev will be the best choice because he will be able to handle almost any task you will ask him to complete and will help you build out the team. Note though that if a junior or middle developer works happily on any job, senior developers are pickier. They’ve worked on many projects, and they’ve seen what a bad workplace can be like. They are looking for interesting and challenging tasks. They will also argue with you about the business requirements because if they know what problems it will bring and you will have to either convince them or change the requirement.
Who do you need to hire?
There are different levels of developers because there are many types of work that has to be done. There are typically a lot of moving parts in the project, and plenty of coding has to be done that junior developers are capable of. In the meantime, more experienced developers can focus on more significant issues and bugs that need to be fixed. Another thing to consider is the availability and cost of experienced developers.
Juniors are usually two times cheaper than seniors, and there are more of them available. If you expect your project to run long enough, you will see your junior devs slowly growing into middle-level devs and becoming next leaders in the team.
A middle-level developer is always a safe choice though he will have trouble solving some problems. You can work around this by hiring a temporary consultant to help him out.