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.
Exaltitude newsletter is packed with advice for navigating your engineering career journey successfully. Sign up to stay tuned!
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!
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:
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.
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:
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?!”
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 🚀
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…
That started a shift in my thinking and behavior.
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.
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:
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.
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 are the sum of the 5 people you spend the most time with. Make sure some of those are people ahead of you.
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:
Helping others ultimately helps yourself.
Whew, that was a lot. Here’s a quick review:
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!
Copyright @Exaltitude