Software Developer Job Titles and Responsibilities: Spheres of Influence

Chuck Lafferty
Confident Coder
Published in
9 min readJul 17, 2020

--

When developers enter into the software industry they are typically given a title like application developer or junior software engineer. Ambitious developers looking for career opportunities want to know what it takes to get promoted. They usually ask questions like what does a senior developer do? How do I become one? What is the next level? As an engineering manager I get this question quite often. It’s my job to explain what I expect for that individual to be promoted and what their new responsibilities would be. To explain my thoughts I break the roles down into 5 levels into something I call spheres of influence. I hope this helps you as well.

The roles I will refer to for this article will be Jr Developer, Senior Developer, Lead Developer, Principle Developer, and Chief Developer. I will leave software architects out to keep it simple.

Below is a diagram of the Spheres of Influence as it relates to software development titles. I will detail what this diagram means and what i believe the responsibility of each developer job title is.

Spheres of Influence Chuck Lafferty

Junior Developer

A junior developer typically has very little industry experience. It could be their first development job right out of college. What is expected of junior developers at most companies is for them to learn. Over the first few months managers and team members do not expect much. At early stages, any productivity out of a junior developer is a win for both the company and individual. Typically they will be asking a lot of questions, will need extra guidance, and be focused on small tasks. This is where the diagram above comes in. The junior developer will most likely have the least influence and impact on the team. That is until they know enough and are confident enough to speak up. This takes a lot of effort on the junior developer’s part and patience, time, and coaching from those more senior on the team.

Junior developers will be focused on small tasks. It will be difficult for them to understand the system as a whole. They may need help setting up the project, getting code running, or creating PRs. The PRs may be highly scrutinized in the beginning but after some time the junior will become more knowledgable. They will look to take on larger tasks or full features. Once a junior developer becomes skilled enough to independently take on a full feature they will be ready to be promoted to the senior roll. This could take a few years of consistently good work. However the promotion would be inevitable, especially if they show passion for software development and do great work.

Senior Developer

A senior developer has mastered the small tasks and has out grown the first sphere. A seasoned senior developer is capable of taking on large features by themselves and delivering the feature on time with quality work. Senior developers don’t need to ask for much assistance. They are capable of finding solutions on their own. They are supporting those around them. A senior developer will make sure to cover edge cases, think about non-functional requirements that have bitten them in the past. They will add good logging statements, add configurations, and use SOLID design principles and defensive programming skills. Their features are typically successful. They can be counted on to do good work.

A senior developer looking to grow into the next role, lead developer, would start to learn about what it takes to lead a team. This is a different skillset than they have used in their career up to this point. Until now, they may have only worried about their own user stories or defects. They feel very confident in delivering any technical feature given to them. However, in the next level up, the sphere of influence grows into the team. A senior developer looking to become a lead developer will start by taking on features that requires more than themselves to accomplish. They may be given a larger project with 1–2 juniors to help accomplish. The senior developer now is responsible not only for his user story but also those which he is dependent on. New skills like mentorship, leadership, and coaching come into play. Typically the senior developer will ask for advice about balancing work and meeting time. He will ask about the right amount of time spent helping someone vs letting them figure it out on their own. The senior developer is doing all this while still trying to complete their tasks. This can be stressful to a senior developer as depending on others and being responsible for all the work may be new to them.

After a few years, once a senior developer has shown they are capable of leading the team through small features, working with others in a collaborative fashion without becoming a dictator, and still producing high quality work. They will probably be given an opportunity to become a Lead Developer. Their sphere has grown from feature to team.

Lead Developer

A lead developer is a trusted technical resource. They have a wide range of skills to master outside of software development. As a lead developer you are still responsible to deliver all your features. As a matter of fact, you may still be completing the bulk of the features on the team. But you are now responsible for the entire team’s deliverables and how they are built. There is no more important person on a team than the leader. A great leader can inspire those around him to accomplish great things. A great leader holds people accountable, gives feedback on work, and goes the extra mile to make sure what they are delivering as a team is quality work. At the lead level you need to develop your people skills. You have to know how to talk to people to find and resolve issues. You need to make yourself available for the team and help guide technical decisions. You may need to create an architecture for others to implement. You could be responsible for assigning work or grooming the team backlog. You may need to work with business partners to understand software requirements. You may need to work with QA to resolve any bugs. And, of course, if there is an issue in production you are the first on the call to help troubleshoot. What lead developers may struggle with is, for the first time they need to coach or give negative feedback to low performers on the team. If work is delayed or not delivered it’s a bad reflection on the team and possibly the lead. You are doing this all while still completing your own work.

The lead developer role is not easy. You have a chance to add tremendous value and help others grow. Lead developers that have mastered the role have great influence over the decisions of the team. Thus the team Sphere of Influence is covered. Lead developers wishing to become principles have another huge challenge to overcome. How do they start to influence an entire organization?

The lead developer needs to start to build a network and relationships with other teams within the organization. At large companies your organization could have 100’s of developers with dozens of major software development projects. This is a great opportunity to use the people skills you learned as a lead developer. You can reach out to other teams to see how they work. There could be opportunities to share code and collaborate so your company is not recreating the wheel on every project. A lead developer wanting to be promoted to principle is consistently over years showing extraordinary work that is being recognized by leaders within the organization. They are starting to champion for changes that will improve different aspects of the project. They are still mentoring and teaching those around them. After a lead developer has been recognized as someone influencing the organization they may have a chance to be promoted to the next title, Principle Developer.

Principle Developer

The principle developer has now mastered what it takes to run a team. It’s possible for him to take on large software projects, coordinate with stakeholders, draw up software architectures, motivate other developers, and mentor those that need it. All while still producing great work themselves. Typically by this point the principle developer has mastered one or more programming languages. They may be giving technical presentations often to both developers or senior leaders. They are able to communicate their ideas well and have great experience to share with the team. They are also starting to connect the organization together and finding areas to reduce waste. They are introducing new technologies and ideas to the organization. They have a passion for software and they like to demonstrate it. A principle developer is recognized by the senior leaders in the organization as someone they would go to for technical advice. They are visible to the organization and always ready to help explain the architecture of the projects they built. They are called on for the biggest software projects. They are called in when something needs to be troubleshot as they are more than likely the expert. They have mastered the task, feature, team, and organization spheres. Their influence and impact is big within the organization.

A principle looking to become a chief must yet again jump a big hurdle. A principle that wants to move toward the chief role now needs to find ways to influence the entire company. At large software companies this could be 1000s of developers. How would a principle approach that? The principle would start reaching out to other teams outside their organization. They would start to understand the issues the company faces. They would start to discover how to connect teams, technology, and business outcomes together to create a more efficient company. The principle would need to make an impact at the company level. After producing quality work on a large scale for multiple years and connecting organizations together, a principle may be promoted to a chief developer.

Chief Developer

A chief developer has mastered the influence over his organization. He is seen as the go-to person for anything technology related. He is invited to speak at company events about the progress of company technologies. The chief developer is looking to solve problems at the company level. They add the greatest value and could help make decisions that can influence 100’s if not 1000's of developers. They could be called on to help debate major technical discussions for the company or possibly help choose vendor software. The chief developer is counted on as a trusted resource, not just from their organization, but also those leaders within the company. Through their years of experience and wisdom chief developers are depended on to overcome the hardest problems, with potentially, the biggest rewards. The have mastered influencing an entire company.

It does not stop. A chief developer stretch assignment is to start influencing the entire industry. They may give technical presentations at conferences. They may be blogging about things their company has accomplished. They are a beacon out in the world attracting talent to the organization by showcasing the amazing technologies the company may use or software they helped build. A lucky few may have a chance to influence millions of developers.

Conclusion

The Spheres of Influence is something I use to help others around me gain understanding of what I think it takes to reach the next level. There are few great books on the topic as well, like “The Manager’s Path: A Guide for Tech Leaders Navigating Growth and Change” by Camille Fournier. If you are interested in learning more about what it takes to go from junior to senior or senior to lead i recommend this book. It’s accurate in what is expected from each role.

I hope I’ve given you a different perspective on what each developer job title responsibilities are and how those rolls influence a company. Thanks for reading.

--

--