
A developer with at least ten years of experience has learned a few (or many) technologies in depth, and has learned things that only come with experience. Someone with ten years of experience is quite different from someone who has one year of experience – ten times.
The true senior developer has learned how to work effectively with other teams, with management, and with customers. The senior developer can understand a problem and, based on having experienced trying to solve similar problems, come up with a good solution. Not only that, the senior developer can explain that solution clearly to the development team and patiently guide them to a proper implementation of that solution.
A senior developer is a technical leader – whether or not her or she has the official title. Leadership is taken not given. The senior developer sees a need and steps up to make sure it gets filled properly. The senior developer understands the nature of the politics in an organization and is willing and able to engage with it productively. Anyone who claims to avoid politics in the office is not ready to be a technical leader. Whenever you have more than two people, you have politics. And choosing not to engage means you will be subject to the influence of those who are willing to engage in politics.
The senior developer often is encouraged to move into management, as most companies don’t really have an advancement track for technical people. Some people have skills and interests in this area and would do well to move in this direction. Managing people provides new types of challenges. As one wise manager once explained to me, “When I was a tech, I’d solve a problem and the next day it would still be solved. With people, you might solve a problem and the next day you come in and have to solve it again.” If you find this idea challenging and interesting, this is an excellent way to advance, and there are literally thousands of books and training programs available to assist you in this career path.
Similar to this is becoming a consultant. To succeed as a consultant, you need excellent technical skills, excellent communication skills, and excellent marketing and sales skills … plus the ability to keep books balanced and understand legal contracts. It can be a lucrative and rewarding career, but it takes a lot of work. Gerald Weinberg’s “The Secrets of Consulting” has been the definitive reference for over 35 years.
Some companies with multiple projects in the work will have a role for an architect. This is someone who is tasked with understanding various technologies and architectural designs in some depth, while not necessarily implementing production code on any particular project. As a project needs to add some new set of functionalities the architect is brought in to recommend a solution that will work well for the project and with other company projects as well. This necessarily means that the architect will have some technical knowledge of the other projects in the company as well. It can be very demanding, but for someone who loves to learn about the next new shiny thing and doesn’t want to worry about the details of implementation, this could be a very rewarding career. Neal Ford has written many books on software architecture and is one of the main thought leaders in the space.
Finally, in many larger companies, there is a growing popularity in the role of a “staff engineer”. This is a technical role that has a variety of possible roles and responsibilities. It might include helping the less experienced developers to develop skills by mentoring them and managing code reviews. It could also be more like the architect role discussed earlier. Or it could be someone who keeps senior management informed about strategic technologies that could help the company become more competitive going forward. The primary reference for this career path is “Staff Engineer” by Will Larson. This is a relatively new role for those pursuing a technical track, so those entering into such a role could have a lot of flexibility in determining how best to apply their skills to the benefit of the company.
While this is the longest entry of this series, it still only scratches the surface of what a senior developer needs to know. As you grow your skill set – technical skills and soft skills – you will find that a wider range of opportunities are available to you. We are indeed fortunate to work in such a dynamic and growing industry.
Where would you like to see your career grow in the coming years?

