With software playing such a critical role in the age of digital business, it is not surprising that the demand for software developers is huge and growing. Organizations in virtually every industry are looking for talented people who know how to build and maintain software.
If you have been coding for a while, you might wonder how to leverage your coding experience and advance to the next stage of your career. Fortunately, programmers have a variety of options as they look to expand on the mid-level corporate career path. Examples include developer advocate, technical product manager, and technical project manager—to name a few.
After programming, what’s next?
“We have seen developers go into devops roles, project management, business analyst, product management, and project coordinator positions,” said Thomas Vick, regional vice president for recruitment firm Robert Half’s technology practice. It’s relatively common as more and more people are wanting to get out of positions that are strictly coding roles. They are seeking positions that are more interesting to them.”
There are four common paths to career advancement for software developers, says Andi Blackwell, project management vertical lead, talent operations, at recruitment firm Toptal.
One of the paths is architecture. “These roles are highly technical and are focused on designing, building, and integrating the foundational components of applications or systems,” Blackwell says. “This would include roles like technical/application architect, solution architect, or enterprise architect.”
The move into devops is another common path for software developers. These positions are also highly technical, says Blackwell, and are focused on optimizing the tools, processes, and systems to build, test, release, and manage high-quality software in complex or high-availability environments. Devops roles include release manager, engineer, and architect.
A third path is leadership. “Roles in this area require both good people skills and good technical skills,” Blackwell says. “And each, in their own way, is responsible for ensuring that teams have what they need to succeed, whether technical, process, tools, or skills.” Roles on the leadership path include scrum master, technical project manager, product manager, technical lead, and development manager.
Business and developer advocacy
A fourth path is business development and client success. These roles are focused on supporting business growth and retention. Developers in these roles work with the sales team to bring in new clients, or with new and existing clients directly to help them use or implement the company’s products, Blackwell says. Roles on this path include sales engineer, client solution architect, and developer advocate.
How to position yourself for success
How can an ambitious programmer get on a corporate career track that opens doors to other positions? First, it’s a good idea to learn everything you can about the range of career paths and roles in your current company, as well as the field in general.
Developers “should do their research and read through job descriptions to make sure they have a thorough understanding of exactly what the positions they are seeking entails,” Vick says. “It is also good for them to reach out to a recruiting firm to better understand what the positions require and for advice on how best to get themselves set up to take a position like the ones they are seeking.”
Once you know you want to move on to a new position, a good next step is to pursue the skills required for the role or roles that interest you. Vick suggests researching the available certifications and classes for the positions you want.
“I’d also recommend they do their research and read job descriptions to help know what employers are looking for in those roles,” and reach out to recruiting firms for help in finding the type of positions they’re seeking, Vick says. “Any mentorship or coaching they might be able to find is also helpful,” he says.
Learning and advancing on the job
Programmers should consider looking for opportunities in their current place of employment to discover potential roles they can fill, Blackwell says. “Apply for open jobs to get hands-on experience, since many companies give priority to hiring internally for roles and may even provide financial help to complete courses and/or certifications,” he says.
In addition, programmers can look to gain experience in areas that are not part of their existing job responsibilities. “You can volunteer to help solve a particular problem by identifying key pain points you and your colleagues may experience, and step up by suggesting solutions,” Blackwell says. “This offers an opportunity to learn about the job, and be recognized by superiors for your helpful contributions.”
Find your best fit
Another way to get on-the-job experience is to look for opportunities at smaller companies, “which are often a great place for developers to do just this because team members often wear multiple hats,” Blackwell says. “You can typically utilize your current core skill set while gaining valuable experience in your chosen career path.”
Another possibility is to create new technology focus groups at their current organizations or within their community of programmers, to help others upskill in this area. “Within this, create opportunities for yourself and others in the group to learn and apply the skills,” Blackwell says. “Along similar lines, there may be technical groups you can join, on LinkedIn for example, where you can meet others with similar goals or experts in your areas of interest.”
Ultimately, advancing from a programmer position is about finding the best fit. “Understand and identify what you enjoy working on and what your core strengths are,” Blackwell says. For example, if you enjoy helping people perform at their best and grow professionally, perhaps those roles that involve managing people would be a great fit. If you enjoy helping clients solve business problems using technology, a business development role might be a good fit.”