One major thing which is required for your career growth is your ability to create value.
Let's talk about your impact - an amount of value created per unit of work.
I think you can easily find the relationship between impact and efficiency: the more impact you have, the higher is your efficiency.
The first principle of having a bigger impact is to focus on high-leverage activities. Remember the Pareto principle? This is exactly what you need to utilize.
Few examples of what you can do as a software developer to easily increase your impact:
Mentoring new people in your company.
There is a known fact that new employees take from 3 to 6 months to reach their normal level of productivity. In some cases it can take 2 years for an employee to reach an optimal performance.
If you can spend 1 hour a day for the first month of new hire (around 20 hours), you will spend around 1% of your annual work time (around 2000 hours) as an investment in your colleague's boosted performance. This can have a significant influence on their performance - hence providing a huge return of your time investment.
Taking part in interviewing process.
Improving the process, introducing new candidates to the company and conducting interviews are direct investments in your team and your product.
Getting great people onboard will have a huge return in a long run.
Stop reinventing the wheel and use other people's expertise.
It's better to invest your time into creating unique value rather than reinventing something which is already available. Open-source modules and components, 3rd party software, your colleagues experience and even outsourcing and freelance services are all viable options to get existing solutions faster.
Automating and optimizing the processes.
Some people say that manual repetition of work is the biggest sin of every programmer. You should not do what a machine can do for you.
A simple automation script can save several hours of team work in the long run.
If you optimize a build system and save 30 mins per day of waiting time, you will create 14 days of free time per year for a single developer. In a small team of 6 people it results in 3 man-months of additional time.
Learning and continuous self-improvement.
I will put this in bold: you should have a dedicated time at work for learning and self-improvement.
Nothing gives you the bigger impact and creates bigger leverage than investing into your abilities and available opportunities.
As you can see, the main topic (and principle) above is multiplying your efficiency by focusing on other people around you. And this is one of the major reasons why some software developers prefer to transition into management role - you can get the increased leverage faster.
Management is not the only possibility, though. The main idea is that if you want to grow past your glass ceiling you need to focus on increasing your impact.
Also, remember the second vital principle: your efforts should be visible. For example, if your boss does not know that you have mentored your colleagues and automated some mundane tasks, you won't be promoted sooner. You need to highlight your small wins and achievements and communicate the value your create.
As you can see, at some level relationships and communications become vitally important for your growth. Do not neglect those aspects and invest your time into mastering some soft skills.
Do you want to grow differently? Join Metadevelopment and get new superpowers!