How to get promoted this year

Interview with Caleb Mellas, author of Level up software engineering newsletter.
April 4, 2024
Guest profile photo

Hi, I’m Caleb. I’m the author of the Level Up Software Engineering newsletter – helping 20k+ engineers level up in their engineering skills and career. I’ve been working in tech for over 10 yrs as an engineer, a tech lead, and now an engineering team lead. I was the 4th engineer at Wisely, a restaurant tech startup that 3x’d their revenue, had a 9 figure acquisition, and grew faster than Zoom during covid. Throughout my career I’ve felt stuck from time to time about how to grow in my skills and hit that next level in my career. Now I help other engineers by sharing everything I’ve learned going from mid-level to senior engineer to tech lead and beyond.

EXA Newsletter

Why reinvent the wheel?

Exaltitude newsletter is packed with advice for navigating your engineering career journey successfully. Sign up to stay tuned!

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

Caleb and I started out by sharing his experience related to promotions.

Caleb: I had a situation as a mid-level engineer where I couldn’t figure out how to get a promotion to senior engineer.

Caleb to manager: “Can I get that promotion? I completed all my projects on time and it’s been 2 yrs of being in this role…”

Manager: “Hmm… I’m not quite sure you are ready… Plus the budget this year is tight. Let’s talk about it next year.” 🙃

Oof. Again, I’ve been there and it’s both confusing and frustrating.

Let’s try something different. 

Over the years I learned a lot of what works and what doesn’t when working towards a promotion. It’s helped me go from mid-level to senior to tech lead, and now to a manager. Being a manager confirmed a lot of what I experienced/learned as an IC.

I hope this interview can demystify things a bit for you, and help you finally unlock your next promotion!

What do you think engineers can do to get in the driver’s seat early on?

I’ve heard it again and again, the promotion cycle comes around and engineers ask for a promotion but don't get one, while others seem to get one.

What’s the deal?

One of the biggest differences I’ve seen personally is working towards one with your manager at the beginning of the cycle, vs. asking for one right near the end of a cycle.

Here’s a recipe I’ve used to get the driver’s seat of my goals, and secure multiple promotions:

  1. Tell your manager early on you want to grow towards the next level
  2. Align on your current strengths + areas of improvementsome text
    1. Make a copy of your company’s ladder / matrix and see where you line up both in your current role, and the next level up
    2. Outline your strengths in green, your decent areas in gray, and your “needs improvement” in yellow.
    3. Have your manager do the same
    4. Compare your notes in 1:1s and outline 2-3 things to work towards in the next 3-6 months
  3. Work hard on those 2-3 “areas of improvement” you both identified
  4. Measure your progress and share a weekly report with your manager
  5. Convert those reports into a brag docsome text
    1. Use your brag doc for your mid/year-end review + promotion pack. Make sure to really quantify and measure your progress. (for more info on brag docs, check out this paid deep-dive article by
      Gregor Ojstersek)
  6. Regularly check in with your manager and ask for specific feedback of things you could be doing even better.

For me, following this recipe has taken promotions from being a weird/confusing process, to a well-defined project I can clearly make progress on.

What strategies and mindset shifts are crucial for Senior engineers to get promoted in a tech organization?

When I was comfortably in the Senior Software Engineer role for a while, I wanted to start working towards Senior 2 (in between Senior & Staff in my org).

Initially I approached it all wrong. 

My focus was on becoming a better Senior 1 engineer thinking that would secure my promotion.

It took me a lot of trial and error to realize being a Senior 2 required new skills, new ownership, new perspectives – it wasn’t just doing my current tasks better.

I sat down and asked myself a bunch of questions:

  • How could I take on projects that would line up with the Senior 2 matrix?
  • What were the other Senior 2’s doing that I wasn’t? (eg. L3 on call)
  • What ways did I need to take more ownership of our systems?
  • How could I start working cross team to have more impact?

I then started acting as if I already had the promotion and people were counting on me.

That mindset shift exercise worked amazingly well.

My actions slowly started changing to line up with my new mindset. It helped me take a new level of ownership and engagement on our team and projects.

Follow this approach and by the time you are up for a promotion people might be saying: “Wait, they aren’t already at the level?!”

Should software engineers look for challenging projects to be promoted?

Absolutely! The next level above us is not just more coding – it’s next level scope and impact.

You need to go above and beyond your current role and responsibilities and look for bigger impact, and bigger scope projects you can take on.

You can find these projects by looking at goals your manager has, things your staff+ engineers are talking about, or just get involved in next-quarter roadmap planning.

If you are still struggling to find something “next level scope”: find a challenging project that’s outside your comfort zone and offer to own it.

For me that was building an Email Campaigns tool. The project was pretty overwhelming since I’d never built anything like that yet. It needed to scale to massive usage, and there were a lot of stakeholder eyes on it.

It was super challenging, but I ended up crushing it and learning a TON in the process.

You can read more about that here, including 5 scaling challenges I have to solve, how it’s now sent over 1.5 billion emails, and how we hit 33% MoM growth with the usage of that new product 🚀

Let’s talk about building trust with your leadership. How can 'Managing Up' strategies enhance trust and reliability with leaders in a tech leadership role?

Leaders are looking to promote people they trust. They need people they can count on to be reliable, help improve the team/projects and get things done.

One way I’ve worked to build trust with leaders is through “Managing Up.”

Managing up is thinking through: “what would I want to know if I was my manager?”

It was a huge unlock for me as I worked towards becoming a tech lead.

I sat down and thought through what it would be like if I was managing me…

  • Where are my projects at?
  • What are my goals and how am I working towards them?
  • What are some areas consistently slowing me or the team down?
  • Where am I doing invisible work that my manager would want visibility into?

That started a shift in my thinking and behavior.

  • I started helping the team rally around the sprint and project goals
  • I started giving bullet point updates instead of large paragraphs of text.
  • I acted as my own project manager rather than leaving that to my EM or PM
  • I gave projects updates when things were trending off track, because I knew they’d want input into how to help get it back on track.

That new way of thinking and acting ended up being huge for my growth. It earned me a lot of trust with my manager and our engineering and product team leaders.

They knew they could count on me.

To be clear: Not that I’d always get something delivered on time. 

But that they’d always be in the loop, that I took ownership of projects, and always rallied myself and others towards our shared goals.

That first year I started managing up I received “exceeds expectations” on my performance review.

What are effective strategies for leveraging mentorship and learning from growth-minded peers to advance in your career? 

One of the best ways I found to level up in my career is to find mentors / growth-minded peers in the position I was working towards and to learn from them.

There are two ways to approach this:

  1. Ask for direct mentorship
  2. Join a team or project with them

Direct mentorship

Find experienced engineers in your team / company and share that you are looking to grow. Ask if you could set up a meeting to chat about their experience working towards the promotion.

If they are interested, come to the meeting prepared with questions, and be sure to follow up on their feedback as you implement it.

Ask them to share stories of how they leveled up into the role they have.

  • What were some of the areas of growth they worked on?
  • What were some of the projects they were involved in?
  • How long did it take them to go from one role to the next?

Join a project or team with them

Traditional “mentorship” is harder to find than other growth-minded peers.

In my own career, I’ve grown just as much just working with other growth-minded engineers, as I have under direct mentorship.

Observing their thinking, systems, habits, problem solving, etc has made me a better engineer. It’s almost like reverse engineering their success.

They will show you a different type of thinking and actions that are hard to see when you are stuck in the daily grind of work. Here are some things you can learn from others:

  • You’ll learn how they think through and prioritize work.
  • You’ll learn about architecture meetings you weren’t aware of.
  • You’ll learn about hard problems the business is focused on solving.
  • You’ll learn about RFC’s they are thinking through and collaborating on.
  • You’ll learn sometimes the best way to add more value is not more coding, it’s helping mentor others as they look to level up

You are the sum of the 5 people you spend the most time with. Make sure some of those are people ahead of you.

What are the key strategies for transitioning from being one of the go-to coders on the team to becoming a valuable leader?

If you are the best coder on the team but aren’t helpful to the team, your impact and growth will stagnate and you’ll become what’s known as a “brilliant jerk.”

Something I’ve found in my own journey is that the more senior you go, the less it’s just about you.

Part of growing as an engineer is becoming a force-multiplier – helping everyone level up.

It seems counterintuitive that focusing on others will help you grow and increase your impact, but it’s true.

Engineering leadership will see the positive impact you have on teams and projects, and will want to promote you and increase your responsibilities.

Here are some of the ways you can level up by helping others via force-multiplying:

  • Giving through, timely and helpful code reviews
  • Architecting systems to help the product scale and grow
  • Writing and reviewing technical specs to ensure good design
  • Helping estimate effort in roadmapping and planning meetings
  • Mentoring junior engineers in the patterns, systems, and products

Helping others ultimately helps yourself.

TL;DR Summary

Whew, that was a lot. Here’s a quick review:

  • Get in the driver’s seat early on: Share your goals with your manager and work together all year towards a promotion.
  • Level up in your thinking: Think and act as if you already have the promotion.
  • Take on challenging projects: Find next level scope to grow your skills + impact.
  • Build trust with leadership: Manage up in your communication to build trust with leadership.
  • Seek out growth-minded peers: Work with, and learn from people already excelling in that role.
  • Be a thoughtful and helpful force-multiplier on your team: It’s not just about you anymore. Increase your impact by helping others become better.

Thanks, Caleb for sharing your advice! I had a great time chatting. Check out more of Caleb’s writing on his newsletter – Level Up Software Engineering 🚀.

Exaltitude newsletter is packed with advice for navigating your engineering career journey successfully. Sign up to stay tuned!

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

Read the latest...

Copyright @Exaltitude