Yes. Not all talented software engineers get promoted.
Promotions work differently across organizations.
Sometimes the next tier includes one specific trait or skill that the engineer lacks—say, being sharp in performance optimization, understanding operating systems well-enough, and speed in fixing emergencies.
There may be a quota of promotions approved by senior management and the engineer doesn’t make the cut this time.
A higher level engineer may hit their limits within the corresponding role. For instance, not every senior engineer makes a good team leader or a technical manager.
The management chart may be designed around behavioral traits—mostly soft skills that an upper tier requires. Being unable to take critical feedback without escalating issues could be a red flag for some, or always coming up with drastic ideas that cannot be applied in practice (or don’t make business sense).
Great engineers are hard to find and can be really profitable for an organization. Promotions often bring additional job requirements, and occasionally the weekly time spent on actual development is trimmed thanks to meetings, reviewing project requirements, approving documentation etc. Losing valuable billable hours can be postponed along with the promotion for this reason alone.
I have also written about what one can do when a colleague gets promoted instead. In the article, I have talked about the possible reasons why. One reason is that the colleague works better and is more knowledgeable about the business. The other reason could be that the employee has leadership potential.
Certainly, a promotion is not the only thing a company can offer to its top employees.
Here are some employee perks that can be extended to reward high-performing employees, even non-engineers.
Employee motivation strategies are vital in any organization. These strategies help in creating a positive work culture.
In any case, managers often know who to promote. Check out this article to understand how such processes work in a nutshell.