For most of us, landing that promotion probably won’t be as straightforward as just reading an annual book. But the example in this tweet above is a useful way to remember that being a shoo-in for promotion starts with distinguishing yourself among your peers. In reality, being a cut above the rest of your team alone won’t earn you a promotion. You also have to advocate for yourself, make your impact known, and continue to learn new things.
Wondering what it takes to get that title change or salary bump? I chatted to Jean du Plessis, Senior Engineering Manager at the cloud platform Upbound, who shared his advice for junior and intermediate engineers looking to go to the next level. Ahead are some traits that make a software engineer promotable, and tips that will help you climb the ladder and reach your goals.
Explore technology outside of work
At work, you and your peers are likely working on similar problems using the same technology. Think about how you can differentiate your skills or bring a novel perspective to your team. You don’t have to start a blog or become a high-profile streamer (although it wouldn’t hurt), but even small, fun side projects or open-source contributions are useful for giving you exposure to technology and different types of problem solving that you won’t get from your full-time role.
“At a junior level, you should be trying to expand your exposure to different languages and frameworks as much as possible to get differing views,” Jean explains. “There are so many frameworks that solve the same problem, so why are there different ones? What does each one bring to the table and why would you use one over another? Knowing which language to use for which problem is a skill you only develop if you explore a lot of different things.”
Want to learn a new programming language or round out your skill set? We have lots of free courses that are specifically for programmers who want to level-up, like Python for Programmers and Rust for Programmers. Or if there are other areas of tech you’re interested in exploring, like UI/UX design or cybersecurity, check out the rest of our course catalog.
Understand (and show) how your work contributes to the business
“You’re not an artist, Peggy. You solve problems.” Don Draper’s tough love in the HBO show Mad Men holds an important truth: Our contributions at work have to support the business. Engineers can sometimes get tunnel vision for the challenge right in front of them, so they lose sight of what comes after you ship a product or feature. Think about how you might get people to adopt the new feature you just fixed, or how you’d market it. It’s not that engineers have to become experts in other departments like marketing, developer relations, or sales, but “if you want to get promoted, one of the best ways to do that is to stand head and shoulders above the rest of your peers,” Jean says.
One way to stand out is to showcase your work and how it contributes to the organization’s bigger picture goals. That could mean writing for the company blog about a problem you solved or a feature you built, volunteering to speak at conferences, or even giving an internal demo at the next brown bag talk. “Talking about your work shows that you appreciate that software is only useful if it’s adopted,” Jean says. “Building something is the first part. Then there’s the part of getting people to use it.”
Develop your communication skills
You need strong communication skills at every stage of your career, but particularly when you’re vying for a promotion. Sharing your work and helping others to understand your impact takes practice.
The good news is that getting into a habit of writing about or demonstrating your work will, over time, help you get better at articulating the value of your efforts. Pair programming is another great way to practice communication, as you get comfortable talking through the steps to debug an issue with a partner. Your company may also offer coaching or mentoring programs to help you develop your professional skills.
“Communication in engineering is one of the most underrated skills, and if you can practice this early on in your career, that’ll set you up for success in the long term.” Jean recommends the book Communication for Engineers (C4E) as a good place to start developing those skills.
“The problem that a lot of people have early in their career is they’re waiting to be spoonfed what they should do next and how they can grow,” Jean says. “They should take ownership of that.”
What does that look like in practice? “Don’t wait to be asked to fix something menial, do it,” Jean advises. “If you find something that’s wrong, open an issue and fix it. Show that commitment to caring and ownership of the product. You’re showing that you’re not just there to tick boxes.”
Another practical way to show initiative is being willing to jump into code reviews, especially for more senior team members. Even if you don’t have corrective feedback, Jean suggests asking the pull request (PR) author questions or to explain a decision they made. “As a manager, any signal you get that a team member is showing a mindset that’s bigger than the task right in front of them is a positive thing,” he says. “It shows the ability to cope with more responsibility.”
As you advance from junior, to intermediate, to senior, you are increasingly measured not by your own output but by your influence on others’ output. If you want to be considered for promotion, it’s worth showing you’re already thinking about how you can coach teammates or be a force multiplier for others across the company.
At GitLab, where Jean used to work, collaboration is baked into the company’s values. There’s a specific goal around global optimization, where everyone thinks about what’s best for the organization as a whole, not just what’s relevant to their individual goals, Jean says. While he says this big-picture thinking isn’t strictly necessary to go from junior to intermediate, it would make you stand out. “If two people are exactly the same on all other criteria and I can only promote one, I’m going to promote the one who shows that behavior,” he says. And remember: A rising tide lifts all boats. Your peers will appreciate the work you do for the collective.
Ask for feedback
“From a programming point of view, showing a desire for feedback and a humility to take feedback from others is important,” Jean says. Ideally, you should be asking proactively for feedback from your manager in your one-on-ones. If you build a section for feedback into your regular agenda, it also takes the awkwardness out of receiving critical feedback because it’s expected and normalized.
In code reviews, Jean recommends avoiding defensiveness if someone gives feedback on your PR. “If the person didn’t give the context as to why they’re asking for something to be changed, ask for it.” It can be hard to feel corrected at first, but the more you approach feedback as an opportunity to help you learn and grow, the stronger an engineer you’ll be. For more tips on how to review someone else’s code, check out this article on the blog.
Team up with your manager
This might seem obvious, but a lot of us are never explicitly told: If going to the next level is your goal, you need to work with your manager, not just impress them. “A signal for me that shows how ready someone is for the next step is whether I have to drive their career progression or if they’re driving it themselves,” says Jean. “As the manager, I’m there to create opportunities for them, but they have to tell me how they want to grow and what they want to do.”
If you’re not sure how to broach that conversation, start by asking, “Can we evaluate me against the next level to identify where there are gaps that I can go and work on?” Most managers will jump at the chance to collaborate on your promotion plan.
If you’re surprised at how little your actual programming skills feature in all of the above advice, it’s time to reframe your idea about what makes a great software engineer. Jean has some parting advice: “Coding is like learning a language,” he says. “You learn the rules, the syntax, and the grammar, and you write it. But engineering is about problem solving and most of that is not hard skills. You learn the hard skills once you’ve solved the problem.”