Stop Waiting for That Promotion—It's Probably Never Coming
The uncomfortable truth about promotions, office politics, and why you need to focus on what you can control
Ever caught yourself refreshing LinkedIn to see if your coworker got that promotion before you? Or maybe you’re stalking the org chart at 2 AM trying to decode what “Senior” actually means at your company versus “Staff” versus whatever made-up title they just invented?
Yeah, I’ve been there too.
Let’s talk about why we’re driving ourselves crazy over titles and what we should actually be focusing on instead.
The Promotion Black Box
Career advancement in software development often feels like a complete mystery. You pour in effort, you’re grinding on skill development, shipping features, helping teammates, and yet the timeline and criteria for promotion remain frustratingly opaque. It’s like throwing inputs into a black box and hoping something good comes out the other side.
You see your teammate who joined six months after you suddenly sporting a “Senior” title. Another person on a different team got promoted after two years while you’re sitting at three and still waiting. And management keeps saying things like “you’re on the path” or “we’re looking at it for next cycle,” which tells you absolutely nothing.
Here’s where a bit of philosophy actually helps, stoicism teaches us to focus our energy on what we can control while accepting that outcomes depend on factors beyond our influence. Instead of obsessing over “When will I get promoted?”, shift to “Am I becoming an engineer worthy of promotion?”
What You Can’t Control (So Stop Losing Sleep Over It)
You can’t control whether your manager’s boss decides there’s budget for promotions this quarter. You can’t control if they hired someone externally at the level you’re gunning for. You can’t control office politics, whether your manager is good at advocating for their team, or if the company just decided to freeze all promotions because the CEO read a blog post about “doing more with less.”
You also can’t control luck. Sometimes people are in the right place at the right time. They join right when a critical project needs someone, they get face time with executives, or they just happen to work on the thing that becomes the company’s biggest success story that year. That’s not something you can replicate by working harder or being smarter.
The market’s the market too. If you’re at market rate or above for your level, you really can’t expect to get paid significantly more unless you do something to put yourself into a different marketplace.
But if you’re below market? That’s something you need to address, and probably not by waiting around for your current company to figure it out.
What You Can Control (This Is Where the Magic Happens)
Write code that doesn’t make your teammates want to cry during code review. I’m not talking about being perfect, I’m talking about writing code that’s thoughtful, readable, and doesn’t create technical debt that everyone will curse you for six months later. When people trust you with the important stuff, that matters way more than any title.
Help that junior dev figure out why their async/await isn’t working. Mentorship isn’t just a buzzword to put on your performance review. It’s about actually making your team stronger. When you can unblock people, explain complex concepts clearly, and help others level up, you’re demonstrating leadership regardless of what your title says.
Step up when nobody wants to tackle that gnarly legacy system. Technical leadership shows up in the hard moments. It’s volunteering to figure out that ancient microservice nobody wants to touch. It’s being the person who can navigate ambiguity and make architectural decisions when there’s no clear right answer.
Create business impact, not just features. This is the one that took me forever to figure out. It’s not about shipping code, it’s about shipping code that moves metrics, saves the company money, or enables new revenue streams. Learn to speak that language and document how your work connects to business outcomes.
The Art of Documenting Without Obsessing
Keep a running doc of your accomplishments. Not in a neurotic “I logged every single commit” way, but in a “here are the meaningful things I did” way. When review time comes around, you’ll have receipts. But don’t obsess over it. Don’t spend hours crafting the perfect promotion packet every month. Just note the wins when they happen and move on.
Your professional worth isn’t defined by whether you’re a “Senior Engineer” or a “Staff Engineer” or whatever title your company uses. I’ve seen incredibly talented engineers at lower levels and absolutely mediocre ones with impressive titles. The title is a signal, sure, but it’s not your identity.
Speaking Up Without Sounding Desperate
You do need to advocate for yourself. But there’s an art to it. Learn to professionally communicate your value without entitlement or desperation. It’s not “I deserve to be promoted because I’ve been here X years.” It’s “Here’s the impact I’ve created, here’s how I’ve grown, and here’s why I believe I’m operating at the next level.”
If you’re genuinely performing at a higher level and your company isn’t recognizing it, have the conversation. Be direct. “I believe I’m operating at a Senior level based on X, Y, and Z. What do I need to demonstrate to make that official?” Sometimes you’ll get useful feedback. Sometimes you’ll realize they’re stringing you along.
When to Stay, When to Go
I’ve never really cared that much about promotions per se. I come in to do a job, do it to the best of my ability, and that’s it. I look at the salary I negotiated for as what I agreed to. If I want more, if I believe I deserve more, and the company isn’t willing to make an adjustment or work with me on that, then I’m going to look elsewhere if that becomes the issue.
Because here’s the truth: if money or progression becomes the problem, the best bet is often to move to another gig. You can spend years waiting for a promotion at one company, or you can jump ship and get a better title and better pay immediately. It sucks, but it’s often reality.
Sometimes the stoic path is accepting a slower trajectory at a company you love with people you want to work with. Other times, it’s courageously seeking growth elsewhere because you recognize that this place isn’t going to give you what you need.
A job is just a transaction. You provide a service, you provide a skill, and in return you get paid, you get benefits, you get all these different things. If it gets to a point where it doesn’t work out anymore, then you take your services elsewhere. That’s not disloyal or ungrateful, that’s just being realistic about the professional relationship.
Finding Satisfaction in Mastery
Promotion is one form of progress, but it’s not the only form that matters. Deep technical expertise, the respect of your peers, the ability to solve problems that other people can’t. Some of the most impactful engineers I’ve worked with weren’t the ones with the fanciest titles. They were the ones everyone went to when shit hit the fan.
There’s real satisfaction in mastery. In understanding a domain so deeply that you can make decisions with confidence. In writing code that elegantly solves a complex problem. In mentoring someone and watching them level up. These experiences are valuable whether or not they come with a title bump.
The Bottom Line
All you can do is focus on what you can directly control: being better, being more diligent, being more efficient with the skills you have. Understand that politics plays into promotions. Understand that sometimes it’s just “Is there budget?” These are things you really can’t control, so they’re not worth losing sleep over.
Build skills that are valuable anywhere. Create impact that’s measurable. Document your wins. Advocate for yourself professionally. And if your company doesn’t recognize your value after you’ve done all that? Don’t take it personally - take your skills somewhere that will.
Because at the end of the day, the only person responsible for your career growth is you. Not your manager, not your company, not the promotion committee. You. And the beautiful thing about that is you have more control than you think, just not over the timing or the title, but over the engineer you’re becoming.
Now I Want to Hear From You
What’s your relationship with promotions? Have you ever almost quit over a title that didn’t come through? What strategies have helped you focus on growth instead of getting caught up in the title chase?
Share your thoughts - because I guarantee someone else reading this is refreshing their email right now waiting to hear about that “Senior” title, and your experience might be exactly what they need to hear.
Quote of the Day:
“We cannot choose our external circumstances, but we can always choose how we respond to them.” - Epictetus
👉 If you enjoy reading this post, feel free to share it with friends!
Or feel free to click the ❤️ button on this post so more people can discover it on Substack 🙏
You can find me on X and Instagram.
Also, I just launched a new YouTube channel - Code & Composure


