A software developer’s career is divided into three stages: junior, middle, and senior. This terminology is widely applied through the industry for a better understanding of a qualification level, as well as defining both salary and responsibilities.
Acknowledging these seniority levels will help you build more accurate career expectations and goal setting. Also, this guideline should help you improve both internal communication, and communication between customers and vendors.
TRAINEE: FRESH BLOOD
Many companies practice hiring entry-level engineers with only theoretical knowledge and no work experience. In this case, a beginner’s job title will be a Trainee.
Applying Meilir Page-Jones’ stages of expertise, we cut this early developer’s life into three roles: Innocent, Exposed, and Apprentice.
Initially, engineers have little to no exposure to real development. Exposed developers make the first steps towards professional coding. Finally, an apprentice is already minimally equipped to jump on a real project.
WHAT YOU SHOULD DO ON THIS STAGE:
- Apply for internships.
- Have a part-time job.
- Create a portfolio.
- Contribute to open-source projects.
- Go to a bootcamp.
JUNIOR DEVELOPER: TRIAL AND ERROR
The main problem of being a junior developer is the fact that they often come and go. Companies hire junior devs for freelance or short-term projects mainly with one purpose – reducing the contract cost.
On the other hand, juniors can possess the motivation and energy that many senior people no longer have. Juniors work hard knowing their efforts will pay off by enabling them to move sooner to the next level.
Referring to the Dreyfus Model, we may divide the junior level into two phases: Novice and Advanced Beginner.
To get the ball rolling novice developers need universal context-free rules. Being impatient, they want immediate results. At the same time, mistakes can paralyze them, since they do not know how to handle them.
Advanced beginners start departing from following fixed rules and formulate general principles based on similar situations they’ve dealt with. The main issue is that they overlook the larger context, perhaps considering it irrelevant.
WHAT YOU SHOULD DO ON THIS STAGE:
- Ask questions.
- Observe how teams function.
- Get familiar with an IDE.
- Learn how to write maintainable, clean code.
- Learn how version control software works.
- Search for a mentor.
- Embrace the power of code reviews.
MIDDLE DEVELOPER: WORKING BEE
Normally, juniors with more than two years of experience can up their skills to become a mid-level specialist. The Dreyfus Model describes the middle developer as Competent. At this stage, they can also do a decent job of troubleshooting and debugging.
Competent programmers are often initiative and resourceful. They strive for leadership roles on the team and can mentor novices. However, competent devs still lack the experience to set priorities, keep the focus on details, and they are barely able to reflect on their mistakes.
WHAT YOU SHOULD DO ON THIS STAGE:
- Enjoy teamwork.
- Keep It Stupid Simple (KISS).
- Don’t Repeat Yourself (DRY).
- Know SOLID principles.
SENIOR DEVELOPER: PROBLEM-SOLVER
Developers with deep specialized knowledge and tons of experience allowing them to mentor their peers are titled Seniors. In addition, senior devs are also competent in the business they support. Their knowledge may even expand to assist with marketing and overall business development. A senior developer will always think of what they are doing in terms of how much benefit it brings to the business.
In a nutshell, their job is to provide the best solutions to problems. A senior dev is always trying to foresee the issue and resolve it before it happens. As a problem-solver, a senior predicts the systems’ bottlenecks, and keeps in mind vulnerabilities and problems caused by the use of tools.
WHAT YOU SHOULD DO ON THIS STAGE:
- See a bigger picture. Your main question is “WHY.”
- Mentor. Your main deliverable is more senior developers!
- Develop social skills. Your job is also about communication.
WHAT’S NEXT?
Senior developer is a good starting point for another step on the ladder. Normally there are two ways. Some seniors want to move into more technical roles, others prefer management. Here are some options a senior may consider.
Architect. A highest rank of the technical career. An architect’s job is to design complex systems that will be implemented by teams of senior and junior developers. Depending on the focus of the business problem, there are enterprise, technical, and solution architects.
Product Manager. A product manager with coding experience will feel more comfortable in leading the product delivery. Knowing the development process from the inside, they will be able to manage the work on the product way more efficiently.
Senior Leader. The work of a senior leader has little to do with programming and is all about management skills: inspiring, motivating, leading, and strategizing. Making high-level decisions and defining a company’s perspective, a senior leader makes sure that all employees follow these decisions and believe in their purpose.